-
(1) 提升性能往往意味着增加复杂性, 因此增加了安全性和活跃性上发生失败的风险
(2) 提升性能很重要, 但是安全性是第一位的
-
__资源__常常包括
CPU时钟周期
内存
网络带宽
IO带宽
数据库请求
磁盘空间
-
使用多线程__未必可以提升整体性能__, 因为使用多线程总会引入额外的开销
(1) 线程之间的协调
(2) 上下文切换操作
(3) 线程的创建和销毁
(4) 线程的调度
-
从性能监视的角度看, CPU应该尽可能保持忙碌状态。
对于多个CPU, 那么通过将程序分解为多个线程, 从而使得所有CPU都保持忙碌状态
-
衡量性能的指标
(1) "多快"系列: 完成某个任务需要多少时间
服务时间、延迟时间等
(2) "多少"系列: 在给定资源一定的条件下, 能完成多少工作
吞吐量等
(3) 这两种指标常常是矛盾的
-
可伸缩性
(1) 当增加计算资源时(CPU、内存、磁盘、IO带宽等), 程序的吞吐量或者处理能力__能够随之增加__
(2) 当进行__性能调优__时, 关注的是用更小的代价完成相同的工作
(3) 当进行__可伸缩性调优__时, 关注的是将问题的计算并行化
(4) 引入并行计算后, 对于单一的系统常常性能会下降; 但是, 我们通常会接受每个工作单元执行更长的时间,来换取可伸缩性
-
避免不成熟的优化
首先使得程序正确, 然后再提高运行速度(如果有必要的话)
-
在对性能调优时, 要明确需求
例如: 高负载/低负载? 数据大/数据小? …
一切需求以测试结果为基准, 不要猜测
chapter11_性能与可伸缩性_1_对性能的思考
猜你喜欢
转载自blog.csdn.net/captxb/article/details/88619091
今日推荐
周排行