DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: fiscan1
今日帖子: 1
在线用户: 8
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/16 11:22:03
标题:
DelphiXE7&XE8以及内存表性能测试 浏览:7524
加入我的收藏
楼主: 简单测试了ADODataSet、ClientDataSet、FDMemTable、kbmMemTable、SQLMemTable等几个内存表控件的Append、Insert、SaveToFile、LoadFromFile、SaveToStream、LoadFromStream等功能,XE8比XE7性能提升20%左右。

测试源码下载地址:http://pan.baidu.com/s/1ntIFuwL
此帖子包含附件:
PNG 图像
大小:77.0K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2015/4/16 12:41:48
1楼: 牛人!必顶!
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2015/4/16 12:47:27
2楼: fdmemtable为什么从文件导入是0ms呢?
性能最好的是哪个?
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 lzd123 (昨夜清风) ★☆☆☆☆ -
盒子活跃会员
2015/4/16 13:36:01
3楼: devExpress VCL中也有内存表,而且性能也不错,为何没有发现和使用呢!!!!
----------------------------------------------
向你学习
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2015/4/16 15:52:20
4楼: ehlib也有内存表
----------------------------------------------
-
作者:
男 ptdelphi (Delphi) ▲▲▲▲△ -
普通会员
2015/4/16 15:59:57
5楼: 还是坐等xe8update,给楼主顶一顶
----------------------------------------------
还可以更好
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/16 18:16:15
6楼: @sxqwhxq Ehlib的MemTableEh功能太弱,性能太差。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/16 18:17:11
7楼: @ lzd123 没用过DEV,你们可以测试下。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/16 18:18:27
8楼: @ gaoyong_gy SQLMemTable性能最好。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2015/4/16 21:34:59
9楼: 看了楼上的测试,开始安装xe8...
----------------------------------------------
-我的博客
作者:
男 chang888 (风凌) ★☆☆☆☆ -
盒子活跃会员
2015/4/17 8:59:33
10楼: 之间的性能相差还是好多啊
----------------------------------------------
学习,学习,再学习!!!
作者:
男 iceair (冰晰空气) ★☆☆☆☆ -
盒子活跃会员
2015/4/17 10:21:51
11楼: 安装XE8,主要是看了楼主的测试,看来确实优化了不少,又要和XE7-再见了,晕。
----------------------------------------------
心无挂碍,无有恐怖,远离颠倒梦想,究竟涅槃。
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2015/4/17 10:53:29
12楼: 实测了下,确实是快了15%-20%,望楼主把unidac的virtualtable加上,在我的机器上virtualtable比FDMemTable快一些,望楼主发个拷屏看一下
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/17 14:14:04
13楼: @hq200306 virtualtable不会用,不知道怎么动态添加字段,请指教。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2015/4/17 14:22:57
14楼: earthsbest谦虚了吧,下面的代码是从你的源码复制过来的

function TForm15.NewVirtvalTable: TVirtualTable;
begin
  if VirtualTable1 = nil then
    VirtualTable1 := TVirtualTable.Create(self);
  with VirtualTable1 do
  begin
    FieldDefs.Clear;
    FieldDefs.Add('ID', ftInteger, 0, True);
    FieldDefs.Add('Status', ftString, 10, False);
    FieldDefs.Add('Created', ftDate, 0, False);
    FieldDefs.Add('Volume', ftFloat, 0, False);
  end;

  Result := VirtualTable1;
end;

procedure TForm15.SpeedButton6Click(Sender: TObject);
var
  d1, d2: Cardinal;
  i: Integer;
  Field1,
    Field2,
    Field3,
    Field4: TField;
