mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 01:08:39 +09:00
Reduce number of allocations in AutoStopwatch
This patch fixes two related issues. 1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to communicate with its callback during each compartment switch. This vector was designed to allow its contents to be stack-allocated but they turned out to be accidentally heap-allocated. 2. During each tick, the stopwatch fills a vector `recentGroups_`. This vector always started with minimal capacity and had to grow repeatedly as groups were added, causing repeated reallocations. This patch preallocates `recentGroups_` to have the same capacity as the previous tick. We expect that this should eventually reach a stable size that closely matches the actual needs of the process.
This commit is contained in:
parent
dce38e8d76
commit
7d0bef1093
4 changed files with 31 additions and 9 deletions
|
|
@ -6566,7 +6566,7 @@ struct JS_PUBLIC_API(PerformanceGroup) {
|
|||
uint64_t refCount_;
|
||||
};
|
||||
|
||||
using PerformanceGroupVector = mozilla::Vector<RefPtr<js::PerformanceGroup>, 0, SystemAllocPolicy>;
|
||||
using PerformanceGroupVector = mozilla::Vector<RefPtr<js::PerformanceGroup>, 8, SystemAllocPolicy>;
|
||||
|
||||
/**
|
||||
* Commit any Performance Monitoring data.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue