建議使用 Visual Studio 2017

記憶體管理函式

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

本文件說明並行執行階段所提供、協助您以並行方式配置和釋放記憶體的記憶體管理函式。

System_CAPS_ICON_tip.jpg 提示

並行執行階段提供了預設排程器,因此您不需要在應用程式中建立排程器。 因為工作排程器有助於微調應用程式效能,如果您是並行執行階段的新使用者,建議請從平行模式程式庫 (PPL)非同步代理程式程式庫開始。

並行執行階段提供兩項經最佳化而能夠以並行方式配置和釋放記憶體區塊的記憶體管理函式。 concurrency::Alloc 函式可使用指定的大小配置記憶體區塊。 concurrency::Free 函式可釋放先前由 Alloc 配置的記憶體。

System_CAPS_ICON_note.jpg 注意

AllocFree 函式彼此相依。 Free 函式僅適用於釋放您以 Alloc 函式配置的記憶體。 此外,當您使用 Alloc 函式配置記憶體時,請使用 Free 函式釋放該記憶體。

當您配置和釋放不同執行緒或工作中一組固定的配置大小時,請使用 AllocFree 函式。 並行執行階段會從 C 執行階段堆積中快取它所配置的記憶體。 並行執行階段會為每個執行中的執行緒保留一個獨立的記憶體快取;因此,執行階段在管理記憶體時無須使用鎖定或記憶體屏障。 記憶體快取的存取頻率愈高,AllocFree 函式對應用程式的效用就愈明顯。 例如,經常同時呼叫 AllocFree 的執行緒相較於主要僅呼叫 AllocFree 的執行緒,前者的受益程度較高。

System_CAPS_ICON_note.jpg 注意

當您使用這些記憶體管理函式時,如果您的應用程式使用大量記憶體,應用程式可能會比預期更快進入記憶體不足的情況。 由於一個執行緒所快取的記憶體區塊無法供其他任何執行緒使用,因此當某個執行緒佔用大量記憶體時,該記憶體即無法另作他用。

如需使用 AllocFree 函式改善記憶體效能的範例,請參閱 如何:使用 Alloc 和 Free 改善記憶體效能

工作排程器
如何:使用 Alloc 和 Free 改善記憶體效能

顯示: