|
发表于 2020-9-21 18:39:19
|
显示全部楼层
山东省东营市
emm,不用好像,走内存读写和走磁盘读写的速度肯定不会一样。
简单测试了一下,
在源代码的基础上做了以下修改。
1.写了几行生成固定数量的随机字符的代码,数量百万行,存储在一个数组中。生成过程和存储过程不计入时间。
2.将两种方法对比的打开文件和类的初始化包含近时间计算中。
每行文本72个随机字符,原生方法4017ms,内存缓冲方法473ms
每行文本81个随机字符,原生方法4438ms,内存缓冲方法4031ms,相差无几。
考虑到缓冲区大小的问题,更改了缓冲区大小为100M(1024*1024*100)
为了比对明显,每行文本288个随机字符,原生方法 44235ms,内存缓冲方法34907ms,相差10s左右
不排除我个人电脑是渣机的原因,上边的数据虽然不是很严谨,但也能说明不少问题。
1.此类方法是典型的用空间换取时间的算法
2.在缓冲区大小理论充足的情况下,依旧有易语言自带的写文本行用时比较少的情况出现,在每行文本>81时,算法如果想实际应用还要再做优化。
3.接上述问题,经验来讲,估计是调用了易语言的写出文本的锅,还有内存分配的锅
4.既然都用了特殊功能支持库里的调试输出了,为什么不使用申请内存和释放内存呢 |
|