成都高新区网站建设正规app推广
全面的性能
1.好处和效率之间的权衡在增加程序特性的过程
2.数据库永远是瓶颈,分布式系统的整体性能问题
我们当前的性能处于什么百分位?
是不是整体的性能属于下降的?
一开始就考虑可能性很小的性能问题?
3.吞吐量测试
TPS 每秒事务数
RPS 每秒请求数 tools fot apace bench
客户端模拟思考时间
OPS 每秒操作数
---------------服务测试数据--------------------
Server Software:
Server Hostname: localhost
Server Port: 18001Document Path: /greetings
Document Length: 11 bytesConcurrency 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] receivedConnection 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 171Percentage 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.592CI (99.9%): [496.836, 601.096] (assumes normal distribution)Benchmark Mode Cnt Score Error UnitsPreformanceTest1.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.206CI (99.9%): [1233.804, 1473.819] (assumes normal distribution)Benchmark Mode Cnt Score Error UnitsPreformanceTest1.testMap thrpt 25 1353.811 ± 120.007 ops/s