好的,所以我目前正試圖在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