快速入門指南¶
本快速入門指南適用於主要對使用 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
您應該始終保持測試套件目錄本身乾淨(也就是說,永遠不要在測試套件中執行設定)。確保不要將其簽出到 LLVM 專案目錄中,因為 LLVM 的 configure/make build 之後會想要自動為您設定它。
執行
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 網站介面
lnt runserver ~/myperfdb
默認情況下,它會在 https://127.0.0.1:8000
上運行伺服器。
未來,LNT 將發展出一套強大的命令列工具,以便在不必使用網站介面的情況下調查效能結果。