我目前在我的一个软件中使用TRichEdit作为“实时”事件日志查看器(在Delphi 7中),我最近对我的软件进行了剖析,而且TRichEdit占用了超过40%的软件CPU时间。
我只是想测试其他组件以便比较性能,这个组件必须具有:
信息:我还在看this post,但对我没有好的答案。
答案 0 :(得分:3)
查看大约1996年的TConsole / TColorConsole:http://www.torry.net/authorsmore.php?id=604
它不执行HTML,它不执行RTF,但它确实滚动彩色文本非常快速。 ;>
答案 1 :(得分:2)
对于“实时”事件日志查看器,我建议使用VirtualTreeView。它能够处理几乎无限数量的行,具有大量的自定义功能(如自定义着色和自定义绘制任何东西),支持unicode,即使列表中已有数百万项,也可以非常快速地工作。它需要一些时间才能理解一切是如何运作的,但一旦弄明白,你就永远不会回头。它甚至支持就地编辑(包括支持每列的自定义控件)。每个项目都是一个记录,可以保存您需要的任何数据(而不仅仅是您想要显示的数据)。还支持增量搜索,以及从代码中快速搜索,即使您有数百万项也无关紧要。
我会避免使用任何类型的“标准”文本编辑组件,因为操作系统或组件本身会施加很多限制。我所知道的唯一可以支持大多数(如果不是全部)需求的组件已经提到了TRichView。我试过TSynEdit
我可以说它有很多功能,但严重缺乏性能。
尝试VirtualTreeView,你不会后悔。
答案 2 :(得分:1)
也许你可以登录到clientdataset。 DBGrid允许您指定所有类型的绘图选项,因此您可以根据可见线指定背景颜色。 ClientDataset可以轻松管理大量数据,网格只会绘制那些可见的行。
无论如何,如果你记录很多,不断重新绘制日志记录组件会降低应用程序的速度。也许你应该通过在临时日志中缓存行来使日志更少实时,并且每隔几秒就将它们批量添加到可见日志中。