性能指南笔记一

全面的性能

1.好处和效率之间的权衡在增加程序特性的过程
2.数据库永远是瓶颈,分布式系统的整体性能问题
我们当前的性能处于什么百分位?
是不是整体的性能属于下降的?
一开始就考虑可能性很小的性能问题?

3.吞吐量测试
TPS 每秒事务数
RPS 每秒请求数 tools fot apace bench
客户端模拟思考时间
OPS 每秒操作数

---------------服务测试数据--------------------
Server Software:        
Server Hostname:        localhost
Server Port:            18001

Document Path:          /greetings
Document Length:        11 bytes

Concurrency Level:      100
Time taken for tests:   5.287 seconds
Complete requests:      50000
Failed requests:        0
Write errors:           0
Total transferred:      7200000 bytes
HTML transferred:       550000 bytes
Requests per second:    9457.90 [#/sec] (mean)
Time per request:       10.573 [ms] (mean)
Time per request:       0.106 [ms] (mean, across all concurrent requests)
Transfer rate:          1330.02 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    2   4.1      2      62
Processing:     1    8  14.4      3     171
Waiting:        1    7  14.1      3     166
Total:          1   10  14.7      5     171

Percentage of the requests served within a certain time (ms)
50%      5
66%      6
75%      7
80%      7
90%     26
95%     45
98%     66
99%     74
100%    171 (longest request)

4.理解可变性
数据集不同的测试和随着时间的变化测试的结果的变化
因为代码改动而造成的回归测试(regression testing)
原始代码是基线——新的代码叫作样本
通过统计分析理解概率的含义
性能工程师的工作就是查看测试数据,理解概率,并所有可用数据决定应该优先哪个问题

5.早测试,常测试
性能测试作为开发周期的一部分
代码的变化导致性能数据的变化,堆的使用情况导致编译的变化
预期在特定的环境中实验过的数据才是我们知道生产环境性能表现的关键
JMH 是一个有用的测试工具

    Result "com.patience.basic.jmh.PreformanceTest1.testIntern":
    548.966 ±(99.9%) 52.130 ops/s [Average]
    (min, avg, max) = (399.487, 548.966, 645.912), stdev = 69.592
    CI (99.9%): [496.836, 601.096] (assumes normal distribution)

    Benchmark                     Mode  Cnt     Score     Error  Units
    PreformanceTest1.testIntern  thrpt   25   548.966 ±  52.130  ops/s

    ----------------------------------------------------------------

    Result "com.patience.basic.jmh.PreformanceTest1.testMap":
    1353.811 ±(99.9%) 120.007 ops/s [Average]
    (min, avg, max) = (1026.808, 1353.811, 1601.104), stdev = 160.206
    CI (99.9%): [1233.804, 1473.819] (assumes normal distribution)

    Benchmark                     Mode  Cnt     Score     Error  Units
    PreformanceTest1.testMap     thrpt   25  1353.811 ± 120.007  ops/s

你可能感兴趣的:(Java性能指南,java性能)