Javaで利用できるMarkdownパーサーの速度を比較しました。
参考:Java の flexmark-java で Markdown をいじる
メンテが続いていそうな3つのライブラリについて比較します。
- commonmark-java : Atlassian製。CommonMarkの実装。CommonMarkとはMarkdownの標準仕様がないので共通仕様を定義しようという試みの仕様群らしい。
- flexmark-java : commonmark-javaをベースにして開発されているもの。一番開発が活発なように思える(2017年12月時点)。PDFも出力できるとか。
- markedj : GitBucketで使われている。最近コミット履歴が無いが、GitBucketが続く限り継続して開発されると思われる。
比較
4つのMarkdown、sample1〜4を用意しました。1〜3はネットで適当に拾ったサンプルで、4はただのテキストを1行だけ書いたものです。
結果は以下の通り。
markedj ----------- sample1 12.380207 ms sample2 20.927672 ms sample3 8.181507 ms sample4 0.254558 ms flexmark ----------- sample1 4.395711 ms sample2 9.726367 ms sample3 5.945249 ms sample4 0.191649 ms commonmark ----------- sample1 4.197779 ms sample2 8.765042 ms sample3 3.582374 ms sample4 0.061305 ms
使いやすさはどれもあんまり大差ない印象。実装されている機能はflexmarkが一番多いみたい。
余談
これはSashimiで採用するために計測しました。SashimiではデフォルトでMarkdownが有効であるような設定にする予定です。
いいね! 0