3

私は現在、ソフトウェアの 1 つ (Delphi 7) で TRichEdit を「リアルタイム」イベント ログ ビューアとして使用しています。最近、ソフトウェアのプロファイリングを行ったところ、TRichEdit がソフトウェアの CPU 時間の 40% 以上を消費しています。

パフォーマンスを比較するために他のコンポーネントをテストしたいだけです。このコンポーネントには次のものが必要です。

  • 行の色付け (異なる色の行には異なる接頭辞または HTML の色付けなどがあるため、LINE 構文の色である可能性があります)。
  • ファイル機能への簡単な保存 (RTF または HTML へ)。
  • 無料またはオープンソース。
  • 良いパフォーマンス。ビューアとして「大きなファイル」(200 Mo の場合もあります)の場合でも。

情報 : 私はまだこの投稿を見ていますが、良い答えはありません。

4

3 に答える 3

3

1996 年頃の TConsole / TColorConsole をチェックしてください: http://www.torry.net/authorsmore.php?id=604

HTML も RTF も実行しませんが、色付きのテキストのスクロールは非常に高速です。;>

于 2011-11-15T22:51:23.993 に答える
2

「リアルタイム」のイベント ログ ビューアについては、VirtualTreeViewの使用をお勧めします。事実上無制限の数の行を処理でき、膨大な量のカスタマイズ機能 (カスタム カラーリングやカスタム描画など) があり、Unicode をサポートし、既にリストに数百万のアイテムがある場合でも非常に高速に動作します。すべてがどのように機能するかを理解するには少し時間がかかりますが、一度理解すると、後戻りすることはありません。インプレース編集もサポートしています (すべての列のカスタム コントロールのサポートを含む)。すべてのアイテムは、(表示したいデータだけでなく) 必要なデータを保持できるレコードです。インクリメンタル検索もサポートされており、コードからの非常に高速な検索と同様に、数百万のアイテムがあっても問題ありません。

OSまたはコンポーネント自体によって多くの制限が課せられているため、「標準」のテキスト編集コンポーネントの使用は避けたいと思います。私が知っている唯一のコンポーネントで、要件のほとんど (すべてではないにしても) をサポートできるのは、すでに言及されているTRichViewです。試してみましTSynEditたが、多くの機能を備えていますが、パフォーマンスが著しく不足していると言えます。

VirtualTreeView を試してみてください。後悔することはありません。

于 2011-11-15T23:52:55.590 に答える
1

おそらく、clientdataset にログインできます。DBGrid では、あらゆる種類の描画オプションを指定できるため、表示されている線に基づいて背景色を指定できます。ClientDataset は非常に多くのデータを簡単に管理でき、グリッドは表示されている行のみを描画します。

いずれにせよ、大量のログを記録する場合、ロギング コンポーネントを絶えず再描画すると、アプリケーションの速度が低下します。おそらく、一時ログに行をキャッシュし、数秒ごとに表示ログにまとめて追加することで、ログのリアルタイム性を低下させる必要があります。

于 2011-11-15T22:47:02.760 に答える