前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能优化的首要法则

性能优化的首要法则

作者头像
物流IT圈
发布2019-07-16 11:21:00
3060
发布2019-07-16 11:21:00
举报
文章被收录于专栏:物流IT圈物流IT圈

大部分人需要他们的系统运行得更快,那么从哪里开始呢?大部分profiler工具都有内存跟踪 CPU跟踪,既然我们想让我们的程序跑得更快,那当然应该是盯着CPU了,错,首要法则是应该盯着内存,是内存中对象分配。

你首先应该是尽可能地降低对象分配,虽然我们知道对象分配非常快,那么为什么这么快还会拖慢我们的应用呢?为什么我们需要最小化我们的对象分配呢?

1.对象分配将压力加在了垃圾回收器,因为有更多对象是短生命的,你的垃圾回收器就工作得越多,这样就会导致系统减慢。

2.它会填满你的CPU缓存,因为垃圾回收强迫它们flush,将stack推入更高的L2和L3缓存,,然后推入主内存来获取数据,看看下面的各种设备时间延迟图,即使对象分配很快,也会引起Cache丢失,浪费很多CPU循环,降低了程序速度。

3.首先从容易的开始做,通过最容易的是降低分配,比如使用缓存,改变分配可以完全改变你应用程序的性能,比任何算法的改变都效果显著,后者有可能是浪费时间。

4.Profiler会撒谎,在CPU跟踪上也许Profiler会搞错,但是关于对象分配就不会了。

5.高的对象分配通常是代码坏味道,超过一定限度的对象分配会导致算法问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 驼马精英 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档