Project

General

Profile

Actions

Feature #10256

closed

[PATCH] reduce rb_call_info_t 96 => 88 bytes on 64-bit

Added by normalperson (Eric Wong) over 9 years ago. Updated over 6 years ago.

Status:
Rejected
Target version:
-
[ruby-core:65102]

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

Also available in: Atom PDF

Like0
Like0Like0Like0Like0