5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ZIOのベンチマークを実行してみた

Last updated at Posted at 2020-09-03

はじめに

みなさん、ZIO 使ってますか? 僕は使ってないです。(即堕ち)

普段は Cats Effect を使っているんですが、他の Functional Effect ライブラリも気になっていました。特に ZIO が最近 1.0 がリリースされたということもあって、ちょこちょことドキュメントを読んだりしています。んで、ZIO のサイトを見ていて気付きました。
image.png
Scala の Future より 100 倍速い!? ホントかよ!?

と思いつつも、

「あれ…そういえば Cats Effect も特にパフォーマンスとか気にせずに使ってるなぁ、便利だし…」

と。途端にパフォーマンスが気になり始めてきたんですが、そこはさすが ZIO、ベンチマークもしっかり整備されていました。ただ、実行結果がググっても見つからなかったので、今回自分で実行してまとめてみます。

実行環境

  • AWS EC2 c5.large
  • OpenJDK 11 (Corretto)
  • Scala 2.13.1
  • ZIO 1.0.1+32-54c3d23e+20200902-2114-SNAPSHOT
sbt> ++ 2.13.1
sbt> benchmarks/jmh:run -jvmArgs "-Xss128m -Xmx2g" -f 1 -o result.txt -rff result.csv -wi 3 -i 3 -t 1 .*

結果

他の Functional Effect ライブラリと比較しているベンチマークだけ抜粋して載せています。

ArrayFill (source)

image.png

BubbleSort (source)

image.png

IODeepAttempt (source)

image.png

IODeepFlatMap (source)

image.png

IODeepLeftBind (source)

image.png

IOEmptyRace (source)

image.png

IOForkInterrupt (source)

image.png

IOLeftBind (source)

image.png

IOMap (source)

image.png

IONarrowFlatMap (source)

image.png

IOShallowAttempt (source)

image.png

ParSequence (source)

image.png

ParallelMergeSort (source)

image.png

QueueBackPressure (source)

image.png

QueueParallel (source)

image.png

QueueSequental (source)

image.png

Stream (source)

image.png

CSVStream (source)

image.png

その他

すべてのベンチマーク結果はこちらのスプシにあります。

最後に

一つ一つ所感のようなものを書こうかと思っていたのですが、結果をまとめただけで力尽きました。
そこは各自、このデータをライブラリ選定の材料にしてもらえれば幸いです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?