[ruby-core:65102] [ruby-trunk - Feature #10256] [Open] [PATCH] reduce rb_call_info_t 96 => 88 bytes on 64-bit

From: normalperson@...
Date: 2014-09-18 06:45:01 UTC
List: ruby-core #65102
Issue #10256 has been reported by Eric Wong.

----------------------------------------
Feature #10256: [PATCH] reduce rb_call_info_t 96 => 88 bytes on 64-bit
https://bugs.ruby-lang.org/issues/10256

* Author: Eric Wong
* Status: Open
* Priority: Normal
* Assignee: Koichi Sasada
* Category: core
* Target version: current: 2.2.0
----------------------------------------
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--------------------------------
0001-rb_call_info_t-reduce-from-96-88-bytes-on-64-bit.patch (10.5 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next