加载数据量很大,怎么提高加载数据速度? 加载了一个大容量的TXT文本,目前我用的是分块映射操作。每加载一块,在其中有判断数据正确与否,计算,描点画图等。感觉速度还是不够快速,大家可有更好的方法来提高速度??谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建立索引。。可以。画哪加载哪里。直接用文件偏移读取文件。读取可以用 sdk和汇编优化。。 其实楼主觉得慢应该是CPU的利用率没上来。 很有可能吧。以前用chart控件画图,内存超级飙升。里可有更好的办法,请指点一、二。谢谢了。 我用的image控件描点,应该是静态的图形吧。以横轴为时间,10ms描一个点。没考虑屏幕像素,一万,几百万个点都能描在image控件上啊。画图的原理,就是利用梯形微积分吧。我画图的思路是:在把所有数据点描完后,自动存储一个BMP图形。当两个游标之间的图形需要放大的时候,在取出两游标之间的数据,重新画图,这样重复,不停放大到某一个不能再放大的值为止。最后要还原全图,就直接导入存储的BMP图形即可。不知道你怎么处理??有何高见?请赐教,谢谢!! 用文本保存的数据肯定慢啊。数据读进来后需要做文本至数字的转换,这很耗费时间。应该保存成二进制数据,用 stream 读进来,再借助 Move 函数取数据。数据结构可以自己设计,例如:TGraphItem = packed record Kind: Word; X1, Y1, X2, Y2: Integer; Color: TColor;end;这个例子很简单,只为了说明问题。无论多么复杂,其中所有成员都要采用定长数据类型,不能用 string 这样的不定长类型。这样,整个 TGraphItem 也就是定长类型,可以用 Move 函数来操作,无需做任何数据类型转换。Move 编译后会转换成速度非常快的机器代码。 TO jinghai1776: 源数据是TXT文本保存的文件,里面全是采集的ASCII码。我的任务就是读出这个TXT里的数据,进行计算,然后描点到IMAGE里。当然所有读出的数据有保存到一个记录型的结构体里,因为图画完了后,要使用这些数据。 这里,中间的计算、描点,很费时间,想优化一下,你可有好的方法??谢谢了 vividw说的是对的,你说人家在"卖弄",你让人家怎么回你???不如你出2W RMB打到vividw的支付宝上,证明一下看他是否"卖弄"...现在的Delphi环境是越来越差啦,只能说:Delphi已死,有事烧纸... 你开始连 问题都没有描述清楚。 后面才说是 用的chart的chart性能是有问题,大数据的处理不好的话,看下gdi+的接口处理器来 不难。 我说的方法肯定是研究过 可行的。你认为难 只是没研究过。 很久以前用过chart控件了,这次的提问里,压根就没有提到这个控件。 已经结贴了?不太清楚你中间的计算和描点具体操作。如果速度瓶颈在这里,你不妨用汇编程序来操作。Delphi 插入汇编代码很方便,可以直接在 Pascal 变量和寄存器之间相互赋值,特别适合大量的简单操作,速度能提高很多。 DELPHI中动态调用存储过程时,动态创建数字型数据的语法如何写。急! 想写个BBS自动回帖程序,给点意见 ListBox与dbgrid的问题 运行错误(超级难解决)分数不够可以在加 一个很奇怪的问题,在线等 自动返回IP问题 小弟是新手,请多多关照?关于p2p的问题? 关于DateTime的转换(在线等待!) 如何控制WINDOWS的主音量? 怎样在delphi编程中列出所有函数成员,以供调用? delphi操作XML 关于delphi 窗体切换问题
画哪加载哪里。直接用文件偏移读取文件。
读取可以用 sdk和汇编优化。。
里可有更好的办法,请指点一、二。谢谢了。
画图的原理,就是利用梯形微积分吧。
我画图的思路是:在把所有数据点描完后,自动存储一个BMP图形。当两个游标之间的图形需要放大的时候,在取出两游标之间的数据,重新画图,这样重复,不停放大到某一个不能再放大的值为止。最后要还原全图,就直接导入存储的BMP图形即可。
不知道你怎么处理??有何高见?请赐教,谢谢!!
Kind: Word;
X1, Y1, X2, Y2: Integer;
Color: TColor;
end;这个例子很简单,只为了说明问题。无论多么复杂,其中所有成员都要采用定长数据类型,不能用 string 这样的不定长类型。这样,整个 TGraphItem 也就是定长类型,可以用 Move 函数来操作,无需做任何数据类型转换。Move 编译后会转换成速度非常快的机器代码。
源数据是TXT文本保存的文件,里面全是采集的ASCII码。我的任务就是读出这个TXT里的数据,进行计算,然后描点到IMAGE里。当然所有读出的数据有保存到一个记录型的结构体里,因为图画完了后,要使用这些数据。
这里,中间的计算、描点,很费时间,想优化一下,你可有好的方法??谢谢了
不如你出2W RMB打到vividw的支付宝上,证明一下看他是否"卖弄"...
现在的Delphi环境是越来越差啦,只能说:Delphi已死,有事烧纸...
chart性能是有问题,大数据的处理不好的话,看下gdi+的接口处理器来 不难。 我说的方法肯定是研究过 可行的。你认为难 只是没研究过。
已经结贴了?不太清楚你中间的计算和描点具体操作。如果速度瓶颈在这里,你不妨用汇编程序来操作。Delphi 插入汇编代码很方便,可以直接在 Pascal 变量和寄存器之间相互赋值,特别适合大量的简单操作,速度能提高很多。