Skip to content

Conversation

@koron
Copy link
Member

@koron koron commented Dec 19, 2021

#997 をやってみた。

make html の代わりに make -j4 html2 みたいにして使う。


結果:

  • GHA上にて 220秒くらいだったものが130秒くらいに高速化した
  • 更新したjaxに対応するhtmlを個別にビルドできるようになった

残課題:

  • 一部ファイルのファイル名が異なるなどしてる

@koron koron self-assigned this Dec 19, 2021
@koron
Copy link
Member Author

koron commented Dec 27, 2021

いったんとりあえずで make -j4 html2 が GHA でどのくらいの時間かかるかを試してみます。

@koron
Copy link
Member Author

koron commented Dec 27, 2021

変更前は 3m37s だったものが https://github.com/vim-jp/vimdoc-ja-working/runs/4627429197
並列度4 (-j4) 変更後は 2m0s or 2m17s になった。

@koron
Copy link
Member Author

koron commented Dec 27, 2021

並列度6にしてみたけど 2m9s と大きな変化は見られなかった。
https://github.com/vim-jp/vimdoc-ja-working/runs/4640523907

あとは2にしてみる。
そもそも2コアらしいので。

@koron
Copy link
Member Author

koron commented Dec 27, 2021

並列度2で 2m8s だった。
https://github.com/vim-jp/vimdoc-ja-working/runs/4640559298

サンプル数が少ないのでなんともだが-j2 が実効的な上限と考えてよさそう。

とはいえ将来割り当てコア数が増えないとも限らないのと
特に実行時間が延びるというデメリットもなさそうなので
-j4 でくらいに設定してよさそうに思える。

@koron
Copy link
Member Author

koron commented Dec 27, 2021

テスト用ファイルは消します。

@koron koron changed the title generate html in parallel, but it's very slow generate html in parallel Dec 27, 2021
@koron
Copy link
Member Author

koron commented Jun 3, 2025

最近ふたたび試したところ以下のことがわかり、現実的な選択肢ではないとの結論に至った。

  • HTMLへの変換時にtagsファイルの読み込み(&パース)にとても時間がかかるため
  • 直列実行時は、読み込んだtagsファイルをキャッシュして再利用するので、1回で済む
  • 並列実行時は、各Vimインスタンスで個別に読み込み、並列度に応じてオーバヘッドが(とても)大きくなる

よってこのPRは取り下げます。

@koron koron closed this Jun 3, 2025
@koron koron deleted the parallel-build branch June 3, 2025 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants