From: Charles Nutter Date: 2011-06-08T16:51:08+09:00 Subject: [ruby-core:36834] [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 Charles Nutter. What's the effect of the EPHEMERAL flag if someone takes an object with an attached ephemeral class and starts making singleton changes to that object? Do those changes properly flush cache? If this flag only helps cases where you're extending a module with no methods, it seems extremely niche...why don't we just reverse course on extending these modules at all? ---------------------------------------- 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