起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: xhong

【结】关于ExcelToTable控件吃内存的问题

[复制链接]
 楼主| 发表于 2009-11-24 16:40:28 | 显示全部楼层
还没结果?问题重现了么?
回复 支持 反对

使用道具 举报

发表于 2009-11-24 17:08:38 | 显示全部楼层
楼主,做了简单测试,没发现内存有很大的增长。
我做的测试是动态创建那个控件,然后导入一些数据(几条几十条),然后执行多次,看任务管理器中的内存使用没有特别大的增加。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-25 11:32:26 | 显示全部楼层
你试试100列的数据,我把代码里所有无关的都注释掉,只留了导入到数据集的部分,仍然内存泄露
回复 支持 反对

使用道具 举报

发表于 2009-11-25 14:48:00 | 显示全部楼层
procedure TMainForm.Button1Click(Sender: TObject);
var lMsg :String;
    i:Integer;
begin
  DataSetBroker1.DataSet.Open;
  DataSetBroker1.DataSet.EmptyDataSet;
  DataSetBroker1.DataSet.Edit;
  ExcelToTable1.FileName :='c:\exceltotable1.xls';
// ExcelToTable1.DataSource :=TSQLDATASET(DataSetBroker1.DataSet);
  ExcelToTable1.StartRow :=1;
  ExcelToTable1.EndRow :=100;
                 //设置EXCEL的映射关系
  ExcelToTable1.FieldMap.Clear;
  for i:=1 to 100 do
  begin
//  if Business.Forms.ExcelFieldMapFunc.ShowFieldMapEditor(ExcelToTable1) then
  ExcelToTable1.FieldMap.Add('DataSetBZSJJ1.zd'+SysUtils.IntToStr(i)+'=Sheet1['+SysUtils.IntToStr(i)+',0]');

  end;
// if Business.Forms.ExcelFieldMapFunc.ShowFieldMapEditor(ExcelToTable1) then
  ExcelToTable1.Execute(lMsg);

  //DataSetBroker1.DataSet.Post;
end;
我用上面的代码设置100个字段导入100条数据,导入了n多次,没有看到可用内存减少版本3002
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-25 16:15:19 | 显示全部楼层
我用你的代码做了个小例子后导出资源,包里还有导入用到的excel,在3002版本下,每次导入增加20m以上内存

excel导入测试.rar

1.79 MB, 下载次数: 97

回复 支持 反对

使用道具 举报

发表于 2009-11-25 16:46:21 | 显示全部楼层
楼主,发现问题了,你导入时导入了很多空行。
也就是说你从1-100行做导入,而你的excel只有14行。你可以尝试一下 1-14行做导入,内存就不会少那么多了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-25 16:54:28 | 显示全部楼层
我只是弄个例子,实际应用中比100行多的表格多得是,问题就在于平台没有释放内存,即使我动态创建控件再free掉,也没有释放
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-25 16:56:18 | 显示全部楼层
而且shangxy的代码写的也是导入100行,为什么他说内存没有增加呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-25 16:58:31 | 显示全部楼层
问题在于内存没有释放掉,即使就导入几行数据,内存也是在持续上升的,只是量大量小的问题。
回复 支持 反对

使用道具 举报

发表于 2009-11-25 17:04:43 | 显示全部楼层
shangxy这边用的excel是100列100行(都有数据的),跑起来没怎么掉内存。如果他还是用同样的功能以及同样的excel,但是把那个控件的endrow设成300行,那么内存就掉的多了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 06:42 , Processed in 0.043033 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表