none
如何降低程序CPU使用率 RRS feed

  • 问题

  • 环境:.NET Framework 3.5 winform程序启动的WCF后台服务程序(多线程)

    执行方式:金融类软件.当外部数据改变时(如股票/外汇等)需要对当前服务器内的用户数据(上万笔)进行相应的计算处理..外部数据可能一秒内改变几十次.这样的话就会在一秒触发几十次内部计算方法.不过计算方法不是很复杂...

    目前的状况:经常会占用90-100%CPU.致使服务无法即时响应...

    请教:

    1.如何知道CPU都在忙什么?(也就是找出执行瓶颈)

    2.开发此类程序需要注意哪些方面?以防止此类状况.

    3.如果运算量真的很大,如何让程序自动调整状态..如使用CPU达到50%以上就不再处理新的任务.直至CPU占用率下降后再处理新的任务.以防止造成CPU占用率太高.

     

    如果有好的文章也请推荐给我.

    感谢!


    2010年8月26日 13:34

答案

  • 看起来应该做分布式处理。你或许应该考把业务逻辑放到负载平衡的服务器。

    你可以用市面上的各种profiler找到占CPU时间最长的方法。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 Tony_Wu 2010年8月27日 4:39
    2010年8月26日 21:22
    版主

全部回复