Thread专题(10)中,如何优化性能与提升系统可伸缩性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3471个文字,预计阅读时间需要14分钟。
本文被作者收录在系列文章《架构师必备》(系列)中。在设计和开发程序时,性能并非首要考虑因素,安全才是第一位的。首先,要确保程序的准确性,然后才考虑性能需求。
此文被笔者收录在系列文章 架构师必备(系列) 中
设计并发程序时,性能并不是最优先的考虑,安全总是放在第一位的。首先要保证程序的正确性,而后只有当你的性能需求和评估标准需要程序运行得更快时,才去进行改进。
一、性能的思考
改进程序的目的就是为了充分利用硬件的能力,所以测试时我们要尽量分析CPU的问题还是内存的问题;1、要有效的利用我们现有的资源;2、出现新的问题时能更有效的利用现有资源。有时经过测试后,可调节线程池大小的多线程程序的池最适合大小为1,这时多线程的设计就属于多余的。
性能遭遇可伸缩性
应用程序可以从很多角度来衡量:比如服务时间、等待时间、吞吐量、效率、可伸缩性、生产量,可伸缩性指的是当增加计算资源(硬件)的时候,吞吐量和生产量能够相应地得以改进。为伸缩性进行调试的时候目的是能够利用额外的计算资源,用更多的资源做更多的事情。
在结构和性能之间需要权衡来考虑,性能有多快和有多少任务协同要分别进行调试。很多单线程调优的方式,在多线程程序中都会起到反作用。传统的三层程序,虽然结构清晰,但是存在队列、协调、数据拷贝的开销。
对性能的权衡进行评估
有时候优化会违背面向对象的设计原则。通常来讲越快的程序越复杂,也就越难以维护。在决定优化一个程序之前,可以保守地问下以下问题:
1、所谓的“快”指的是什么。
本文共计3471个文字,预计阅读时间需要14分钟。
本文被作者收录在系列文章《架构师必备》(系列)中。在设计和开发程序时,性能并非首要考虑因素,安全才是第一位的。首先,要确保程序的准确性,然后才考虑性能需求。
此文被笔者收录在系列文章 架构师必备(系列) 中
设计并发程序时,性能并不是最优先的考虑,安全总是放在第一位的。首先要保证程序的正确性,而后只有当你的性能需求和评估标准需要程序运行得更快时,才去进行改进。
一、性能的思考
改进程序的目的就是为了充分利用硬件的能力,所以测试时我们要尽量分析CPU的问题还是内存的问题;1、要有效的利用我们现有的资源;2、出现新的问题时能更有效的利用现有资源。有时经过测试后,可调节线程池大小的多线程程序的池最适合大小为1,这时多线程的设计就属于多余的。
性能遭遇可伸缩性
应用程序可以从很多角度来衡量:比如服务时间、等待时间、吞吐量、效率、可伸缩性、生产量,可伸缩性指的是当增加计算资源(硬件)的时候,吞吐量和生产量能够相应地得以改进。为伸缩性进行调试的时候目的是能够利用额外的计算资源,用更多的资源做更多的事情。
在结构和性能之间需要权衡来考虑,性能有多快和有多少任务协同要分别进行调试。很多单线程调优的方式,在多线程程序中都会起到反作用。传统的三层程序,虽然结构清晰,但是存在队列、协调、数据拷贝的开销。
对性能的权衡进行评估
有时候优化会违背面向对象的设计原则。通常来讲越快的程序越复杂,也就越难以维护。在决定优化一个程序之前,可以保守地问下以下问题:
1、所谓的“快”指的是什么。

