-
Notifications
You must be signed in to change notification settings - Fork 65
Open
Labels
Description
現在deployのGenerate new documentがボトルネックになっている。
例えば このビルド では全体で 3m7s のうち
実に 2m52s (約92%) がGenerate new document に費やされている。
Generate new document は make html を実行しており、
Lines 12 to 16 in 7ebdd16
html: | |
rm -rf target/html | |
mkdir -p target/html/doc | |
cp doc/*.jax vim_faq/*.jax target/html/doc | |
-cd target/html/doc ; vim -eu ../../../tools/buildhtml.vim -c "qall!" |
これは tools/buildhtml.vim で行われてる。
buildhtml.vim は MakeHtmlAll で全 *.jax を *.html に変換してから、各ファイルにJekyll用のYAMLヘッダーを付けている。
ファイルが多いのに加えてこの部分が順次直列に変化するために時間がかかっていると推測される。
よってこの部分をファイル単位で並列化できれば高速化が期待できる。
解決策案
MakeHmtlAllはファイルを列挙して MakeHtml を呼び出すようになっている。
なのでラッパースクリプトとして、
引数でファイルを1つ受け取ってMakeHtmlを実行しYAMLヘッダーを付与する
スクリプトを作れば、
makeファイルによる呼び出し側から並列度をコントロールできるようになると考えられる。
Vim内で並列化することはほぼ不可能(terminalとか駆使すればできるかもだけど)なので
やらないほうが得策。
残課題
- 一部ファイルのファイル名が異なる (mandatory)
- Makefileの依存関係見直し (mandatory)
-
2html.vimのボトルネックの把握 (optional)手を入れるほどではなかった -
実行時のプログレス表示、検討・改善 (optional)めんどいのでやらない
tsuyoshicho