Actions
Feature #10256
closed[PATCH] reduce rb_call_info_t 96 => 88 bytes on 64-bit
Description
Instead of using an 8-byte function pointer, use a small index
(may be <=1 byte, but currently 2 bytes for alignment) as array offset
and pack it next to flags (where only 9 bits are used).
Unfortunately, we cannot rely on C99, yet, so maintenance might be
a little uglier (but I think our test suite is good enough to cover).
Every word saved on rb_call_info_t seems to result in over 50K in startup
savings ("valgrind ruby -e exit").
before:
total heap usage: 49,111 allocs, 19,776 frees, 8,444,054 bytes allocated
after:
total heap usage: 49,057 allocs, 19,721 frees, 8,390,916 bytes allocated
Performance does not seem bad on Xeon E3-1230 v3 (8MB cache),
(minor +/- across the board):
http://80x24.org/bmlog-20140918-035740.9493
Files
Actions
Like0
Like0Like0Like0Like0