C#單線程內存佔用過大致使沒法建立新的對象

 

 

https://msdn.microsoft.com/zh-cn/library/8cxs58a6.aspx  按照csdn原文 默認分配的堆棧大小爲1mb  能夠經過maxstacksize改變默認值工具

我這裏涉及到大量圖片轉碼 以前的處理方式是返回image集合保存 如今更改成處理後當即保存並銷燬image對象url

/STACK(堆棧分配)

Visual Studio 2015
 
其餘版本
 
 

若要了解有關 Visual Studio 2017 RC 的最新文檔,請參閱 Visual Studio 2017 RC 文檔spa

 
 
/STACK:reserve[,commit]  

備註
 
 

/STACK 選項設置堆棧的大小(以字節爲單位)。 此選項僅在生成 .exe 文件時使用。操作系統

reserve 值指定虛擬內存中的總的堆棧分配。 對於 ARM、x86 和 x64 計算機,默認堆棧大小爲 1 MB。code

commit 取決於操做系統所做的解釋。 在 Windows WindowsRT 中,它指定一次分配的物理內存的數量。 提交的虛擬內存致使空間被保留在頁面文件中。 更高的 commit 值在應用程序須要更多堆空間時可節省時間,但會增長內存需求並有可能延長啓動時間。 對於 ARM 、x86 和 x64 計算機,默認提交值爲 4 KB。orm

以十進制或 C 語言表示法指定 reserve和 commit 值。對象

設置堆棧大小的另外一種方法是使用模塊定義 (.def) 文件中的 STACKSIZE 語句。 若是二者都指定,則 STACKSIZE 重寫堆棧分配 (/STACK) 選項。 能夠使用 EDITBIN 工具在生成 .exe 文件以後更改堆棧大小。blog

在 Visual Studio 開發環境中設置此連接器選項

  1. 打開項目的「屬性頁」對話框。 有關詳細信息,請參見設置 Visual C++ 項目屬性圖片

  2. 選擇 Linker 文件夾。ip

  3. 選擇「系統」屬性頁。

  4. 修改下列任一屬性:

    • 堆棧提交大小

    • 堆棧保留大小

相關文章
相關標籤/搜索