mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
Bug 1658232 - Use a temporary ProfileBuffer in locked_profiler_get_backtrace - r=gregtatum
A heap-allocate ProfileBuffer is not really needed, so it's more efficient to have one on the stack during capture, and we don't need to keep it in the `ProfilerBacktrace`. Differential Revision: https://phabricator.services.mozilla.com/D86513
This commit is contained in:
parent
b2df384fc7
commit
d9705556b1
@ -3558,12 +3558,12 @@ static UniqueProfilerBacktrace locked_profiler_get_backtrace(PSLockRef aLock) {
|
||||
auto bufferManager = MakeUnique<ProfileChunkedBuffer>(
|
||||
ProfileChunkedBuffer::ThreadSafety::WithoutMutex,
|
||||
MakeUnique<ProfileBufferChunkManagerSingle>(scExpectedMaximumStackSize));
|
||||
auto buffer = MakeUnique<ProfileBuffer>(*bufferManager);
|
||||
ProfileBuffer buffer(*bufferManager);
|
||||
|
||||
DoSyncSample(aLock, *registeredThread, now, regs, *buffer);
|
||||
DoSyncSample(aLock, *registeredThread, now, regs, buffer);
|
||||
|
||||
return UniqueProfilerBacktrace(new ProfilerBacktrace(
|
||||
"SyncProfile", tid, std::move(bufferManager), std::move(buffer)));
|
||||
return UniqueProfilerBacktrace(
|
||||
new ProfilerBacktrace("SyncProfile", tid, std::move(bufferManager)));
|
||||
}
|
||||
|
||||
UniqueProfilerBacktrace profiler_get_backtrace() {
|
||||
|
@ -5330,12 +5330,12 @@ static UniqueProfilerBacktrace locked_profiler_get_backtrace(PSLockRef aLock) {
|
||||
auto bufferManager = MakeUnique<ProfileChunkedBuffer>(
|
||||
ProfileChunkedBuffer::ThreadSafety::WithoutMutex,
|
||||
MakeUnique<ProfileBufferChunkManagerSingle>(scExpectedMaximumStackSize));
|
||||
auto buffer = MakeUnique<ProfileBuffer>(*bufferManager);
|
||||
ProfileBuffer buffer(*bufferManager);
|
||||
|
||||
DoSyncSample(aLock, *registeredThread, now, regs, *buffer);
|
||||
DoSyncSample(aLock, *registeredThread, now, regs, buffer);
|
||||
|
||||
return UniqueProfilerBacktrace(new ProfilerBacktrace(
|
||||
"SyncProfile", tid, std::move(bufferManager), std::move(buffer)));
|
||||
return UniqueProfilerBacktrace(
|
||||
new ProfilerBacktrace("SyncProfile", tid, std::move(bufferManager)));
|
||||
}
|
||||
|
||||
UniqueProfilerBacktrace profiler_get_backtrace() {
|
||||
|
Loading…
Reference in New Issue
Block a user