快速入門指南¶
本快速入門指南專為主要對使用 LNT 以 LLVM 測試套件測試編譯器感興趣的 LLVM 開發人員設計。
安裝¶
首先要做的是檢查安裝 LNT 軟體本身。以下步驟應適用於任何現代 Unix 變體
安裝
virtualenv
,如有必要sudo easy_install virtualenv
virtualenv
是一個標準 Python 工具,用於允許將 Python 應用程式安裝到其自身的沙箱或虛擬環境中。為 LNT 應用程式建立新的虛擬環境
virtualenv ~/mysandbox
這將在
~/mysandbox
建立新的虛擬環境。檢查 LNT 原始碼
git clone https://github.com/llvm/llvm-lnt.git ~/lnt
將 LNT 安裝到虛擬環境中
~/mysandbox/bin/python ~/lnt/setup.py develop
我們建議針對本機使用使用
develop
而不是 install,以便對 LNT 原始碼的任何變更立即傳播到您的安裝。如果您正在執行生產安裝或非常在意穩定性,則可以使用install
,它將複製原始碼,並且您需要在想要更新 LNT 應用程式時明確地重新安裝。
就是這樣!
執行測試¶
若要使用 LNT 執行 LLVM 測試套件,您可以使用 lnt runtest
命令。以下資訊應足以讓您開始,但請參閱 測試產生器 章節以取得更完整的說明文件。
檢查 LLVM 測試套件(如果您尚未檢查)
git clone https://github.com/llvm/llvm-test-suite.git ~/llvm-test-suite
您應始終保持測試套件目錄本身乾淨(也就是說,永遠不要在測試套件內執行 configure)。請確保不要將其簽出到 LLVM projects 目錄中,因為 LLVM 的 configure/make 建置會想要自動為您設定它。
執行
lnt runtest test-suite
測試產生器,將其指向測試套件和您要測試的編譯器lnt runtest test-suite \ --sandbox /tmp/BAR \ --cc ~/llvm.obj.64/Release+Asserts/bin/clang \ --cxx ~/llvm.obj.64/Release+Asserts/bin/clang++ \ --test-suite ~/llvm-test-suite \ --cmake-cache Release
SANDBOX
值是測試套件建置產品和結果的儲存路徑(預設情況下在帶有時間戳記的目錄內)。我們建議新增
--build-tool-options "-k"
(如果您使用make
)或--build-tool-options "-k 0"
(如果您使用ninja
)。這可確保建置工具即使在其中一個測試中發生編譯失敗時仍繼續建置。如果沒有這些選項,則編譯失敗後的每個測試將不會被編譯,並且將報告為缺少可執行檔。在大多數系統上,執行時間結果會有些雜訊。您可以執行一系列操作來減少雜訊(在括號之間可用時使用 LNT runtest test-suite 命令列選項)
僅並行建置基準測試,但一次最多執行一個基準測試程式碼。(
--threads 1 --build-threads 6
)。當然,當您也對測量的編譯時間感興趣時,您也應該依序建置。(--threads 1 --build-threads 1
)。在 linux 下執行時:讓 lnt 使用 linux perf 來取得更精確的短時間執行基準測試計時(
--use-perf=1
)將正在執行的基準測試釘選到特定的核心,以便作業系統不會將基準測試程序從一個核心移到另一個核心。(在 linux 下:
--make-param="RUNUNDER=taskset -c 1"
)僅執行標記為基準測試的程式;測試套件中的某些測試並非旨在用作基準測試。(
--benchmarking-only
)確保每個程式都執行多次,以便 LNT 更容易辨識哪些程式本質上是嘈雜的(
--multisample=5
)停用頻率縮放/渦輪加速。如果發生熱節流,可能會扭曲結果。
盡可能停用目標系統上的許多程序或服務。
檢視結果¶
預設情況下,lnt runtest test-suite
將在執行後顯示通過和失敗,但如果您有興趣更詳細地檢視結果資料,則應安裝本機 LNT 執行個體以提交結果。
您可以使用以下命令建立本機 LNT 執行個體,例如
lnt create ~/myperfdb
這將在 ~/myperfdb
建立 LNT 執行個體,其中包含 LNT 應用程式的組態和用於儲存結果的 SQLite 資料庫。
一旦您擁有本機執行個體,您可以直接提交結果
lnt import ~/myperfdb SANDBOX/test-<stamp>/report.json
或作為執行的一部分
lnt runtest --submit ~/myperfdb nt ... arguments ...
將結果提交到資料庫後,您可以使用以下命令執行 LNT Web UI
lnt runserver ~/myperfdb
預設情況下,伺服器在 https://127.0.0.1:8000
上執行。
未來,LNT 將開發一套健全的命令列工具,以允許在不必使用 Web UI 的情況下調查效能結果。