Harries

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

有的网站偶尔突然占用大量cpu资源的原因和解决办法

现象是:cpu不定时的突然上升到100%,并坚持一段时间,直到Request超时后,cpu才会降下来。
经分析,出现以上现象的原因是下面两个方面:
一,用Regex.Replace等方法处理太长的字符串;
二,用System.Web.Script.Serialization名字空间中的JavaScriptSerializer处理太长的字符串。
找到了原因,解决方法就比较简单了:
1、不要用regex处理太长(比如50K)的字符串,如果必须用regex处理长字串,你可以把字符串分切为多个小段进行处理,比如每16K为一段。
2、不要用JavaScriptSerializer对长字符串或大对象进行json处理。你可以用System.Runtime.Serialization.Json进行json处理,或者用其它更高效的json编解码方案进行处理。

posted on 2014-10-05 18:14  Harries  阅读(195)  评论(0)    收藏  举报