Powerbuilder中,数组无法在使用完后释放空间,datastore插入行的速度只有dw的百分之一。
来源:互联网 发布:淘宝网天龙八部 编辑:程序博客网 时间:2024/06/09 15:01
最近在写一个检索磁盘的小软件。发现两个问题。以前利用dt和dw处理数据的行数很少。很难发现这个问题。
1. 数组无法在使用完后释放空间
2. datastore插入行(insertrow())的速度只有dw的百分之一
最开始使用findfirstfile,findnextfile将文件信息放入大数组中。但是发现使用完后。即使手动调用垃圾回收函数。数组占据的数百兆空间无法归还给操作系统。则想了一个办法。把dt直接作为ref传给uo去写入检索出来的文件信息。但是发现一个问题。用datastore的插入速度只有dw的百分之一,所以造成在uo中的dt_1.insertrow(0)成为最慢的瓶颈。不知道是怎么回事。以往的考虑都是尽量用dt,因为没界面,现在现在才发现dw的插入要快得多,5万行只要6秒;而dt插入5万行要几分钟。我想。这可能是跟dw有预先分配足够的空间吧。具体原因望哪位能指出一下。。。
//这是测试代码
dts_fileslist.reset()
long i
for i = 1 to 50000
yield()
dts_fileslist.insertrow(0)
if mod(i,200) = 0 then this.text = string(i)
next
messagebox("","OK")
//
dw_1.reset()
long i
dw_1.setredraw(false)
for i = 1 to 50000
yield()
dw_1.insertrow(0)
if mod(i,200) = 0 then this.text = string(i)
next
dw_1.setredraw(true)
messagebox("","OK")
- Powerbuilder中,数组无法在使用完后释放空间,datastore插入行的速度只有dw的百分之一。
- 在PowerBuilder中利用DataStore实现查询条件的记忆
- 在GridView中插入行
- 在GridView中插入行
- 在GridView中插入行
- 在文件的头部插入行的方法
- 删除大文件后空间无法释放的问题处理
- 向文件中插入行的的命令sed 详解
- powerbuilder中外部数据源的freeform类型的dw在detail中不显示内容的问题
- powerbuilder的dw中使用graph风格,当横轴是日期时,如何显示才能完整显示日期?
- Oracle delete数据后的释放表空间,加快访问速度
- delphi控制excel ,在指定单元格后插入行
- 正确获得最新插入行的标识
- Handsontable不允许插入行的处理
- mysql 获取刚插入行的id
- 获取 刚才插入行的 id
- 动态二维数组的申请、赋初值、使用、释放空间
- 向数据库插入数据后返回新插入行的主键
- webpartmanager SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错
- 俄罗斯方块Tigerkin Tetris 1.0
- 线性表的顺序表示。
- 基于Linux的视频传输系统(上大学时参加的一个大赛的论文)
- uclinux在2410上运行的可行性分析
- Powerbuilder中,数组无法在使用完后释放空间,datastore插入行的速度只有dw的百分之一。
- MFC ------------ Q & A
- 返回按 "[" "]" 分隔开的字符
- 伊藤由奈-ENDLESS STOTY
- 下载文件方法
- 程序书写规则
- MFC DLL向导
- c#类型转换
- [转]Web 设计:实现干净代码的12条定律