[#108771] [Ruby master Bug#18816] Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor) — "brodock (Gabriel Mazetto)" <noreply@...>

Issue #18816 has been reported by brodock (Gabriel Mazetto).

8 messages 2022/06/05

[#108802] [Ruby master Feature#18821] Expose Pattern Matching interfaces in core classes — "baweaver (Brandon Weaver)" <noreply@...>

Issue #18821 has been reported by baweaver (Brandon Weaver).

9 messages 2022/06/08

[#108822] [Ruby master Feature#18822] Ruby lack a proper method to percent-encode strings for URIs (RFC 3986) — "byroot (Jean Boussier)" <noreply@...>

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

18 messages 2022/06/09

[#108937] [Ruby master Bug#18832] Suspicious superclass mismatch — "fxn (Xavier Noria)" <noreply@...>

Issue #18832 has been reported by fxn (Xavier Noria).

16 messages 2022/06/15

[#108976] [Ruby master Misc#18836] DevMeeting-2022-07-21 — "mame (Yusuke Endoh)" <noreply@...>

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

12 messages 2022/06/17

[#109043] [Ruby master Bug#18876] OpenSSL is not available with `--with-openssl-dir` — "Gloomy_meng (Gloomy Meng)" <noreply@...>

Issue #18876 has been reported by Gloomy_meng (Gloomy Meng).

18 messages 2022/06/23

[#109052] [Ruby master Bug#18878] parse.y: Foo::Bar {} is inconsistently rejected — "qnighy (Masaki Hara)" <noreply@...>

Issue #18878 has been reported by qnighy (Masaki Hara).

9 messages 2022/06/26

[#109055] [Ruby master Bug#18881] IO#read_nonblock raises IOError when called following buffered character IO — "javanthropus (Jeremy Bopp)" <noreply@...>

Issue #18881 has been reported by javanthropus (Jeremy Bopp).

9 messages 2022/06/26

[#109063] [Ruby master Bug#18882] File.read cuts off a text file with special characters when reading it on MS Windows — magynhard <noreply@...>

Issue #18882 has been reported by magynhard (Matth辰us Johannes Beyrle).

15 messages 2022/06/27

[#109081] [Ruby master Feature#18885] Long lived fork advisory API (potential Copy on Write optimizations) — "byroot (Jean Boussier)" <noreply@...>

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

23 messages 2022/06/28

[#109083] [Ruby master Bug#18886] Struct aref and aset don't trigger any tracepoints. — "ioquatix (Samuel Williams)" <noreply@...>

Issue #18886 has been reported by ioquatix (Samuel Williams).

8 messages 2022/06/29

[#109095] [Ruby master Misc#18888] Migrate ruby-lang.org mail services to Google Domains and Google Workspace — "shugo (Shugo Maeda)" <noreply@...>

Issue #18888 has been reported by shugo (Shugo Maeda).

16 messages 2022/06/30

[ruby-core:108969] [Ruby master Misc#18834] Significant change in loop speeds (regressing using while loop on ARM chips)

From: "alanwu (Alan Wu)" <noreply@...>
Date: 2022-06-16 22:50:00 UTC
List: ruby-core #108969
Issue #18834 has been updated by alanwu (Alan Wu).


Interesting! Can you post the output of:

    $ ruby -ve 'pp RbConfig::CONFIG, RubyVM::OPTS'

For your ARM build of Ruby? I suspect the performance difference
could be explained by compiler differences.

----------------------------------------
Misc #18834: Significant change in loop speeds (regressing using while loop on ARM chips)
https://bugs.ruby-lang.org/issues/18834#change-98070

* Author: tarellel (Brandon Hicks)
* Status: Open
* Priority: Normal
----------------------------------------

I was benchmarking some code and one of the benchmarks I came across was <a href="https://github.com/fastruby/fast-ruby/blob/master/code/enumerable/each_with_index-vs-while-loop.rb">fast-ruby's</a> while vs each_with_index. I ran these test multiple times and got very similar results.

Both of these machines benchmarks were ran with ruby v3.1.2.


Intel - i9/32gb Ram (I also ran this on a linux VM or similar specs and got similar results)
ARM - AppleSilicon/32gb Ram


The reason I bring this up, is because most people develop on a Mac and now more than likely on AppleSilicon. But once deployed on a VM or container it's more than likely running on an intel based architecture. I'm kind of curious why there is such a massive change in the loop speeds between the two architectures such as `while` being 31% slower on ARM but also at the same time `each_with_index` is 42% faster.


If someone develops their code on their ARM devises and using the faster of the methods. Once deployed it may run significantly slower than expected because of the architecture speed differences. 



``` shell
# Intel
Warming up --------------------------------------
          While Loop    37.108k i/100ms
     each_with_index    15.900k i/100ms
Calculating -------------------------------------
          While Loop    390.930k (賊 2.3%) i/s -      1.967M in   5.033609s
     each_with_index    158.754k (賊 1.7%) i/s -    795.000k in   5.009286s

Comparison:
          While Loop:   390930.1 i/s
     each_with_index:   158753.7 i/s - 2.46x  (賊 0.00) slower

# ARM
Warming up --------------------------------------
          While Loop    26.594k i/100ms
     each_with_index    27.316k i/100ms
Calculating -------------------------------------
          While Loop    268.372k (賊 0.1%) i/s -      1.356M in   5.053798s
     each_with_index    273.584k (賊 0.2%) i/s -      1.393M in   5.092110s

Comparison:
     each_with_index:   273584.4 i/s
          While Loop:   268371.7 i/s - 1.02x  (賊 0.00) slower
```




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

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

In This Thread