From: Eric Wong Date: 2011-05-18T02:59:30+09:00 Subject: [ruby-core:36278] [Ruby 1.9 - Feature #3905] rb_clear_cache_by_class() called often during GC for non-blocking I/O Issue #3905 has been updated by Eric Wong. File full-ephemeral-class.diff added I think subclassing + cache broke some testcases with my updated patch: http://redmine.ruby-lang.org/issues/4289#note-5 The ephemeral class patch series is smaller and cleaner, it makes no user-visible changes. Somehow, I think I managed to upload the patches to #4289 incorrectly. I'm uploading a full diff for ephemeral-class since it's small. Also if you want to try git: # get official mirror git clone git://github.com/ruby/ruby.git cd ruby # add my repo and fetch git remote add bogomips git://bogomips.org/ruby git fetch bogomips # view diff of trunk to my ephemeral-class branch git diff origin/trunk bogomips/ephemeral-class # view patch series of trunk to my ephemeral-class branch git log -p origin/trunk..bogomips/ephemeral-class # export patch series of trunk to my ephemeral-class branch # (this will output filenames of mbox patches it makes) git format-patch origin/trunk..bogomips/ephemeral-class I also have a web viewer: http://bogomips.org/ruby.git?h=ephemeral-class ---------------------------------------- Feature #3905: rb_clear_cache_by_class() called often during GC for non-blocking I/O http://redmine.ruby-lang.org/issues/3905 Author: Eric Wong Status: Open Priority: Low Assignee: Category: core Target version: 1.9.x =begin This still causes performance problems with frequent EAGAIN compared to 1.9.1 While akr fixed extend to no longer clear cache with empty modules in r28813, the GC phase still scans and clears the cache when the extended object is collected. ref: [ruby-core:32507], [ruby-core:32508] A proposed patch to add memoizing of extended objects with IO::Wait{Read,Writ}able is attached. Comments/feedback appreciated. =end -- http://redmine.ruby-lang.org