Issue #12180 has been updated by Yura Sokolov.


Oh, to reduce hash size either max serial_id should be 0x7fffffff instead of 0xffffffff
(cause 1 bit is stolen for collision check),
or collision bit removed (it will increase time for "miss" and decrease for "hit").

----------------------------------------
Feature #12180: switch id_table.c variant
https://bugs.ruby-lang.org/issues/12180#change-62626

* Author: Yura Sokolov
* Status: Assigned
* Priority: Normal
* Assignee: Koichi Sasada
* Target version: 
----------------------------------------
Currently used variant is 'binary search in small table + hash for large tables'.
But for contemporary CPU it may be better to do linear scan for small tables.

It is already implemented in `id_table.c` and numbered as 35.

Tested with simple Redmine installation on Intel Haswell i7-4770 CPU @ 3.40GHz

- trunk:
`Requests per second:    27.79 [#/sec] (mean)`
- with switched implementation:
`Requests per second:    28.87 [#/sec] (mean)`

---Files--------------------------------
0001-id_table.c-switch-id_table-variant.patch (767 Bytes)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>