[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>

Hi.

18 messages 2012/01/05

[#41941] [ruby-trunk - Bug #5851][Open] make check fails when compiling with GCC 4.7 - *** longjmp causes uninitialized stack frame *** — Vit Ondruch <v.ondruch@...>

12 messages 2012/01/06

[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>

10 messages 2012/01/08

[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>

14 messages 2012/01/09

[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>

15 messages 2012/01/10

[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>

12 messages 2012/01/16

[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>

18 messages 2012/01/17

[ruby-core:42258] [ruby-trunk - Bug #5946][Open] Remove too early and unnecessary calls to heaps_increment

From: Yura Sokolov <funny.falcon@...>
Date: 2012-01-30 04:12:21 UTC
List: ruby-core #42258
Issue #5946 has been reported by Yura Sokolov.

----------------------------------------
Bug #5946: Remove too early and unnecessary calls to heaps_increment
https://bugs.ruby-lang.org/issues/5946

Author: Yura Sokolov
Status: Open
Priority: Normal
Assignee: Narihiro Nakamura
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-01-29 trunk 34394) [i686-linux]


Too early call in `lazy_sweep` slows down sweep phase, cause while loop breaks on `if (has_free_object) { ... return TRUE;}` .

Heap expand in `gc_clear_mark_on_sweep_slots` unnecessary expands number of heaps, which slows down iterations in `rb_objspace_call_finalizer`, and `gc_marks` (cause we often need to binary search heap for pointer).

Testing suit: https://gist.github.com/1702301

Before:

    $ sh siege.sh
    Transaction rate:	      114.71 trans/sec
    Transaction rate:	      117.84 trans/sec
    Transaction rate:	      121.62 trans/sec
    $ sh siege.sh
    Transaction rate:	      118.72 trans/sec
    Transaction rate:	      120.32 trans/sec
    Transaction rate:	      121.12 trans/sec

After:

    $ sh siege.sh
    Transaction rate:	      121.62 trans/sec
    Transaction rate:	      122.12 trans/sec
    Transaction rate:	      123.12 trans/sec
    $ sh siege.sh
    Transaction rate:	      123.25 trans/sec
    Transaction rate:	      121.94 trans/sec
    Transaction rate:	      123.52 trans/sec

https://github.com/ruby/ruby/pull/89


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

In This Thread

Prev Next