Bug #8930

some benchmark programs are slow since r42822

Added by Narihiro Nakamura almost 2 years ago. Updated almost 2 years ago.

[ruby-core:57289]
Status:Closed
Priority:Normal
Assignee:Charlie Somerville
ruby -v:ruby 2.1.0dev (2013-09-04 trunk r42822) [x86_64-linux] Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN

Description

Hi.

I find some benchmark programs are slow since r42822.

% time ./miniruby -v benchmark/bm_vm3_clearmethodcache.rb
ruby 2.1.0dev (2013-09-04 trunk 42910) [x86_64-linux]
./miniruby -v benchmark/bm_vm3_clearmethodcache.rb 0.42s user 0.00s system 98% cpu 0.451 total

% time ./miniruby -v benchmark/bm_vm3_clearmethodcache.rb
ruby 2.1.0dev (2013-09-04 trunk r42822) [x86_64-linux]
./miniruby -v benchmark/bm_vm3_clearmethodcache.rb 0.48s user 0.01s system 98% cpu 0.495 total

In addition to the above:
* vm2_poly_method
* vm2_send
* so_object
* etc... (If you want to know all slow benchmark programs, please check this site http://www.narihiro.info/crubybenci/)

If this isn't intended, could you check it, charliesome or ko1?

Thanks

Associated revisions

Revision 43027
Added by Charlie Somerville almost 2 years ago

  • class.c (class_alloc): remove mc_tbl

  • gc.c (obj_free): ditto

  • internal.h (struct rb_classext_struct): ditto

  • method.h (rb_method_entry): remove ent param

  • vm_method.c: restore the global method cache. Per class cache tables
    turned out to be far too slow.

[Bug #8930]

Revision 43027
Added by Charlie Somerville almost 2 years ago

  • class.c (class_alloc): remove mc_tbl

  • gc.c (obj_free): ditto

  • internal.h (struct rb_classext_struct): ditto

  • method.h (rb_method_entry): remove ent param

  • vm_method.c: restore the global method cache. Per class cache tables
    turned out to be far too slow.

[Bug #8930]

History

#1 Updated by Charlie Somerville almost 2 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r43027.
Narihiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • class.c (class_alloc): remove mc_tbl

  • gc.c (obj_free): ditto

  • internal.h (struct rb_classext_struct): ditto

  • method.h (rb_method_entry): remove ent param

  • vm_method.c: restore the global method cache. Per class cache tables
    turned out to be far too slow.

[Bug #8930]

Also available in: Atom PDF