christye 发表于 2007-11-5 21:58:13

求助:关于高速采集中的出错

我需要采集的信号源频率如果很高,我如果把采样率设为500kHZ,缓冲区大小设为2M,在循环中每次读入100k个点,这样程序运行半分钟左右就会报错,说是我要读的数据已经不存在,已被覆盖了。当我把每次读入的点数改为50k,仍然是这样。不知道是什么原因?是不是因为我在循环中每读一次数据,同时还要在chart图中显示,并且保存在文件中,因而读取的速度比采集的速度慢很多?有什么办法可以改进,尽量延长正常读取的时间吗?谢谢了!

[ 本帖最后由 christye 于 2007-11-6 13:16 编辑 ]

isaac 发表于 2007-11-6 09:14:10

回复 1# 的帖子

看样子像是缓存溢出,要看一下你的源程序才能知道具体问题
从理论上来讲,你的设置没有什么问题

binyew 发表于 2007-11-6 11:41:12

缓冲区设置太小,应该设置再大一些!

wdyjz 发表于 2007-11-6 11:57:53

input buffer 设置为:1000000

christye 发表于 2007-11-6 12:46:05

我已经把buffer设成2000000了都不行

christye 发表于 2007-11-6 13:17:05

我用其他文件形式如waveform和binary格式的文件保存就不会出现这种问题。不知道是怎么回事?原文附上我的源程序,达人帮我看看。
谢谢!

lgh269 发表于 2007-11-6 13:56:44

高速采集中,这样写肯定会慢见意你用队列试试,

队列的使用例子中有很多

isaac 发表于 2007-11-6 14:45:09

用仿真设备运行了下楼主的程序,没有发现任何问题
可能是数据存储的时候效率较低,可以用属性节点观察一下运行时缓存内的数据情况再作判断
页: [1]
查看完整版本: 求助:关于高速采集中的出错