好的,所以我目前正试图在win2003服务器上调试一个问题。基本上我们有一个古老的程序,称为C的system()
函数。现在我基本上追踪到system()运行应用程序时的事实。该应用程序只能访问大约500兆左右的内存。然而,如果我自己手动运行应用程序,它运行良好。系统C命令和内存限制?
系统命令和内存是否存在某种限制因素?
编辑
好了更详细地说明。我们有一个自动处理系统,基本上需要一个输入文件并在其上运行一堆应用程序。这在过去的12年中运行良好。但是现在我们正在使用ArcEngine(ESRI图像处理)处理更大和更大的图像(遥感)。现在我们基本上有以下几种:
输入文件进来 - >获取处理系统 - >通过调用system()一个接一个地执行一组预定义的任务。
现在谈到ESRI应用程序时,系统在尝试将图像读入内存时崩溃了。我无法通过部分阅读图像文件来做任何事情,因为这是他们的SDK工作原理。另外我只是通过创建一个veru简单的C程序来进行测试,forcefullies分配内存并查看它何时崩溃。它几乎恰好在512MB左右崩溃。我环顾四周,找不到任何东西。 =/...
EDIT 2
我只是做了一些时髦的测试。我基本上写了一个小的C程序,通过system()调用应用程序。并称之为,它在同一个地方崩溃。当我打电话给这个程序时,系统有2.5GB可用内存(3个)。然后我基本上写了一个使用子进程和popen的python脚本,它运行良好。将python脚本添加到自动处理系统也运行良好。
什么可能做到这一点?
编辑3
Python脚本和处理系统都作为同一个用户运行。唯一的区别是处理系统作为服务运行,以用户身份登录。
请您详细说明一下,是否只能访问500MB内存而导致崩溃? – 2009-09-30 18:32:01
你有没有检查过我提出的建议? – 2009-09-30 20:20:13
python脚本是否以不同于C中程序的用户身份运行? – 2009-09-30 20:31:11