Clojure高性能编程:设计性能
1. 性能设计的重要性
在当今的软件开发环境中,性能已成为决定应用程序成功与否的关键因素之一。无论是用户界面软件、数据处理任务,还是在线事务处理系统,性能优化都是不可或缺的一部分。本文将探讨如何通过设计来提升性能,涵盖性能分类、性能词汇、性能剖析、优化策略以及资源利用等方面。
2. 用例分类
性能要求和优先级在不同类型的使用案例中有所不同。我们需要确定各种使用案例的可接受性能标准。因此,我们对它们进行分类以识别它们的性能模型。尽管对于任何类型的使用案例,都没有绝对的性能配方,但研究它们的一般特性确实有所帮助。
用户界面软件
用户界面应用的性能与用户的期望密切相关。几毫秒的差异可能不会被用户察觉,但超过几秒钟的等待可能会引起不满。为了标准化用户的期望,提供基于时间的反馈非常重要。一种有效的策略是在后台异步启动任务,并从UI层轮询以生成基于时间的反馈。
数据处理任务
许多数据处理工作负载通常是CPU绑定、内存绑定、缓存绑定和I/O绑定任务的组合。这类混合工作负载的有效性能取决于CPU、缓存、内存和I/O资源在整个操作期间的均衡分布。虽然所有系统资源都是有限的,但某些I/O资源可能在带宽和延迟方面特别受限。当某个资源过于繁忙以至于无法为其他资源腾出空间时,就会形成瓶颈。
输入/输出(I/O)受限
如果一个I/O密集型任务所依赖的I/O子系统运行得更快,那么这个任务也会执行得更快。在数据处理中最常用的I/O子系统是磁盘或存储以及网络。其他I/O设备包括串行端口、USB连接的卡读取器等。一个I/O密集型任务可能消耗非常少
超级会员免费看
订阅专栏 解锁全文
419

被折叠的 条评论
为什么被折叠?



