解决方案 »

  1.   

    server2008上用VS2008编译一下程序
      

  2.   

    new unsigned char[image_size]
    捕获内存错误,当申请不能满足时,减少线程数量
      

  3.   

    在server2008上编译过了的,程序能够跑起来,但是中途总是停止
      

  4.   

    在server2008上编译过了的,程序能够跑起来,但是中途总是停止
    是不是内存申请不够了,用内存池等。
      

  5.   

    4核8线程的CPU能负载起4个相机(win7)系统,那么服务器至少都是能够负载其4个的,实际情况却是即使4个也会出问题,再说,这个服务器是IBM的服务器,不至于会带不起的。而且每次都是物理内存到54%的时候才停,而不是到100%。
    另外,我也试过控制线程的数量,将每个相机的线程池中线程上限控制在了5个,反倒给我的感觉是程序中断得更快了……
      

  6.   

    在server2008上编译过了的,程序能够跑起来,但是中途总是停止
    是不是内存申请不够了,用内存池等。
    按道理来讲是不应该不够的啊,我一个CPU的工控机都能跑4个相机,服务器不至于还不及工控机的。监视任务管理器的时候发现内存都是2%的涨,到54%的时候就崩了
      

  7.   

    PS:CPU使用率方面,最高的时候在46%
      

  8.   

    4核8线程的CPU能负载起4个相机(win7)系统,那么服务器至少都是能够负载其4个的,实际情况却是即使4个也会出问题,再说,这个服务器是IBM的服务器,不至于会带不起的。而且每次都是物理内存到54%的时候才停,而不是到100%。
    另外,我也试过控制线程的数量,将每个相机的线程池中线程上限控制在了5个,反倒给我的感觉是程序中断得更快了……你的问题看起来是申请不到内存才崩溃的,跟多少线程应该没有太大的直接关系,另外并不是线程越多速度越快,因为线程调度需要很大的消耗
      

  9.   

    4核8线程的CPU能负载起4个相机(win7)系统,那么服务器至少都是能够负载其4个的,实际情况却是即使4个也会出问题,再说,这个服务器是IBM的服务器,不至于会带不起的。而且每次都是物理内存到54%的时候才停,而不是到100%。
    另外,我也试过控制线程的数量,将每个相机的线程池中线程上限控制在了5个,反倒给我的感觉是程序中断得更快了……你的问题看起来是申请不到内存才崩溃的,跟多少线程应该没有太大的直接关系,另外并不是线程越多速度越快,因为线程调度需要很大的消耗问题就是没搞懂内存分配为什么会失败。刚才我又查了下资料,会不会是因为系统没有那么大的连续的内存了,所以分配失败(即使物理内存还有空余)?刚工作不久,在应用编码上还欠缺很多,有些知识也琢磨得不是恨透,希望能多给予指点
      

  10.   

    弹了,不错那个描述的具体内容我给忘了。break后调用堆栈看是new这儿出的错,应该是内存分配失败吧。现在奇怪的就是在相同负载的情况下,一个CPU的工控机能跑,服务器反倒不能跑了……
      

  11.   

    弹了,不错那个描述的具体内容我给忘了。break后调用堆栈看是new这儿出的错,应该是内存分配失败吧。现在奇怪的就是在相同负载的情况下,一个CPU的工控机能跑,服务器反倒不能跑了……
    #pragma comment(linker, "/STACK:100000000,100000000")
    把堆栈调大点试下
      

  12.   

    弹了,不错那个描述的具体内容我给忘了。break后调用堆栈看是new这儿出的错,应该是内存分配失败吧。现在奇怪的就是在相同负载的情况下,一个CPU的工控机能跑,服务器反倒不能跑了……
    #pragma comment(linker, "/STACK:100000000,100000000")
    把堆栈调大点试下
    这种方法对动态分配的内存有用吗?话说,从来没试过这种方式,现在也没法调程序,明天我再去试试吧,不行的话再改为内存池试试,但愿能KO……
      

  13.   

    #pragma comment(linker, "/STACK:100000000,100000000")不知道这个管用不?
    楼主也不来结
      

  14.   

    另外就是看看Win2008server的一些安全性设置是否对程序有影响
    有个DEP(数据执行保护)的设置,请对比下Win7和Win2008是否一样
    DEP的设置在系统属性-》高级-》性能-》设置-》数据执行保护