如果是很容易就出来100%,那就很简单了。
注释部分代码,观察。
再注释部分代码,观察。
再注释部分代码,观察。
很快就能找到引发CPU占用高的代码,然后针对性处理。
我主要采取了这种方法,效果还可以
异步IO
另,Sleep没意义
Sleep如果没意义微软主要用这个函数是做什么的?
建议优化一下正则表达式的处理代码
基本上没用到正则,抓取规则是动态根据用户的鼠标点击生成的
没有的该删的就删除
找了三篇帖子,你看一下大家的讨论吧
http://bbs.csdn.net/topics/90356810
http://bbs.csdn.net/topics/390291787?page=1#post-393027855
http://bbs.csdn.net/topics/350030920
cpu只有在计算密集型时才会很高,看看你的的采集算法怎么弄的,优化算法。
用测试工具检测问题在哪里.net平台可以用NCovery查看运行时间内代码每行代码执行次数和覆盖情况。
还有就是DotTrance工具,可以在程序运行时跟踪C每个线程每个函数的CPU占用率和内存占用率来检测。
我做工控软件的,一般出现内存和CPU高消耗问题公司都是用这些类似的工具检测的。这些工具网上都有。检测出消耗高的代码块再进行优化,一般使用率高就是计算复杂或通信没有等待出现高速循环等等
扯淡上边的
没找出耗CPU的代码块,什么都是徒劳
VS自带的性能采样和分析可以看看哪个是瓶颈
从网上看了下,这个应该很有用,但悲剧的是我装的是专业版,暂时不用这个了。
路过学习
1.死循环?
2.webbrowser天生内存泄露.
3.弱引用导致的泄露(事件....)
4.io操作没有Close
整个程序就是一个类死循环,直到条件为假才退出,一般运行几个天到几个月一个任务。
webbrowser天生内存泄露.有这个可能吧
没有用到弱类型,io操作也不会有没有close的。
我也在做差不太同样的事情:需要不断读取数据 然后发送。程序一直在循环,就是按照最佳答案做的,注释一下 运行程序 观察;再注释 再观察。很实在的方法。