由 Arm 支援的電腦也提供絕佳的應用程式相容性,並可讓您執行現有的未修改 x86 win32 應用程式而無需修改。 Arm 應用程式以原生方式執行,而沒有任何模擬,而 x86 和 x64 應用程式則以模擬方式在 Arm 裝置上執行。
不過,有時候模擬執行的優化不會帶來最佳的用戶體驗。 您可以使用 程式相容性疑難解答員 來切換 x86 或 x64 應用程式的模擬設定,減少默認優化並可能增加相容性。
啟動程式相容性疑難解答員
您可以在任何 Windows 電腦上以相同方式手動啟動 程式相容性疑難解答員:以滑鼠右鍵按下可執行檔 (.exe) 檔案,然後選取 [疑難解答相容性]。 接著,您可以選擇 [嘗試建議的設定 ],以使用建議的相容性設定來測試執行程式,或 針對程序進行疑難解答 ,根據您注意到的特定問題選擇相容性設定。
如果您選取 [疑難解答程式],您可以選擇:
- 程式在舊版 Windows 中運作,但不會立即安裝或執行
- 程式即時開啟,但無法正確顯示
- 程式需要額外的許可權
- 我沒有看到我的問題列出
所有選項都會啟用在 Windows 桌面電腦上適用並套用的設定。 此外,第一、第二和第四個選項會套用 Disable application cache
和 Disable hybrid execution mode
模擬設定。 (如需說明,請參閱下方的模擬設定表。
切換模擬設定
警告
變更模擬設定可能會導致應用程式意外當機或完全未啟動。
您可以在可執行檔上按下滑鼠右鍵,然後選取 [屬性]
在 ARM 上,標題為 ARM 上的 Windows 10 區段或 ARM 上的 Windows 11 將在 [ 相容性 ] 索引標籤中提供。選取 [變更模擬設定 ] 以啟動 [模擬屬性] 視窗。
這個模擬屬性視窗提供兩種方式來修改模擬設定。 您可以選取預先定義的模擬設定群組,或選取 [ 使用進階設定 ] 選項來啟用選擇個別設定。
下列模擬設定可降低效能優化,以提升品質,並可用來測試 x86 或 x64 應用程式在 Windows on Arm 上執行時的相容性。
選取 [使用進階設定 選擇個別設定,如下表所述。
模擬設定 | 結果 |
---|---|
停用應用程式快取 | 操作系統會快取編譯的程式代碼區塊,以減少後續執行的模擬額外負荷。 這個設定需要模擬器在運行時間重新編譯所有應用程式程序代碼。 |
停用混合式執行模式 | 編譯的混合式可攜式可執行檔 (CHPE), 二進位檔是 x86 相容的二進位檔,其中包含原生 Arm64 程式代碼以改善效能,但可能與某些應用程式不相容。 此設定會強制使用僅限 x86 的二進位檔。 |
其他輕量化模擬保護 | 全面更新會影響易變性元數據等項目,在模擬中執行 x86 或 x64 應用程式時可能會影響效能。 |
嚴格自我修改程式碼支援 | 啟用此選項,以確保模擬中正確支援任何自我修改程式代碼。 預設模擬器行為涵蓋最常見的自我修改程序代碼案例。 啟用此選項可大幅降低執行期間自我修改程式碼的效能。 |
停用 RWX 頁面效能優化 | 此優化可改善可讀取、可寫入和可執行檔 (RWX) 頁面上的程式代碼效能,但可能與某些應用程式不相容。 |
停用 JIT 優化 (僅限 x64 應用程式) | 這已不再使用,並將在未來版本的疑難解答員中移除。 |
停用浮點優化 (僅限 x64 應用程式) | 檢查是否以完整的 80 位精確度模擬 x87 浮點,但需承受效能上的損失。 x87 是一種浮點協處理器,用於某些較舊的 x86 處理器,使用 80 位浮點數格式執行浮點算術,精確度高於 32 位或 64 位格式。 |
您也可以變更應用程式使用多個 CPU 核心的方式,在快速、嚴格多核心作業、非常嚴格或強制單一核心作業之間選取。 如果您發現相容性問題,請使用這些設定在 Arm 上執行 Windows 時測試您的應用程式模擬。
這些設定會變更在模擬期間用來同步處理應用程式中核心之間記憶體存取的記憶體屏障數目。 快速 是預設模式,但 嚴格 和 非常嚴格的 選項將增加障礙數目。 這會讓應用程式變慢,但可降低應用程式錯誤的風險。 單一核心 選項會移除所有障礙,但會強制所有應用程式線程在單一核心上執行。
如果變更特定設定可解決您的問題,請傳送電子郵件 woafeedback@microsoft.com 詳細數據,以便我們納入您的意見反應。