Wow - fantastic!
@mflatt one thing I see is that PLT_LINKLET_TIMES
reports substantially more calls to instantiate-linklet
for pycket than for racketcs (the numbers for racket are always lower). Unfortunately it’s hard to tell what linklets are instantiated for, so it might be nice to add something to the API that could give more information there
I’m puzzled by the instantiate
numbers. They don’t look right – much smaller than the instantiate
line with PLT_EXPANDER_TIMES
, for example.
And it should be bigger, because PLT_EXPANDER_TIMES
doesn’t cover all instantiate-linklet
calls.
Oops, I was confusing msecs and counts. I’m seeing everything these same, as it should be in something like -cl racket/base
, where the number of instantiations should not depend on the linklet implementation. Depending on the program, module caching could be relevant. What example gives you different counts?
@mflatt something like pycket -l racket/base
I don’t think caching would be relevant. What number do you get instead of 282?
302
and it should be 1 higher for pycket because we instantiate a linklet with the fasl code as well
and maybe 1 more depending on whether racketcs counts the expander instantiation
Does PLT_EXPANDER_TIMES
report 57 for the subset of instantiations that it counts?
for some reason PLT_EXPANDER_TIMES
doesn’t report anything on pycket
which I think points to a bug somewhere
@mflatt now that environment variables work correctly, PLT_EXPANDER_TIMES
reports 55
the difference is likely not loading configure-runtime
submodules
That makes send. I still don’t have any ideas about the 20 instantiations from the full count, but maybe changing instantiate-linklet
in two implementations to print linklet/instance names will give a hint at how they differ.