|
From: Julian S. <js...@ac...> - 2006-10-24 15:58:48
|
> It looks like your program is causing a lot of very similar and/or > identical stack traces to be created, and the comparisons against the > existing ones are taking up a lot of time. That was my guess too. But later it occurred to me, Christoph said the program first has a nutshell (container, I guess?) which allocates a lot of memory - maybe 1 M blocks, and then the main algorithm runs. Suppose the nutshell fills the table execontext table up a lot. Then when the algorithm runs and does malloc/free, these will be expensive because each one requires searching through long hash chains. If that's true one simple fix would be the usual hack of moving an ExeContext in a chain one step forwards for each successful search. Various other tables already do that. I suspect this is easy to fix if we have a way to reproduce the problem. J |