摘要:
1. 线程和硬件 1.1. 给CPU增加超线程并不能使应用程序性能翻倍 2. 线程池 2.1. 任务被提交到一个队列(可能有不止一个队列),然后一定数量的线程会从队列中取出任务并执行它们 2.2. 线程池的大小对获取最佳性能至关重要 2.2.1. 在某些情况下,过大的线程池会对性能造成损害 2.3. 阅读全文
摘要:
1. 高品质的代码 1.1. 性能(Performance) 1.1.1. 只执行需要的操作,而且执行迅速 1.1.2. 不会使系统陷入停顿 1.2. 可用性(Availability) 1.2.1. 持续在所需的性能水平上保持可用 1.2.2. Topic1 1.3. 安全性(Security) 阅读全文
摘要:
1. 理解可变性 1.1. 理解测试结果如何随时间变化 1.2. 可以通过多次运行测试后取平均值来解决 1.3. 因代码改进而进行的测试叫作回归测试(regression testing) 1.3.1. 原本的代码叫作基线(baseline) 1.3.2. 新的代码叫作样本(specimen) 1. 阅读全文
摘要:
1. 应用程序级别代码坏味道 1.1. 布尔盲点 1.1.1. 由于函数使用布尔值而导致的信息缺失 1.1.2. 解决方案是将布尔替换为枚举类型 1.2. 组合爆炸 1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物 1.2.2. 解决方案使用泛型 1.3. 人为复杂性 1.3.1. 阅读全文
摘要:
1. 测试真实的应用程序 1.1. 应该以实际产品的使用方式进行测试 1.2. 所有的基准测试通常都包括一个预热期,在这期间,JVM可以将代码编译到最佳状态 1.3. 微基准测试(microbenchmark) 1.3.1. 通过测量一小部分代码的性能来确定多种实现中哪个最好 1.3.2. 必须读取 阅读全文
摘要:
1. 核心关注点 1.1. 开发软件的原因 2. 切面关注点 2.1. 所有的代码领域都需要处理相关的问题 3. 结构化模式 3.1. 装饰器模式 3.1.1. 可以在现有对象上添加新的功能,而不改变其结构 3.2. 代理模式 3.2.1. 所提供的对象可以替代客户端使用的实际服务对象 4. 使用P 阅读全文
摘要:
1. Java飞行记录器 1.1. Java Flight Recorder,JFR 1.1.1. 最初是BEA公司的JRockit JVM的功能 1.1.2. 在JDK 8中,只有Oracle JVM支持JFR 1.1.3. 在JDK 11中,JFR可以在开源JVM中使用 1.2. JFR数据是J 阅读全文
摘要:
1. 组织类 1.1. 每一个接口、类、结构体和枚举均应当拥有其自身的独立源文件 1.2. Pascal命名方法命名命名空间 1.3. 测试类定义在独立的程序集 1.3.1. 不同程序集的测试放在不同程序集 1.3.2. 程序集名称的最后附加Tests命名空间 1.4. 公司名称、产品名称和缩写词汇 阅读全文
摘要:
1. 性能分析工具 1.1. 必须有足够大的堆来处理数据 1.2. 运行性能分析工具时开启并发GC算法 1.3. 不合时宜的Full GC暂停会导致缓冲区的数据溢出 1.4. 性能分析的一个缺陷就是在应用程序中引入测试会改变其性能 1.5. 在工作时要“附加”到被分析的应用程序上 1.5.1. 通过 阅读全文
摘要:
1. 编码原则 1.1. SOLID原则 1.1.1. 单一职责原则(Single Respon-sibility Principle) 1.1.1.1. 类和方法应当仅具备单一职责。所有组合为单一职责的元素应当组合在一起并进行封装。 1.1.2. 开闭原则(Open-Closed Principl 阅读全文