文章 ID: 000089477 內容類型: 維護與效能 最近查看日期: 2022 年 02 月 14 日

以大堆大小初始化Intel® Software Guard Extensions(Intel® SGX)指定位址區速度緩慢

BUILT IN - ARTICLE INTRO SECOND COMPONENT
摘要

為指定位址緩慢分配大量記憶體的原因與緩解。

描述
  • 用幾百萬位元組 的 HeapInitSize 初始化指定位址區不到一秒。
  • 以 1 GB 為例,利用大型 堆放大小的指定位址區需要數秒。
解決方法

原因:
預計要為指定位址堆初始化大量的記憶體,將需要相當長的時間。在指定位址區中初始化並新增記憶體至指定位址區(EPC),遠比一般應用程式中簡單的記憶體配置要複雜得多。在將一塊記憶體加入 EPC 之前,它必須經過數次安全檢查,包括使用 256 位 SHA-2 安全雜湊功能進行測量。

請參閱 SGX 說明中的第 5.1、5.3、5.6 節,以及 Intel SGX 指定生命週期中的 EADD 和 EEXTEND 說明。

緩解:
如果處理器在指定位址配置檔案中支援 Intel® Software Guard Extensions (Intel® SGX) SGX2:

HeapInitSize 是要在指定地點啟動時完全初始化 (即 EADD 頁面然後 EEXTEND 它) 的金額,這需要時間。初始化大小最小,速度會更快,而其餘的記憶體只會在運行期間透過 malloc 在指定指定位址時,使用 SGX2 指令新增。

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。