begin
  ListBox2.Clear;
  NewVirtvalTable;
  //
  VirtualTable1.Clear;
  VirtualTable1.Open;
  d1 := GetTickCount;
  VirtualTable1.DisableControls;
  try
    Field1 := VirtualTable1.FieldByName('ID');
    Field2 := VirtualTable1.FieldByName('Status');
    Field3 := VirtualTable1.FieldByName('Created');
    Field4 := VirtualTable1.FieldByName('Volume');
    for I := 1 to 10000 * 5 do
    begin
      VirtualTable1.Append;
      Field1.AsInteger := I;
      Field2.AsString := 'Code' + IntToStr(I);
      Field3.AsDateTime := Date();
      Field4.AsFloat := Random(10000);

      VirtualTable1.Post;
    end;

  finally
    VirtualTable1.EnableControls;
  end;
  d2 := GetTickCount;
  ListBox2.Items.Add(IntToStr(d2 - d1));
  //
  stream.Clear;
  d1 := GetTickCount;
  VirtualTable1.SaveToStream(stream, true);
  d2 := GetTickCount;
  ListBox2.Items.Add(IntToStr(d2 - d1));
end;
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/17 14:34:19
15楼: @ hq200306 我一直在找类似CreateDataSet的方法,一直没找到,原来是不用的。
此帖子包含附件:
JPEG 图像
大小:86.5K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 chineseswish (swish) ★☆☆☆☆ -
普通会员
2015/4/17 16:10:58
16楼: VirtualTable 插入性能好差
----------------------------------------------
QDAC 开源数据库访问组件欢迎大家关注讨论和使用 官网(博客):http://www.qdac.cc 讨论QQ群:250530692 QLang 多语言组件快速让你的程序走向海外
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/17 17:08:53
17楼: @chineseswish 在D7下面VirtualTable 和ClientDataSet的插入性能都很好,和追加的差不多,在高版本的Delphi下面相差太大了。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 hq200306 (200306) ★☆☆☆☆ -
普通会员
2015/4/17 17:14:38
18楼: 回chineseswish (swish),virtualtable的savetofile和loadfromfile要改一下函数,要换成tmemorystream,速度要提高很多
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/17 17:17:51
19楼: @chineseswish 我把QDataSet测试去掉了,发现测试要死机。等完善后再对比测试下。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 chineseswish (swish) ★☆☆☆☆ -
普通会员
2015/4/17 17:25:10
20楼: 嗯,TQDataSet不着急参与战争,俺默默的去找静静……
----------------------------------------------
QDAC 开源数据库访问组件欢迎大家关注讨论和使用 官网(博客):http://www.qdac.cc 讨论QQ群:250530692 QLang 多语言组件快速让你的程序走向海外
作者:
男 tjwhf (tjwhf) ▲▲▲▲△ -
普通会员
2015/4/17 18:43:20
21楼: 请编译个32位的比较下
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2015/4/18 9:09:39
22楼: 同求32位测试,谢谢了
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2015/4/18 16:56:23
23楼: 回复楼上两位 32位的性能差不多,firedac的32位比64位略差一些。上面有连接有源码,有兴趣可以自己编译测试。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 tiez (骑牛夜旅) ★☆☆☆☆ -
普通会员
2015/4/19 9:43:55
24楼: 广大用devexpress的朋友,TdxMemData也是不错的哦
----------------------------------------------
-
作者:
男 iny (盒子) ★☆☆☆☆ -
盒子活跃会员
2015/4/19 10:28:36
25楼: 期待用DX的TdxMemData测试对比下
----------------------------------------------
-
作者:
男 wuxinxin (wuxinxin) ▲▲△△△ -
普通会员
2019/5/22 22:04:26
26楼: 新的测试结课。用的是 Rio 10.3
此帖子包含附件:
PNG 图像
大小:24.0K
----------------------------------------------
-
作者:
男 etjon (etjon) ★☆☆☆☆ -
普通会员
2019/5/22 23:29:02
27楼: 請問還可以提供源碼測試嗎
----------------------------------------------
-
作者:
男 ksrsoft (cb168) ★☆☆☆☆ -
普通会员
2019/5/23 6:29:12
28楼: clientdataset还比FDMemTable快?
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2019/5/23 13:31:02
29楼: 测试源码
此帖子包含附件:earthsbest_201952313312.zip 大小:63.0K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 etjon (etjon) ★☆☆☆☆ -
普通会员
2019/5/23 14:18:55
30楼: 您好 29 樓,實在是在太謝您了~~~~
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行118.1641毫秒 RSS