none
程序运行计算,在电脑待机以后出现问题! RRS feed

  • 问题

  • 自己写的一个程序,进行比较大的数据量的检查运算,刚开始的时候再windows任务管理器里查看其进程,CPU为22-25之间浮动。

    然后再一段时间以后(大约14小时)可能电脑待机了,这个时候运算才进行到一半,程序依然在继续运行,但在windows人物管理器中国年查看其进程,cpu为00。运行速度很慢,从原本的1分钟运算一次延长至10分钟一次。

    求解:

    1.导致这个现象的原因是什么(猜测可能是因为电脑待机)

    2.如何解决这个问题,重新唤醒电脑后,使其运行速度不下降

    2015年8月24日 2:33

答案

  • 建议你要引入log,这种后台计算的运行时问题只有从log中才能进行研究排查。

    还有,我们不能保证是和待机相关,也许有可能是长时间运行,比如I/O操作,虚拟内存/页面交换,等因素都会影响到你的代码的执行。所以要尽可能排查:

    1. COM的线程模型,你的Winform程序是否符合相对应的调用方式

    2. 你的代码资源是否及时释放,是否有外部资源依赖,需要进行检查

    3. 代码中的异常处理是否合适,不恰当的异常处理会导致工作线程冗余等情况

    4. 你可以在出现问题后用debugger attach你的程序,检查后台线程数量,状况。 或者使用一些监视器,比如process explorer 工具来查看当前程序状态


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2015年8月24日 6:53

全部回复

  • 你是用Windows Service写的后台运行程序吗?代码如何的?

    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2015年8月24日 2:43
    版主
  • 直接使用C# 在WinForm上写的后台代码。代码调用了第三方的com组件
    2015年8月24日 3:38
  • 建议你要引入log,这种后台计算的运行时问题只有从log中才能进行研究排查。

    还有,我们不能保证是和待机相关,也许有可能是长时间运行,比如I/O操作,虚拟内存/页面交换,等因素都会影响到你的代码的执行。所以要尽可能排查:

    1. COM的线程模型,你的Winform程序是否符合相对应的调用方式

    2. 你的代码资源是否及时释放,是否有外部资源依赖,需要进行检查

    3. 代码中的异常处理是否合适,不恰当的异常处理会导致工作线程冗余等情况

    4. 你可以在出现问题后用debugger attach你的程序,检查后台线程数量,状况。 或者使用一些监视器,比如process explorer 工具来查看当前程序状态


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2015年8月24日 6:53