如何通过优化项目解决垃圾回收引起的性能瓶颈问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1976个文字,预计阅读时间需要8分钟。
最近优化了一个网站项目的经验,以下是一些简要背景:
1. 在页面后端代码中,我们将页面上的大部分HTML内容都使用字符串拼接生成,然后直接赋值给LiteralControl。
2.网站CPU使用率很高,基本原因是...
(注意:由于字数限制,未超过100字。)
谈谈最近优化一个网站项目的经验,首先说一下背景情况:
1) 在页面后台代码中我们把页面上大部分的HTML都使用字符串来拼接生成然后直接赋值给LiteralControl。
2) 网站CPU很高,基本都在80%左右,即使使用了StringBuilder来拼接字符串性能也不理想。
3) 为了改善性能,把整个字符串保存在memcached中,性能还是不理想。
在比较了这个网站和其它网站服务器上相关性能监视器指标后发现有一个参数特别显眼:
就是其中的每秒分配字节数,这个性能比较差的网站每秒分配2GB的内存(而且需要注意由于性能监视器是每秒更新一下,对于一个非常健康的网站这个值应该经常看到是0才对)!而其它一些网站只分配200M左右的内存。服务器配备4G内存,而每秒分配2G内存,我想垃圾回收器一定需要不断运行来回收这些内存。观察%Time in GC可以发现,这个值一直在10%左右,也就是说上次回收到这次回收间隔10秒的话,这次垃圾回收1秒,由于回收的时间相对固定,那么这个值可以反映回收的频繁度。
本文共计1976个文字,预计阅读时间需要8分钟。
最近优化了一个网站项目的经验,以下是一些简要背景:
1. 在页面后端代码中,我们将页面上的大部分HTML内容都使用字符串拼接生成,然后直接赋值给LiteralControl。
2.网站CPU使用率很高,基本原因是...
(注意:由于字数限制,未超过100字。)
谈谈最近优化一个网站项目的经验,首先说一下背景情况:
1) 在页面后台代码中我们把页面上大部分的HTML都使用字符串来拼接生成然后直接赋值给LiteralControl。
2) 网站CPU很高,基本都在80%左右,即使使用了StringBuilder来拼接字符串性能也不理想。
3) 为了改善性能,把整个字符串保存在memcached中,性能还是不理想。
在比较了这个网站和其它网站服务器上相关性能监视器指标后发现有一个参数特别显眼:
就是其中的每秒分配字节数,这个性能比较差的网站每秒分配2GB的内存(而且需要注意由于性能监视器是每秒更新一下,对于一个非常健康的网站这个值应该经常看到是0才对)!而其它一些网站只分配200M左右的内存。服务器配备4G内存,而每秒分配2G内存,我想垃圾回收器一定需要不断运行来回收这些内存。观察%Time in GC可以发现,这个值一直在10%左右,也就是说上次回收到这次回收间隔10秒的话,这次垃圾回收1秒,由于回收的时间相对固定,那么这个值可以反映回收的频繁度。

