產生 Fuchsia 效能測試結果

本頁列出產生 Fuchsia 效能測試結果檔案的程式庫。

Fuchsia 效能測試結果採用 fuchsiaperf.json 格式。所有在 Fuchsia Infra 上執行的效能測試,且由 Fuchsia 工具追蹤其結果時,都會產生 fuchsiaperf.json 格式的結果。這些測試都是透過以 Python 為基礎的 Lacewing 架構或以 TensorFlow 為基礎的 SL4F 測試架構執行,但在許多情況下,Python 程式碼會隱藏在檢視畫面中,開發人員只需要編寫 GN 即可。

選項

根據您要使用的程式設計語言,有幾種方法可以產生 fuchsiaperf.json 檔案。

下列低層級選項是輸出 fuchsiaperf JSON 檔案的細包裝函式,而較高層級的選項則會針對要編寫的效能測試類型做出更多假設。

  • Python:

    • 高階:您可以使用 Python trace_processing 程式庫,從 Fauchsia 追蹤記錄中擷取效能指標。如果您已建立正確性測試,並想將其用於一併產生效能結果,這個方法就很實用。在這種情況下,通常會修改軟體進行測試,以產生額外的追蹤事件。

      例如使用 trace_processing 程式庫並擷取一組事件的 perftest_trace_events_test

      測試應使用 python_perf_test 範本,因為其中包含追蹤處理和發布指標的所有必要依附元件。

  • Dart:

    • 高階:您可以使用 Dart trace_processing 程式庫從 Fauchsia 追蹤記錄中擷取效能指標。如果您已建立正確性測試,並想將其用於一併產生效能結果,這個方法就很實用。在這種情況下,通常會修改軟體進行測試,以產生額外的追蹤事件。

      例如 flatland_benchmarks_test.dart 會定義 MetricsSpecSet 使用 trace_processing 程式庫。

    • 低層級:您可以使用 TestCaseResults 類別產生 fuchsiaperf.json 檔案的項目。這通常與 trace_processing 程式庫搭配使用,但也可以分開使用。

    • 高或低層級:從 Dart 中,您可以執行產生 fuchsiaperf.json 檔案的子程序。子程序可以執行以 Dart 以外的語言編寫的程式碼。您可利用各種 Dart SL4F 包裝函式執行這項作業。

  • C++:perftest C++ 程式庫提供兩個介面:

    • 高階:您可以使用 perftest.h 建立 Mifbenchmark。在這種情況下,Microbenchmark 是測試,指的是會獨立執行某項作業,並測量其執行時間。您可以將新的 Microbenchmark 新增至 src/tests/microbenchmarks/,如果方法與該目錄中的測試大幅不同,您也可以將其新增到原始碼樹狀結構的其他位置。

    • 低層級:您可以使用 perftest/results.h 直接產生 fuchsiaperf.json 檔案。

  • Rust:

  • Go:

    • 低層級:您可以使用 go-benchmarking 程式庫產生 fuchsiaperf.json 檔案。

在 GN 中宣告測試

對於大量的基準測試,我們只需要編寫目標端元件、執行該元件,然後處理測試輸出的 fuchsiaperf 檔案並發布結果。範本 fuchsia_component_perf_test 可簡化這項流程。範本 python_perf_test 可供其他以 Python 編寫的主機端測試使用,用來處理效能指標。