記憶體管理函式
本檔說明並行執行時間提供的記憶體管理功能,可協助您以並行方式配置和釋放記憶體。
提示
並行執行階段會提供預設排程器,因此您不需要在應用程式中建立排程器。 由於工作排程器可協助您微調應用程式的效能,因此如果您不熟悉並行執行時間,建議您從平行模式程式庫 (PPL) 或 非同步代理程式程式庫 開始 。
並行執行時間提供兩個記憶體管理功能,可針對並行配置和釋放記憶體區塊進行優化。 並行 ::Alloc 函式會使用指定的大小來配置記憶體區塊。 並行 ::Free 函式會釋放 所 Alloc
配置的記憶體。
注意
和 Free
函 Alloc
式彼此相依。 僅使用 函 Free
式釋放您使用 函式配置的 Alloc
記憶體。 此外,當您使用 函 Alloc
式來配置記憶體時,只使用 函 Free
式釋放該記憶體。
Alloc
當您從不同的執行緒或工作配置和釋放一組固定的配置大小時,請使用 和 Free
函式。 並行執行時間會快取它從 C 執行時間堆積配置的記憶體。 並行執行時間會針對每個執行中的執行緒保留個別的記憶體快取;因此,執行時間會管理記憶體,而不需要使用鎖定或記憶體屏障。 當記憶體快取更頻繁地存取時,應用程式會從 Alloc
和 Free
函式獲益更多。 例如,經常呼叫 和 Free
的執行緒比主要呼叫 Alloc
Alloc
或 Free
的執行緒更有好處。
注意
當您使用這些記憶體管理功能,且應用程式使用大量記憶體時,應用程式可能會比預期更快進入低記憶體狀況。 因為一個執行緒所快取的記憶體區塊無法供任何其他執行緒使用,如果一個執行緒保存大量的記憶體,該記憶體就無法使用。
範例
如需使用 Alloc
和 Free
函式來改善記憶體效能的範例,請參閱 如何:使用 Alloc 和 Free 來改善記憶體效能 。
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: