[#50752] [質問] rescue節で、他パッケージのメッセージ出力を抑止したい — Takahiro Yamaguchi <yamataka@...08.itscom.net>

10 messages 2019/05/02

[ruby-list:50772] Re: 1.next は 1.succ よりなぜ遅い?

From: Yusuke Endoh <mame@...>
Date: 2019-05-31 00:26:27 UTC
List: ruby-list #50772
こんにちは、遠藤といいます。

> CSV を速くするため,loop の代わりに while を使う,

まめ知識ですが、MJIT が有効になると、特定条件下で while より loop のほうが早くなるケースもあります。
現時点では相当限定的なので、多くのケースでは while のほうが速いままだと思いますが、
将来どんな最適化が入ってどう性能特性が変わるかは、予見しがたいです。
なので、やっぱりそういうことは考えないほうが良いと思います。

↓遠藤の環境では loop(というか Integer#times)のほうが速くなったケース(ruby --jit で実行)。

```
def do_some_task
end

def foo_while
  count = 0
  while count < 10
    n = 0
    while n < 1_000_000
      do_some_task
      do_some_task
      do_some_task
      n += 1
    end

    count += 1
  end
end

def foo_times
  count = 0
  while count < 10
    1_000_000.times do
      do_some_task
      do_some_task
      do_some_task
    end

    count += 1
  end
end

t = Time.now
foo_while
p Time.now - t #=> 0.63 秒

t = Time.now
foo_times
p Time.now - t #=> 0.73 秒
```


2019年5月31日(金) 7:46 5.5 <5.5@moji.gr.jp>:

> On 2019/05/30 20:13, Koichi Sasada wrote:
> > 正直、そこが効くアプリは、多分ほとんどないと思うので、あんまり気にしなく
> > て良いんじゃないかと思います。速くなったららっきーと思って下さい。
>
> きっとそうなのでしょうね。
>
> ただ,先日,CSV を速くするため,loop の代わりに while を使う,
> という話
> https://slide.rabbit-shocker.org/authors/kou/rubykaigi-2019/
> を目にして「ソコまでやるんかー!!!」と驚いたところだったの
> で,それならメソッド名の選択に気を配ったほうがいい場合もある
> のだなろうな,と思った次第です。
>
> --
> 5.5@moji.gr.jp
>

In This Thread