19、非均匀内存对软件性能的影响及优化策略

非均匀内存对软件性能的影响及优化策略

1. 缓存与磁盘内存的性能差异

在现代计算系统中,缓存与主存之间的访问时间差异远小于磁盘与主存之间的差异。而且在实际应用中,不能假定缓存足够大到可以运行整个程序而无需使用主存。对于核心外程序而言,选择合适的内存映射函数可能会使性能提升的倍数等同于块或页面的大小,通常这个倍数约为 1000。而对于缓存,由于主存和缓存的访问时间差异通常小于 10 倍,页面和缓存行的大小差异也约为 10 倍,所以缓存的最有效利用对程序性能的提升倍数不会超过 10。这表明,磁盘与主存之间的 I/O 传输对程序性能的影响远比主存与缓存之间的 I/O 传输重要。

2. 测试与性能分析

测试和性能分析虽与我们的核心目标没有直接关联,但在此简单提及。我们的方法是利用算法的计算复杂度来预测程序的性能,因此不执行程序。而测试和性能分析都需要执行程序,通常是带有适当探针的程序。程序员编写完程序后,需要对其进行广泛测试,以确保其正确性和确定其性能。不过,这与我们从算法分析过渡到预测软件性能的目标不一致,所以我们不打算详细讨论程序测试的相关方面。

性能分析也类似,它主要关注找出程序中的瓶颈、隔离热点以及发现过度分页和缓存缺失等问题。了解程序中的瓶颈很重要,否则程序员可能会在对性能影响不大的代码上花费过多时间。确定是否发生抖动或缓存缺失通常是在程序的第一个(或第二个、第三个)版本完成且发现性能不佳之后进行的。由于这些活动虽然对软件开发至关重要,但与我们的目标没有直接关系,所以我们不再进一步详细讨论。

3. 应对策略

现代计算系统在使用可用内存时存在问题,这个问题较为复杂,涉及三个方面:程序本身、目标计算机的内存层次结构

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值