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:
Gerald Squelart 2020-08-13 03:30:30 +00:00
parent b2df384fc7
commit d9705556b1
2 changed files with 8 additions and 8 deletions

View File

@ -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() {

View File

@ -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() {