[#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:108967] [Ruby master Misc#18834] Significant change in loop speeds (regressing in while loop on ARM chips)
From:
"tarellel (Brandon Hicks)" <noreply@...>
Date:
2022-06-16 22:21:39 UTC
List:
ruby-core #108967
Issue #18834 has been reported by tarellel (Brandon Hicks).
----------------------------------------
Misc #18834: Significant change in loop speeds (regressing in while loop on ARM chips)
https://bugs.ruby-lang.org/issues/18834
* 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>