[#66678] [ruby-trunk - Feature #10481] Add "if" and "unless" clauses to rescue statements — alex@...
Issue #10481 has been updated by Alex Boyd.
3 messages
2014/12/04
[#66762] Re: [ruby-changes:36667] normal:r48748 (trunk): struct: avoid all O(n) behavior on access — Tanaka Akira <akr@...>
2014-12-10 0:44 GMT+09:00 normal <ko1@atdot.net>:
3 messages
2014/12/10
[#66851] [ruby-trunk - Feature #10585] struct: speedup struct.attr = v for first 10 attributes and struct[:attr] for big structs — funny.falcon@...
Issue #10585 has been updated by Yura Sokolov.
3 messages
2014/12/15
[#67126] Ruby 2.2.0 Released — "NARUSE, Yui" <naruse@...>
We are pleased to announce the release of Ruby 2.2.0.
8 messages
2014/12/25
[#67128] Re: Ruby 2.2.0 Released
— Rodrigo Rosenfeld Rosas <rr.rosas@...>
2014/12/25
I can't install it in any of our Ubuntu servers using rbenv:
[#67129] Re: Ruby 2.2.0 Released
— SHIBATA Hiroshi <shibata.hiroshi@...>
2014/12/25
> I can't install it in any of our Ubuntu servers using rbenv:
[ruby-core:66793] [ruby-trunk - Feature #10585] struct: speedup struct.attr = v for first 10 attributes and struct[:attr] for big structs
From:
normalperson@...
Date:
2014-12-11 23:08:18 UTC
List:
ruby-core #66793
Issue #10585 has been updated by Eric Wong. benchmark results on r48774 (Xeon E3-v1230 v3): Speedup ratio: compare with the result of `trunk' (greater is better) name built loop_whileloop2 1.001 vm2_struct_big_aref_hi* 1.006 vm2_struct_big_aref_lo* 1.000 vm2_struct_big_aset* 1.005 vm2_struct_big_href_hi* 1.466 vm2_struct_big_href_lo* 1.213 vm2_struct_big_hset* 1.305 vm2_struct_small_aref* 1.010 vm2_struct_small_aset* 2.604 vm2_struct_small_href* 1.215 vm2_struct_small_hset* 1.215 Comments on patches: * [1/4] struct.c: speedup struct.name = v for small structs I agree this makes a noticeable improvement, but I am also not in favor of more specialized C code. One day, I hope we can remove the current optimizations for <10 getters with JIT. * [2/4] struct.c: cache member definition in a subclass I think NIL_P(var) is preferred over "var != Qnil". Overall, I think this patch makes sense on its own. * [3/4] benchmark struct[:name] Good :) * [4/4] struct.c: speedup for big structs Oops, I totally missed some of these in [Feature #10575] I'm unsure about having a custom hash table in there is best, perhaps it can be extracted and reused for other things (fstring). ---------------------------------------- Feature #10585: struct: speedup struct.attr = v for first 10 attributes and struct[:attr] for big structs https://bugs.ruby-lang.org/issues/10585#change-50367 * Author: Yura Sokolov * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 ---------------------------------------- 0001 - Define optimized setters for first 10 attributes. 0002 - Cache members definition in an subclasses - it is safe cause it could be modified/overloaded. And use `rb_attr_get` to lookup definition - it is safe cause result is checked later and `Qnil` is treated as error. 0003,0004 - Use custom hash structure (on top of Array) to lookup members index in a big structure. Well, I doubt that big structures are useful, so I will not grieve if 0004 is not accepted. ---Files-------------------------------- 0001-struct.c-speedup-struct.name-v-for-small-structs.patch (2.33 KB) 0002-struct.c-cache-member-definition-in-a-subclass.patch (1.09 KB) 0003-benchmark-struct-name.patch (2.42 KB) 0004-struct.c-speedup-for-big-structs.patch (5.47 KB) -- https://bugs.ruby-lang.org/