2019-11-01_Mkdocsのビルドに時間がかかる
このページで分かること
- Mkdocsのビルドが遅いときの対処法の参考情報
個人的に日記を書いており、このサイトと同じでMkdocsで整形しています。先日まであまり気にしていなかったのですがこのビルドに1分以上かかっており、このサイトと比べるとビルドに時間がかかっていることがわかりました。
簡単に原因を調べてみましたのでメモしておきます。
環境
- OS: fedora30
- ミドル:
- mkdocs 1.0.4
- Python 3.6.0
- pip 9.0.1
結論として
結論としては、 ビルド対象のファイル数 に依存することが分かりました。
一番影響があるのがmkdocs server
コマンドでリアルタイムに編集しながら確認する際に、いちいちビルドが入るのでそのたびにページの描画に時間がかかります。
なお実際にビルドを実施した仮想環境のCPU使用率が100%に張り付いており、割当コア数を増やしたりしてもみましたが、mkdocsはシングルコアでビルドするっぽいので改善には至りませんでした。ファイル数を減らすのが妥当のようです。
調査結果の詳細
ビルド対象のファイルは日別作成されたmdファイルとなります。320ファイル程たまっており、1ファイルの文量は大したことありません。多くても7KBちょっとです。
測定はtimeコマンドで実施しています。
1 |
|
パターンA: 320ファイルをビルド
通常時のビルド時間です。1分13秒かかっていることが分かります。
1 2 3 |
|
パターンB: ファイル数を増やしての測定
320ファイルをコピーして倍の640ファイルでビルド時間を測定。 ビルド時間は倍以上の3分47秒に増えてしまいました……
1 2 3 |
|
パターンB: ファイル数を減らしての測定
日次ファイルを結合して月次ファイルにしファイル数を12ファイルにしてビルド時間を測定。単純に結合しただけなので、ファイルの内容に差異はなく、1ファイルの容量は増えている。
1分13秒が17秒まで短縮された。
mkdocsがビルド時に複数ファイルを並列処理しているか分からないが、ビルド対象ファイル数でビルド時間は大幅に変わるようだ。
1 2 3 |
|