From: funny.falcon@... Date: 2017-01-20T17:11:16+00:00 Subject: [ruby-core:79202] [Ruby trunk Feature#12180] switch id_table.c variant 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: