Split the coarse-grained mLock into two fine-grained locks to reduce contention:
- mDBLock (RWLock): Protects the DNS cache (mRecordDB) with read-heavy optimizations
- mQueueLock (Mutex): Protects work queues and thread coordination
This reduces lock hold times by decoupling cache lookups from queue operations,
allowing concurrent cache reads while queue work proceeds independently.
Stress test confirms 89% contention reduction at real scale (166.27x → 17.62x ratio).
Differential Revision: https://phabricator.services.mozilla.com/D288329
Split the coarse-grained mLock into two fine-grained locks to reduce contention:
- mDBLock (RWLock): Protects the DNS cache (mRecordDB) with read-heavy optimizations
- mQueueLock (Mutex): Protects work queues and thread coordination
This reduces lock hold times by decoupling cache lookups from queue operations,
allowing concurrent cache reads while queue work proceeds independently.
Stress test confirms 89% contention reduction at real scale (166.27x → 17.62x ratio).
Differential Revision: https://phabricator.services.mozilla.com/D288329
Split the coarse-grained mLock into two fine-grained locks to reduce contention:
- mDBLock (RWLock): Protects the DNS cache (mRecordDB) with read-heavy optimizations
- mQueueLock (Mutex): Protects work queues and thread coordination
This reduces lock hold times by decoupling cache lookups from queue operations,
allowing concurrent cache reads while queue work proceeds independently.
Stress test confirms 89% contention reduction at real scale (166.27x → 17.62x ratio).
Differential Revision: https://phabricator.services.mozilla.com/D288329
calculate_frecency determines frecency values for moz_places rows
in Places. We should add performance tests to understand the impact
of changes to the function, especially as we continue to evolve
the algorithm.
Differential Revision: https://phabricator.services.mozilla.com/D267276
zst is faster, can run in parallel, and has better compression ratio.
With this change target.perftests.tests.tar.gz's size does down from 92M
to 83M, and the package_test step goes from 1m25s down to 37s
Differential Revision: https://phabricator.services.mozilla.com/D263314
zst is faster, can run in parallel, and has better compression ratio.
With this change target.perftests.tests.tar.gz's size does down from 92M
to 83M, and the package_test step goes from 1m25s down to 37s
Differential Revision: https://phabricator.services.mozilla.com/D263314
zst is faster, can run in parallel, and has better compression ratio.
With this change target.perftests.tests.tar.gz's size does down from 92M
to 83M, and the package_test step goes from 1m25s down to 37s
Differential Revision: https://phabricator.services.mozilla.com/D263314
This patch updates all of the Translations perftest infrastructure
to test each Translations model architecture kind: tiny, base-memory,
and base.
Differential Revision: https://phabricator.services.mozilla.com/D266895
This patch updates all of the Translations perftest infrastructure
to test each Translations model architecture kind: tiny, base-memory,
and base.
Differential Revision: https://phabricator.services.mozilla.com/D266895
Caching the active descendant "relation" allows us to not do slow
queries with selectors.
With the added perftest I see a local improvement in A11Y_TotalTime from
852ms to 44ms.
Differential Revision: https://phabricator.services.mozilla.com/D262616
This patch serves as documentation for adding a single brower-based perftest to the accessibility perftesting suite.
Some things to note:
- Your additional test should be disabled in the `perftest.toml` file to avoid it running by any framework that slurps up `*.toml` files from `/accessible/browser/` subdirectories. It will still run under the `./mach perftest` command and in the associated `./mach try perf` job, if added to CI.
- Please verify your test runs via `./mach test` or `./mach mochitest` without errors before running with `./mach perftest`.
- You'll need to copy the `perfMetadata` object from an existing test, please modify only the test description and name.
- You'll need to add your test to `config.yml`
- Generate `mozperftest.rst` via `./mach lint -l perfdocs --outgoing --fix`, CI will warn you about this if you fail to do it.
- We cannot currently run perftest manifests in CI, each test needs to be added individually. Keep in mind that the firefox binary file location is different per platform; you can copy/paste from the existing test configs to set up your new test, but do not copy (for example) from `linux.yml` to `macos.yml`.
- Our timer function (`timeThis`) can only be called once per test. Also, we can only have one test per file.
Differential Revision: https://phabricator.services.mozilla.com/D258639
This patch adds a perftest for the OONX speecht5-tts q8 quantized model as part of our ongoing exploration and benchmarking of TTS tasks for transform media type project. The goals are 1) add the first perftest for speech-to-text task as reference for future tests; 2) benchmark core performance metrics like latency and memory usage to assess realistic inference conditions (note that streaming audio output is not yet tested. This helps establish a baseline for comparing candidate TTS models (as well as different quantization levels) for future integration decisions. The test runs directly in transformers.js without any modification to the pipeline.
Differential Revision: https://phabricator.services.mozilla.com/D248133
This patch adds some changes needed to run mochitest android tests in CI for mozperftest. The main change is that we use `runtestsremote.run_test_harness` instead of `runtests.run_test_harness` for running android tests.
Additionally, the `LogProcessor` is modified to use the `re.search` method for finding the `perfMetrics` output and remove the requirement for there to be a space after `perfMetrics`. This is done because the output received from mochitest android is always prefixed with something which broke `re.match`. The removal of the space requirement was done to remove a common pitfall that was seen with others writing mozperftest mochitest tests.
Differential Revision: https://phabricator.services.mozilla.com/D245766
This patch enables local mochitest android performance testing by passing the correct arguments to mochitest. It is enabled when the `--android` option is passed in a `mach perftest` mochitest test run. A mobile `--app` setting is also needed to have mochitest use the correct binary/activity.
Differential Revision: https://phabricator.services.mozilla.com/D245116
This patch introduces a performance test targeting the history using semantic search functionality. The test is designed to benchmark the efficiency and responsiveness of the history semantic search operations under various conditions. Shorter vs Longer search queries and Concurrent vs Non-concurrent inference when vector DB load happens as deferred task in the background. This captures latency, of the ML engine, end to end inference and also the semantic search for shorter and longer queries.
In addition to that it captures how much time does it take for the vector DB update process to complete for the 10000 history entries.
Differential Revision: https://phabricator.services.mozilla.com/D245087
Running `./mach perftest` gives errors or surprising behaviour, and is generally
unmaintained. Remove the no-arguments behaviour and leave specific test runner
scenarios. The `./mach try perf` tools is the recommended way to run perf tests
on CI these days.
Differential Revision: https://phabricator.services.mozilla.com/D239266
This patch reverts "Bug 1920813 - Add performance test for WebCodecs
video encoding
r=perftest-reviewers,media-playback-reviewers,aosmond,padenot,sparky" by
running `git revert` with modification needed.
Differential Revision: https://phabricator.services.mozilla.com/D234114
The android startup tests were not implemented correctly when they were first added.
To properly reformat the tests we needed to run the correct method in parallel with the incorrect method to ensure we missed no alerts for a few weeks
Now that we have those few weeks, we are removing the old incorrectly formatted tests
Differential Revision: https://phabricator.services.mozilla.com/D234909
Adds infrastructure to run perf tests for Translations,
as well as a perftest file for measuring the es-en
Translations model.
Depends on D233318
Differential Revision: https://phabricator.services.mozilla.com/D233301