|
From: Nicholas N. <nj...@cs...> - 2007-07-20 07:49:33
|
On Fri, 20 Jul 2007, Christoph Bartoschek wrote: > With the following reimplementation of the execution context, the memory > consumption goes down to 500MB and the runtime goes down to 20 seconds. > The runtime improvement is due to the bigger hashtable and the size > improvement is due to the way tracebacks are stored now. The idea is to use a > linked list for the traceback and share common parts between different > tracebacks. > > To do this the external interface only changed for extract_StackTrace. > > Your comments? Interesting. One more thing to look at when I have time :) You've undoubtedly realised by now that you are stressing Valgrind's memory allocation much more than anyone else has, both with the size of the memory footprint and the number of allocations! > One additional question: Why is eq_ExeContext currently not comparing the > pointers? I understand that the whole mechanism guarantees that each context > has a unique pointer. The idea is to reduce the number of errors reported. If the same error occurs with different Execontexts, if the ExeContexts are sufficiently similar (eg. the top 4 elements are the same) then it gets reported to the user only once. The exact-pointer comparison is done for ExeContexts related to leak checking if you set --leak-resolution=high. Nick |