第一次注释掉Lv1的循环、运行Lv2的代码、

第二次注释掉Lv2的循环、运行Lv1的代码、

具体运行速度、完全不用计时、显而易见、在我的电脑上、Virtual ListView的速度几乎是一瞬间就好了

不过蛮奇怪的、我又用VB做了下实验、VB的ListView是ActiveX的、在IDE下添加100000条记录、速度也蛮快的、大概在我的电脑上是2.5s左右、这是IDE下的速度、如果是生成EXE再运行应该是可以在1s以内的、这个速度远远大于Delphi中的Vcl ListView....看来这个效率损耗在VCL里挺大的、、

仅以此做记录、以后不要忘记了ListView的这种用法、、

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) lv1: TListView; lv2: TListView; procedure FormCreate(Sender: TObject); procedure lv2Data(Sender: TObject; Item: TListItem); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s:TStringList; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Lv1Timer,Lv2Timer:Cardinal; nLoop:Cardinal; const AddStr='Test'; LoopTimes=100000; begin s:=TStringList.Create; lv1.ViewStyle:=vsList; lv2.ViewStyle:=vsList; Lv1Timer:=GetTickCount; //for nLoop := 1 to LoopTimes do //第一次运行、注释掉这两行、体验下速度 // lv1.Items.Add.Caption:=AddStr + IntToStr(nLoop); Lv1Timer:=GetTickCount - Lv1Timer; Lv2Timer:=GetTickCount; lv2.OwnerData:=True; //for nLoop := 1 to LoopTimes do //第二次运行、注释掉这两行、看看Lv1是什么速度 // s.Add(AddStr + IntToStr(nLoop)); lv2.Items.Count:=LoopTimes; Lv2Timer:=GetTickCount - Lv2Timer; //s.Free; ShowMessage('Time Out:' + #13#10 + //这个计时对于Lv2来说是不准确的、 'Lv1:' + IntToStr(Lv1Timer) + ' ms' + #13#10 + //不过这个明显的速度差异、 'Lv2:' + IntToStr(Lv2Timer) + ' ms');//人也可以感觉出来了 end; procedure TForm1.lv2Data(Sender: TObject; Item: TListItem); begin Item.Caption:=s[Item.Index]; end; end.

转载于:https://www.cnblogs.com/ForDream/archive/2010/08/17/1924465.html

Virtual ListView效率对比相关推荐

  1. 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化

    一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...

  2. [python]关于字符串查找和re正则表达式的效率对比

    最近需要在python中做大日志文件中做正则匹配 开始直接在for in 中每行做re.findall,后来发现,性能不行,就在re前面做一个基本的字符串包含判断 (str in str),如果不包含 ...

  3. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

    1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...

  4. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  5. python和c运行速度的对比实验_Python中单线程、多线程和多进程的效率对比实验...

    原标题:Python中单线程.多线程和多进程的效率对比实验 文 | 饒木陽 Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下 ...

  6. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )

    文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...

  7. 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁...

    线程(from threading import Thread):CPU调度的最小单位 线程的两种创建方式:方式一: 1 from threading import Thread 2 def f1(i ...

  8. 数组常见的遍历循环方法、数组的循环遍历的效率对比

    1 遍历数组的方法 1-1.for / while 最普通的循环 效率最高 兼容ie6 tips:for循环更适用于循环的开始和结束已知,循环次数固定的场合:while循环更适合于条件不确定的场合 1 ...

  9. 一个C#和C++执行效率对比的简单实例

    这里用一个算法题进行比较. 原题是见http://acm.hdu.edu.cn/showproblem.php?pid=4090,登载在http://blog.csdn.net/woshi250hua ...

最新文章

  1. 【数字信号处理】周期序列 ( 周期序列定义 | 周期序列示例 )
  2. DOM 之通俗易懂讲解
  3. 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.
  4. 线程同步,线程不同步_同步多线程集成测试
  5. mysql数据库计算全部女生_使用mysql存储过程-统计某个数据库下的所有表的记录数...
  6. 小技巧 ----- 二维数组中通过(x, y)的偏移量来遍历(x, y)周围的元素
  7. Tensorflow中的tf.keras库
  8. webpack文件系统缓存
  9. 2步判断晶体管工作状态
  10. c语言数字按键消息响应',c语言程序使用钩子拦截键盘消息的有关问题
  11. 刘万祥老师讲如何利用条件格式色阶制作数据地图
  12. win7远程桌面连接设置
  13. 内核代码之SIP ALG分析
  14. Python 从入门到入魔
  15. discuz 论坛不同版块使用不同模板
  16. 2021年Android工作或许更难找,面试资料分享
  17. 大数据用什么软件python_大数据软件 python
  18. Nginx配置代理多个服务及伪集群实现
  19. java资产管理系统开源_Java固定资产管理系统源代码
  20. Oracle dba培训教程 第一章 Oracle的体系结构

热门文章

  1. 微信小程序对接阿里云视频点播,备忘
  2. python3: 数字日期和时间(1)
  3. [POJ3630] Phone List
  4. 数据库相关概念以及简单SQL语句
  5. c语言实现字符指针(字符串)数组的排序
  6. @清晰掉 GNU C __attribute__
  7. log4j的NDC/MDC区别与应用
  8. CSS综合征病例,医药-churg-strauss 综合征 (css) 变应性嗜酸性肉芽肿.ppt
  9. 用神经网络测量训练集的半衰期
  10. 连接php的作用是什么意思,链接是什么?