Skip to content
This repository has been archived by the owner on Apr 13, 2020. It is now read-only.

Crystalを計測するためのあれこれ #13

Merged
merged 4 commits into from
Mar 18, 2017
Merged

Conversation

at-grandpa
Copy link
Contributor

@at-grandpa at-grandpa commented Mar 16, 2017

#7

ギリギリですみません。書きましたmm

当初はcliツールについて書くと言っていましたが、間に合わなかったので計測周りについて書きました。

md2inaoについてはまだ詳細を追えていないので、md2inaoに対する修正が入るかもしれません。もし時間がない&問題がないようでしたら、このまま入稿でも構いません。

docker attach $(CONTAINER_NAME)
```

これらをHostマシンの作業ディレクトリに用意してbuildとrunを実行すれば、最新のCrystalを使用できる環境ができあがります。また、Hostマシンのディレクトリとコンテナ内のディレクトリがマウントされているので、実行はコンテナ内で、コード編集はHostマシンで行うことができます。buildしてコンテナに入ってみましょう。
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hostマシンのディレクトリとコンテナ内のディレクトリがマウントされているので

「マウントする」といった場合マウントする側とマウントされる対象があって,「○○と△△をマウントする」ではなく「○○を△△にマウントする」という形で使われることが多いです。

ホスト側のディレクトリがコンテナ内から見えるのであれば「Hostマシンのディレクトリがコンテナ内にマウントされている」,コンテナ内のディレクトリがホスト側から見えるのであれば「コンテナ内のディレクトリがホストマシン側にマウントされている」くらいの表現になるような気がします。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!後ほど修正しますmm

shorter sleep 307.36 ( 3.25ms) (±10.97%) fastest
```

結果がほぼ変わっていません。これは、実際には最適化されていますが、`Benchmark#ips`の結果は相対評価なので出力される結果はさほど変わらない、ということです。`Benchmark#ips`は純粋に「コードの処理速度の相対評価」を調べたい時に使うと良いでしょう。
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

実際には最適化されていますが、Benchmark#ipsの結果は相対評価なので出力される結果はさほど変わらない、

Benchimark.ipsの結果に出てくる数字は最初が平均ips,二つ目の数字が平均ipsに対する標準偏差の比なので,この辺りの数字が変わらないということは,実際の処理も早くなっていないのではないでしょうか。
(3.33x の部分が各結果間の比で,ここが相対評価)

なのとなく,ベンチマーク対象がsleepだけなので,最適化のしようがない事例のような気がします。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

あああ、なるほど。理解不足でした。

例を変えるなどして修正してみますねmm

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

【オフトピ】
あら?
公式 APIリファレンスの記述だと平均ipsのすぐ後ろが標準偏差の比になってますが,現バージョンの実行結果だとその間に1イテレーション当たりの平均処理時間が追加されてますね。
ドキュメントの修正漏れかしら?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

お、ほんとですね。

crystal-lang/crystal#3483

このPRの時のドキュメント修正漏れみたいです。PR出してみますー

@at-grandpa
Copy link
Contributor Author

at-grandpa commented Mar 16, 2017

TODO

  • 頂いた指摘の修正
  • md2inao向けの修正
    • コードブロック装飾
    • コマンドブロック装飾
    • リンク部分
    • 各種脚注
    • コードブロック文字数制限修正(73文字で良い)
  • コードをgithubに公開する

@at-grandpa at-grandpa force-pushed the at_grandpa branch 4 times, most recently from af75200 to 583f202 Compare March 18, 2017 17:26
@at-grandpa
Copy link
Contributor Author

修正が終わったのでmergeします。

md2inaoのWeb版では、WEB+DB PRESS用の文字数に引っかかりますが、書籍版の文字数はクリアしています。

https://github.com/naoya/md2inao/blob/master/lib/Text/Md2Inao.pm#L25-L33

# リストの文字数上限
# WEB+DB PRESSの場合、リストは、1行63桁(文字)まで
# 書籍の場合、リストは1行69桁(文字)まで
has max_list_length => ( is => 'rw', isa => 'Num' );

# 本文埋め込みリストの文字数上限
# WEB+DB PRESSの場合、本文リストは1行55桁(文字)まで
# 書籍の場合、本文リストは1行73桁(文字)まで
has max_inline_list_length => ( is => 'rw', isa => 'Num' );

@at-grandpa at-grandpa merged commit 390fe4e into master Mar 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants