😺

novel-writerでMarkdownファイルの処理負荷が爆発した

2023/06/24に公開

概要

  • VSCodeにnovel-writerの拡張機能を入れていた。
  • Reactのプロジェクトを新規作成した。
  • Markdownファイルの編集(特に改行)が異常に重くなった。
  • novel-writerを無効化したら解決した。

事案

create-react-appを用いてReactプロジェクトを新規作成し、README.mdファイルを編集しようとしたところ、VSCodeの動作が異常に重くなり、Enterキーを押してから改行が反映されるまでに数秒かかる状態となっていた。
はじめはmarkdown preview enhancedの仕業かと疑って無効化したが、改善は見られなかった。
タスクマネージャーを監視したところ、rust-analizerの仕業でもなかった。
そこで、ふと思い立ってnovel-writerを無効化したところ、mdファイルをスムーズに編集できるようになった。

原因

novel-writerには、gitの差分を利用して、その日のうちにどれだけ文字を編集したか(\simeqどれだけ進捗を生んだか)を可視化する機能がある。
この機能に、Reactプロジェクトを新規作成したときに発生した膨大なモジュールファイルが捕捉されてしまい、1日で200000文字以上も編集したことになっていた。
それによってアルゴリズムの計算量が爆発し、VSCodeの動作に支障が出ていたと考えられる。

推測

実際に小説を書く場合は1日にこれほどの文字数を扱うことがないため、見逃されていたバグ(仕様)の可能性がある。

Discussion