延伸共用記憶體

「延伸共用記憶體」容許 32 位元處理程序將共用記憶體區段配置為小到一個位元組,並四捨五入至最接近的頁面。 在處理程序環境中,變數 EXTSHM 設為 ON1SEGMSEG 的處理程序可以使用此特性。

「延伸共用記憶體」基本上會移除僅 11 個共用記憶體區域的限制。 EXTSHM 變數不會影響 64 位元處理程序。

EXTSHM 設為 ON 具有與將變數設為 1SEG相同的效果。 使用任一設定,任何小於 256 MB 的共用記憶體都會在內部建立為 mmap 區段,因此具有相同的 mmap 效能含意。 任何大於或等於 256 MB 的共用記憶體都會在內部建立為工作區段。

如果 EXTSHM 設為 MSEG,則會在內部建立所有共用記憶體作為 mmap 區段,以容許更好的記憶體使用率。

處理程序可以連接的共用記憶體區域數目沒有限制。 與之前一樣支援檔案對映,但會耗用 256 MB (區段大小) 的倍數的位址空間。 在此模式下不支援調整共用記憶體區域的大小。 核心處理程序具有相同的行為。

「延伸共用記憶體」具有下列限制:

  • I/O 支援的限制方式與記憶體對映區域相同。
  • 僅支援 phphysio () 類型的 I/O (無原始 I/O)。
  • 這些共用記憶體區域無法用作 I/O 緩衝區,其中緩衝區取消固定會在岔斷處理程式中發生。 例如,這些區域無法用於非同步 I/O 緩衝區。
  • 無法使用 plock () 子常式來固定區段,因為記憶體對映區段無法與 plock () 子常式一起固定。