[#104169] [Ruby master Feature#17938] Keyword alternative for boolean positional arguments — matheusrichardt@...

Issue #17938 has been reported by matheusrich (Matheus Richard).

12 messages 2021/06/04

[#104213] [Ruby master Feature#17942] Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars — tyler@...

SXNzdWUgIzE3OTQyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IFR5bGVyUmljayAoVHlsZXIgUmljayku

6 messages 2021/06/09

[#104288] [Ruby master Bug#17992] Upstreaming the htmlentities gem into CGI#.(un)escape_html — alexandermomchilov@...

Issue #17992 has been reported by AMomchilov (Alexander Momchilov).

9 messages 2021/06/15

[#104338] [Ruby master Misc#17997] DevelopersMeeting20210715Japan — mame@...

Issue #17997 has been reported by mame (Yusuke Endoh).

10 messages 2021/06/17

[#104361] [Ruby master Bug#18000] have_library doesn't work when ruby is compiled with --disable-shared --disable-install-static-library — jean.boussier@...

Issue #18000 has been reported by byroot (Jean Boussier).

9 messages 2021/06/18

[#104381] [Ruby master Feature#18004] Add Async to the stdlib — shannonskipper@...

Issue #18004 has been reported by shan (Shannon Skipper).

9 messages 2021/06/22

[#104401] [Ruby master Feature#18007] Help developers of C extensions meet requirements in "doc/extension.rdoc" — mike.dalessio@...

Issue #18007 has been reported by mdalessio (Mike Dalessio).

16 messages 2021/06/25

[#104430] [Ruby master Bug#18011] `Method#parameters` is incorrect for forwarded arguments — josh.cheek@...

Issue #18011 has been reported by josh.cheek (Josh Cheek).

12 messages 2021/06/29

[ruby-core:104309] [Ruby master Bug#16840] Decrease in Hash#[]= performance with object keys

From: merch-redmine@...
Date: 2021-06-16 14:52:29 UTC
List: ruby-core #104309
Issue #16840 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

Apparently this case was optimized in Ruby 3.0.  Using the benchmark code p=
rovided:

```
$ for x in 25 26 27 30; do ruby$x -v; for y in 1 2 3; do ruby$x t/t51.rb; d=
one; done
ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-openbsd]
 10.040000   0.010000  10.050000 ( 10.045536)
  9.970000   0.010000   9.980000 (  9.995454)
 10.170000   0.000000  10.170000 ( 10.180147)
ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-openbsd]
  9.340000   0.000000   9.340000 (  9.326443)
  9.420000   0.010000   9.430000 (  9.425656)
  9.300000   0.020000   9.320000 (  9.327280)
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-openbsd]
 10.790000   0.020000  10.810000 ( 10.809778)
 10.840000   0.020000  10.860000 ( 10.866930)
 10.820000   0.010000  10.830000 ( 10.852136)
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-openbsd]
  4.780000   0.020000   4.800000 (  4.798934)
  4.760000   0.020000   4.780000 (  4.770590)
  4.720000   0.050000   4.770000 (  4.774958)
```

Possibly due to commit:5f6053824551aec947a1c53d08975595aca1e513, which chan=
ged from an else if chain to a switch, but I didn't confirm that.  Anyway, =
since it's now much faster than before, I think this can be closed.

----------------------------------------
Bug #16840: Decrease in Hash#[]=3D performance with object keys
https://bugs.ruby-lang.org/issues/16840#change-92531

* Author: ana06 (Ana Maria Martinez Gomez)
* Status: Closed
* Priority: Normal
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I was playing around with Ruby hashing and I have discovered something stra=
nge/surprising.

The file ``test.rb`` looks like:

```ruby

require 'benchmark'
$N =3D 100000

class Ana =

end

objects =3D Array.new($N) { Ana.new() }
hash =3D {}
puts Benchmark.measure { 100.times { objects.each { |obj| hash[obj] =3D tru=
e } }}
```

I executed ``test.rb`` with different Ruby versions and it takes longer wit=
h newer versions. There is 1.5 seconds difference between Ruby 2.5 and mast=
er. Is that expected? And if so, why? Those are the execution results:

```
> rbenv shell 2.5.0
> ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
> ruby test.rb
  2.236504   0.003546   2.240050 (  2.240256)
> ruby test.rb
  2.247041   0.003680   2.250721 (  2.250860)
> ruby test.rb
  2.276305   0.000351   2.276656 (  2.276829)
>=B7
> rbenv shell 2.6.2
> ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-linux]
> ruby test.rb
  2.579052   0.004181   2.583233 (  2.583541)
> ruby test.rb
  2.580179   0.000000   2.580179 (  2.580362)
> ruby test.rb
  2.646516   0.000441   2.646957 (  2.647398)
>=B7
> rbenv shell 2.7.1
> ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
> ruby test.rb
  2.915415   0.004209   2.919624 (  2.920206)
> ruby test.rb
  2.867767   0.007511   2.875278 (  2.875416)
> ruby test.rb
  2.877741   0.000410   2.878151 (  2.878431)
>=B7
> rbenv shell 2.8.0-dev
> ruby -v
ruby 2.8.0dev (2020-05-07T16:22:38Z master 7ded8fd29a) [x86_64-linux]
> ruby test.rb
  3.840961   0.007852   3.848813 (  3.849499)
> ruby test.rb
  3.748391   0.007833   3.756224 (  3.756520)
> ruby test.rb
  3.686487   0.001656   3.688143 (  3.688332)
```




-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next