[armedbear-devel] Saving stackframes?

Erik Huelsmann ehuels at gmail.com
Sun Jul 12 10:33:49 UTC 2009


When looking at numerous backtraces, I find that the pattern
LispThread.execute->Symbol.execute->function.execute happens very
often. The only thing Symbol.execute does is forward the call to the
function in its function slot.

Now, we could save ourselves this stackframe by taking "the stack hit"
in LispThread.execute the following way:

  if (function instanceof Symbol)
     function.getSymbolFunction().execute()
  else
     function.execute()


where the execute function in LispThread currently only contains
function.execute()...

I found our implementation uses a *lot* more stack than the average
Java application. This may be a way to reduce that a bit. What about
it?

Bye,

Erik.




More information about the armedbear-devel mailing list