clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.
Symbols are the #1 most expensive item memory wise in LLDB right now. We remove
many symbols in Mach-O and we set the m_uid of each symbol to the original
symbol table index. There is a binary search for a symbol by lldb::user_id_t
that is efficient:
Symbol *
Symtab::FindSymbolByID (lldb::user_id_t symbol_uid) const
{
Mutex::Locker locker (m_mutex);
Symbol *symbol = (Symbol*)::bsearch (&symbol_uid,
&m_symbols[0],
m_symbols.size(),
sizeof(m_symbols[0]),
CompareSymbolID);
return symbol;
}
So just make sure to make your symbols have the correct lldb::user_id_t (the
original symbol table index) and don't add empty useless symbols.
http://reviews.llvm.org/D14536
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits