随笔分类 -  Debug调优

摘要:确定挂机 络绎不绝的来不同类型的bug 当bug滚滚而来时,不要怀疑,你的发布的应用基本是不可用状态了。观察哨兵监控数据,特别是内存打到80%基本就挂机了,或者监控数据缺失也基本是挂机了。此时应当马上决断: 通知运营暂停操作(大多数是因为后台应用导致的,纯经验猜测,因为你也不可能让外部用户停止操作) 阅读全文
posted @ 2019-06-18 09:44 wade&luffy 阅读(825) 评论(1) 推荐(0) 编辑
摘要:多线程调试 有些时候为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下。 在IDE里断点停下来的时候,可以切换到另外的线程中,跑其他的代码,不会互相影响。这里是有个开关的,在Eclipse里默认开启, 在IntelliJ IDEA里默认是没有开启的。也就是说如果 阅读全文
posted @ 2018-07-12 09:24 wade&luffy 阅读(445) 评论(0) 推荐(0) 编辑
摘要:想要查看一些被增强过的类的字节码,或者一些AOP框架的生成类,就需要dump出运行时的Java进程里的字节码。 从运行的java进程里dump出运行中的类的class文件的方法: ClassDump里可以设置两个System properties: sd-jdi.jar 里有一个sun.jvm.ho 阅读全文
posted @ 2017-06-26 14:43 wade&luffy 阅读(2097) 评论(0) 推荐(0) 编辑
摘要:解决的办法:忽略服务端和客户端的证书校验即可。java 提供的相关的类。 通过重写TrustManager的checkClientTrusted(检查客户端证书信任)和checkServerTrusted(检查服务端证书验证)。以及HostnameVerifier的verify(校验)方法即可取消对 阅读全文
posted @ 2017-04-26 12:16 wade&luffy 阅读(2661) 评论(1) 推荐(0) 编辑
摘要:示例代码: 找出pid(进程ID) top命令 在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按cpu使用率排序 jps命令 显示指定系统内所有的HotSpot虚拟机进程。 通过进程id看线程情况 linux:通过top -Hp 4548可以查看该进程下各个线程的cpu使用 阅读全文
posted @ 2017-03-14 10:06 wade&luffy 阅读(6255) 评论(0) 推荐(0) 编辑
摘要:代码质量概述 代码质量所涉及的5个方面,编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。这5方面很大程序上决定了一份代码的质量高低。 我们分别来看一下这5方面:编码标准:这个想必都很清楚,每个公司几乎都有一份编码规范,类命名、包命名、代码风格之类的东西都属于其中。代码重复:顾名思义就是重复的 阅读全文
posted @ 2017-01-02 10:00 wade&luffy 阅读(357) 评论(0) 推荐(0) 编辑
摘要:下载:访问 TProfiler 的 GitHub 主页,https://github.com/alibaba/TProfiler,点击 Clone or download 按钮的打开下载选项,点击该选项下的 Download ZIP 按钮将 TProfiler-master.zip 下载到本地。 安 阅读全文
posted @ 2017-01-01 11:03 wade&luffy 阅读(1308) 评论(0) 推荐(0) 编辑
摘要:对于调优这个事情来说,一般就是三个过程: 调优准备 调优是需要做好准备工作的,毕竟每一个应用的业务目标都不尽相同,性能瓶颈也不会总在同一个点上。在业务应用层面,我们需要: 此外,我们还需要了解Java相关的一些知识:对Java代码进行基准性能测试:可以使用JMH来进行。HotSpot VM相关知识: 阅读全文
posted @ 2016-12-07 17:23 wade&luffy 阅读(413) 评论(0) 推荐(0) 编辑
摘要:通过stack也可以发现死锁。 测试类 处理类 关键类 测试结果 阅读全文
posted @ 2016-11-25 12:29 wade&luffy 阅读(422) 评论(0) 推荐(0) 编辑
摘要:TLS算法组合 在TLS中,5类算法组合在一起,称为一个CipherSuite: 认证算法 加密算法 消息认证码算法 简称MAC 密钥交换算法 密钥衍生算法 认证算法 加密算法 消息认证码算法 简称MAC 密钥交换算法 密钥衍生算法 比较常见的算法组合是 TLS_ECDHE_RSA_WITH_AES 阅读全文
posted @ 2016-11-01 15:57 wade&luffy 阅读(7896) 评论(4) 推荐(1) 编辑
摘要:使用特定JVM参数运行服务端代码 要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是: 其中的${debug_port}是用户自定义的,为debug端口,本例以5555端口为例。 transport: 表示信息传递的连接方式, 其中,dt_socket是指用SOC 阅读全文
posted @ 2016-10-24 09:30 wade&luffy 阅读(3003) 评论(0) 推荐(0) 编辑