原来的处理过程:
inputfile=>数组1
fun1(数组1,var 数组2);
fun2(数组2,var 数组1);
...
funN(数组1,var 数组2);
数组2=>outputfile
——各个处理函数独立,但是程序需要内存量=文件字节数x2
(当然,把数组改为文件流也行,这样,内存开销少了,但是实际的硬盘读写量多了N倍)一种办法是改为:
fun(input文件流,output文件流)
{
while (读流得到一个小数据块)
{
fun1(小数据块);
fun2(小数据块);
...
funN(小数据块);
写入文件流
}
}
——这样,内存开销小了,但是各个处理函数都只是处理一小块而不是整体
(这样,实际的硬盘读写量也只是1倍了!)
不知道*nix的
cat input | fun1 | fun2 | ... | funN > output
整个过程的内存需要量是不是也input大小的x1或x2? ——估计无解。
inputfile=>数组1
fun1(数组1,var 数组2);
fun2(数组2,var 数组1);
...
funN(数组1,var 数组2);
数组2=>outputfile
——各个处理函数独立,但是程序需要内存量=文件字节数x2
(当然,把数组改为文件流也行,这样,内存开销少了,但是实际的硬盘读写量多了N倍)一种办法是改为:
fun(input文件流,output文件流)
{
while (读流得到一个小数据块)
{
fun1(小数据块);
fun2(小数据块);
...
funN(小数据块);
写入文件流
}
}
——这样,内存开销小了,但是各个处理函数都只是处理一小块而不是整体
(这样,实际的硬盘读写量也只是1倍了!)
不知道*nix的
cat input | fun1 | fun2 | ... | funN > output
整个过程的内存需要量是不是也input大小的x1或x2? ——估计无解。
解决方案 »
- 几个函数代码大致相同,如何简化?
- 走動的時間
- 为什么我用WinSpool.GetPrinter,得到打印机的参数,其它参数正常,为什么就是状态总是为0
- 如何取TADOConnection::Execute操作的影响记录数。
- 我和我女朋友打算今年八月十五回去领结婚证,但是现在泡汤啦。!!!
- 排序问题
- 在同一局域网内,通过一个台主机向其他主机发送信息(类似于Win2000中Messager的功能)
- 如何退出双重循环
- 谁来帮帮我吧!
- 用delphi5的nmpop3控件编写收邮件的程序,nmpop3.MailMessage.Body.Text多了一此如"=,<A>"之类的东东
- 如何将图像发送到photoshop编辑
- Delphi三层主从表巢状结构分段取数据问题
有满意答案,返回50%分这不是逼人 没有满意答案 也要强作欢颜?