エディタが長くなるにつれて、エディタが使えなくなるほど遅くなります

Discourse を使用しているフォーラムにこの投稿をしました。

デモフォーラムでもこの問題を再現できました。

その投稿には、コピー&ペーストされたコードの長い抜粋が含まれています。より正確には、コードそのものではなく、コマンドを実行した結果の出力です。これは、ソフトウェアやコンピュータ関連のサポートフォーラムではかなり一般的なユースケースです。

投稿を作成しているとき、長いテキストブロック(それほど長くなく、数百行程度)を貼り付けた後、入力するだけでエディタの動作がますます遅くなりました。入力した文字が画面に表示されるまでに時間がかかりました(ライブプレビューではなく、入力しているテキストエリアそのものです)。実質的に使用不能になります。

いいえ。Discourse は無料のオープンソースソフトウェアです。

このリンクをエディタにコピー&ペーストすると、再現できます。確かに、非常に遅くなります。

「いいね!」 3

興味深いことに、ここでは再現できませんでした。

このフォーラムはアップデートが遅れているようですね。先週、HighlightJS ライブラリを最新バージョンにアップデートする変更をマージしました。これにより、はるかに高速になります。

また、https://forum.manjaro.org インスタンスには autohighlight all code という設定がありますが、これは、コードブロックを含むほとんどの投稿が実際のコードではなく単純なログファイルであるサポートフォーラムでは推奨されません。彼らのチームには、それをすぐに無効にすることを提案します。

それ以外にも、メインのブラウザ スレッドで 10,000 行以上のコードをハイライトすると、一部のデバイスでは知覚できるほど遅くなります。これは、Android フォンで GitHub の差分を開くと簡単にわかります。バックグラウンド JS ワーカーでそれを実行する計画がありますが、いくつかの欠点があり、まだ着手できていません。

「いいね!」 3

ああ、私の間違いでした。ホームページで「無料で試す」という大きなボタンを見たのですが、それは無料では 試用 しかできないことを示唆していました。また、価格設定セクションには無料プランについての言及がありませんでした。さらに調査すべきでした。それらはホストされたプランか何かだったのでしょう。

また、https://forum.manjaro.org のインスタンスには autohighlight all code という設定があります。

はい、すでに気づいており、おそらく彼らの設定ミスだろうと推測しましたが、それは問題とは関係ありません。正規の JavaScript コードの同等に長いスニペットを貼り付けることもできたでしょう。あるいは、問題が実際に間違った構文でコードがハイライトされた場合にのみトリガーされるとしても、コード外のエディタが遅くなることを正当化するものではありません。

10k行以上のコードをメインブラウザのスレッドでハイライトすると、一部のデバイスでは明らかに遅くなります。

はい、しかし、ハイライトされているコードブロックの外部の投稿を編集しているときに、それが起こる理由はありません。メインスレッドで行う(明らかに間違っています - それを修正に取り組んでいると聞いてよかった)かバックグラウンドで行うかに関わらず、コードがハイライトされた後、そしてそれを編集しなくなった後、ハイライトに関連する作業は一切行われるべきではありません。ハイライトに関連する解析、計算などは、コードブロックの内容を変更した場合にのみ再実行する必要があります。