From: SASADA Koichi <ko1@atdot.net>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:72467] Re: Ruby 2.3.0-preview2 Released
Date: Thu, 24 Dec 2015 16:16:54 +0900 [thread overview]
Message-ID: <567B9BE6.9030708@atdot.net> (raw)
In-Reply-To: <20151223031222.GA5009@dcvr.yhbt.net>
Thank you for your summary.
I added entries in NEWS (r53268).
For release announcement like that
https://www.ruby-lang.org/en/news/2015/12/11/ruby-2-3-0-preview2-released/
I'm afraid that your summary is too long.
So that I tried to summarize typical achievements.
<2.3.0preview2>
Ruby 2.3 includes many performance tuning fixes. For example, optimizing
Proc#call, reconsidering method entry data structure, introducing new
table data structure, machine code level tuning for object allocation
and method calling code, and many other optimizations.
</2.3.0preview2>
<2.3.0>
Ruby 2.3 includes many performance tuning fixes. For example, optimizing
Proc#call, reconsidering method entry data structure, introducing new
table data structure, machine code level tuning for object allocation
and method calling code, smarter instance variable data structure,
Socket and I/O allow to use "exception:" keywords for high-performance
non-blocking I/O and so on. Check NEWS (Implementation improvements
section) for details.
</2.3.0>
Corrections are welcome.
(Proc#call is too trivial?)
https://github.com/ruby/www.ruby-lang.org/pull/1250
is prepared announcement by naruse-san.
On 2015/12/23 12:12, Eric Wong wrote:
> OK. I will try (maybe Zachary and others can help edit)...
>
> Case dispatch is now optimized for all special constant literals
> including nil, true, and false. Previously, only literal strings,
> symbols, integers and floats compiled to optimized case dispatch.
> https://bugs.ruby-lang.org/issues/11769
> (ed. I'm really not noticing this)
>
> Instance variables on non-pure Ruby classes (T_DATA, T_FILE,
> etc..) is less expensive to store than before.
> https://bugs.ruby-lang.org/issues/11170
>
> All accesses to members of big Struct objects are performed in
> constant-time. Previously, Struct elements beyond the first 10
> 10 elements used a linear scan.
> https://bugs.ruby-lang.org/issues/10585
>
> Fiddle::Function#call releases the GVL, allowing parallel execution
> when calling 3rd-party libraries. This may expose threading bugs
> in existing code using Fiddle, but Fiddle usage is currently uncommon.
> https://bugs.ruby-lang.org/issues/11607
>
> The Set class got several speedps: r52591 and
> https://bugs.ruby-lang.org/issues/10754
>
>
> == Socket and I/O related changes:
>
> All non-blocking I/O (including socket) methods allow
> `exception: false' to suppress expensive and noisy exceptions
> in common usage:
> https://bugs.ruby-lang.org/issues/10532
> https://bugs.ruby-lang.org/issues/11229
>
> Furthermore, calling overhead of most of these keyword-using I/O
> methods is reduced by avoiding the inefficient C API to parse keywords:
> https://bugs.ruby-lang.org/issues/11339
>
> Finally, the standard library is updated to use the improved
> exception-free non-blocking I/O. This has the additional
> benefit of quieter $DEBUG output in addition to reducing expensive
> exceptions.
> https://bugs.ruby-lang.org/issues/11044
>
> Additionally, the Socket#recv* methods allow an optional
> destination buffer to reduce GC pressure, based on the
> existing behavior of IO#read* methods.
> https://bugs.ruby-lang.org/issues/11242
>
>
>
> (Linux-only) waiting on a single FD anywhere in the stdlib no longer
> uses select(2), making it immune to slowdowns with high-numbered FDs
> https://bugs.ruby-lang.org/issues/11081
> https://bugs.ruby-lang.org/issues/11377
> (probably not worth mentioning since it's Linux-only)
>
> Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
>
--
// SASADA Koichi at atdot dot net
next prev parent reply other threads:[~2015-12-24 6:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-11 1:40 [ruby-core:72045] Ruby 2.3.0-preview2 Released NARUSE, Yui
2015-12-11 1:48 ` [ruby-core:72047] " SASADA Koichi
2015-12-11 9:06 ` [ruby-core:72054] " Eric Wong
2015-12-22 13:53 ` [ruby-core:72436] " SASADA Koichi
2015-12-22 20:05 ` [ruby-core:72440] " Eric Wong
2015-12-23 1:47 ` [ruby-core:72448] " SASADA Koichi
2015-12-23 3:12 ` [ruby-core:72450] " Eric Wong
2015-12-24 7:16 ` SASADA Koichi [this message]
2015-12-24 8:52 ` [ruby-core:72468] " Eric Wong
2015-12-18 4:13 ` [ruby-core:72336] " Joseph Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.ruby-lang.org/en/community/mailing-lists/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=567B9BE6.9030708@atdot.net \
--to=ruby-core@ruby-lang.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).