From c3f441d7abe7243a31150bf424babf0f1679ea88 Mon Sep 17 00:00:00 2001 From: Narfinger Date: Tue, 8 Jul 2025 20:01:02 +0900 Subject: [PATCH] OHOS CI: Allow benchmarking of files and show smaps (#37881) OHOS CI: Now we can benchmark specific files. These files need to be in the runs.json and in the supprt/hitrace-bench folder. A simple testcase of parsing html from string is included (taken from https://github.com/servo/servo/issues/37223). We copy all files in support/hitrace-bench into the hap of the phone. These files can use the console.log javascript command to get their measured output. Additionally, this now supports reporting resident-accordings-to-smaps which is a slightly different memory than resident. This needs update to hitrace-bench 0.7 which will be completed once the PR is marked ready. Testing: On action runner here: https://github.com/Narfinger/servo/actions/runs/16118101025/job/45477031813 Signed-off-by: Narfinger --- .github/workflows/ohos.yml | 2 + .../hitrace-bencher/parse_from_string.html | 37 +++++++++++++++++++ support/hitrace-bencher/runs.json | 27 ++++++++++++++ .../AppScope/resources/resfile/.gitkeep | 0 4 files changed, 66 insertions(+) create mode 100644 support/hitrace-bencher/parse_from_string.html create mode 100644 support/openharmony/AppScope/resources/resfile/.gitkeep diff --git a/.github/workflows/ohos.yml b/.github/workflows/ohos.yml index f25a60787c6..89ca58f2324 100644 --- a/.github/workflows/ohos.yml +++ b/.github/workflows/ohos.yml @@ -166,6 +166,8 @@ jobs: - run: | git switch --detach git reset --hard FETCH_HEAD + - name: Adding test files to directory + run: cp -r support/hitrace-bencher/* support/openharmony/AppScope/resources/resfile/ - name: Build for aarch64 HarmonyOS run: | ./mach build --locked --target aarch64-unknown-linux-ohos --profile=${{ inputs.profile }} --flavor=harmonyos --no-default-features --features tracing,tracing-hitrace diff --git a/support/hitrace-bencher/parse_from_string.html b/support/hitrace-bencher/parse_from_string.html new file mode 100644 index 00000000000..f769119a8f2 --- /dev/null +++ b/support/hitrace-bencher/parse_from_string.html @@ -0,0 +1,37 @@ + + + + + +
+ + + diff --git a/support/hitrace-bencher/runs.json b/support/hitrace-bencher/runs.json index 63c64f41a66..ced37565062 100644 --- a/support/hitrace-bencher/runs.json +++ b/support/hitrace-bencher/runs.json @@ -11,6 +11,7 @@ //"sleep": 10, // how long should we wait for servo to load the page //"bundle_name": "org.servo.servo", // the bundle name to start //"commands": ["--ps=--tracing-filter", "info"] // arbitrary additional arguments + //"is_rooted": true // Allows files to be pushed to the device instead of relying them being already packaged }, "filters": [ // Filters are currently given via the simple serialize of `filters::JsonValueFilter`. @@ -46,6 +47,11 @@ { "name": "JS", "match_str": "js" + }, + { + "name": "resident-smaps", + "match_str": "resident-according-to-smaps", + "combined": true, } ] }, @@ -82,6 +88,27 @@ { "name": "JS", "match_str": "js" + }, + { + "name": "resident-smaps", + "match_str": "resident-according-to-smaps", + "combined": true + } + ] + }, + { + "args": { + "bencher": true, + "url": "file:///parse_from_string.html", + "tries": 5 + }, + "filters": [ + ], + "point_filters": [ + { + "name": "", + "match_str": "parsefromstring", + "no_unit_conversion": true } ] } diff --git a/support/openharmony/AppScope/resources/resfile/.gitkeep b/support/openharmony/AppScope/resources/resfile/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d