forked from OSchip/llvm-project
b0572abf72
Some larger projects were loading quite slowly with the current LLDB on macOS and macOS simulator builds. I did some instrument traces and found 3 main culprits: - a LLDB timer that was put into a function that was called too often - a std::set that was keeping track of the address of symbols that were already added - a unnamed function generator in ObjectFile that was going slow due to allocations In order to see this in action I ran the latest LLDB on a large application with many frameworks using the following method: (lldb) script import time; start_time = time.perf_counter() (lldb) file Large.app (lldb) script print(time.perf_counter() - start_time) I first range "sudo purge" to clear the system file caches to simulate a cold startup of the debugger, followed by two iterations with warm file caches. Prior to this fix I was seeing the following timings: 17.68 (cold) 14.56 (warm 1) 14.52 (warm 2) After this fix I was seeing: 11.32 (cold) 8.43 (warm 1) 8.49 (warm 2) Differential Revision: https://reviews.llvm.org/D103504 |
||
---|---|---|
.. | ||
ArmUnwindInfo.cpp | ||
Block.cpp | ||
CMakeLists.txt | ||
CompactUnwindInfo.cpp | ||
CompileUnit.cpp | ||
CompilerDecl.cpp | ||
CompilerDeclContext.cpp | ||
CompilerType.cpp | ||
DWARFCallFrameInfo.cpp | ||
DebugMacros.cpp | ||
DeclVendor.cpp | ||
FuncUnwinders.cpp | ||
Function.cpp | ||
LineEntry.cpp | ||
LineTable.cpp | ||
LocateSymbolFile.cpp | ||
LocateSymbolFileMacOSX.cpp | ||
ObjectFile.cpp | ||
PostfixExpression.cpp | ||
Symbol.cpp | ||
SymbolContext.cpp | ||
SymbolFile.cpp | ||
SymbolVendor.cpp | ||
Symtab.cpp | ||
Type.cpp | ||
TypeList.cpp | ||
TypeMap.cpp | ||
TypeSystem.cpp | ||
UnwindPlan.cpp | ||
UnwindTable.cpp | ||
Variable.cpp | ||
VariableList.cpp |