作者flydrago (黑)
看板C_Sharp
标题Re: [问题] 读档
时间Mon May 17 02:56:29 2004
※ 引述《cplusplus (没事多聊天~)》之铭言:
: ※ 引述《HerbertF (ff)》之铭言:
: : agree, 如果只是要全部从头到尾把档案读出来, 不是要做特定的
: : 搜寻或操作, 会有比较快的方法吗? 不就都是整个档案要走完?
: 如果你的资料处理时间比较长的话 真的可以考虑用 thread~
: 因为IO动作是OS的责任 当你等待OS在完成IO的时候其实还是可以做点事的...
: 读1 处理1 读2 处理2 读3 处理3 ..... single thread
: 如果有专门处理IO动作的thread IO动作跟处理动作可以overlap 同时进行
: 处理1 处理2 处理3 处理4 ... thread1
: 读1 读2 读3 读4 读5 ... thread2
: 基本上如果你算得正确 用这种模式通常会有帮助....当然如果用不好只是徒增负担而已
基本上就是这个样子
要知道什麽最耗费时间? 就是I/O动作
当你去存取一个档案时 绝大部分的时间是在等待磁碟的物理动作
所以如果我们能利用磁碟在作物理动作时,
一边处理该处理的资料
那效能就会快非常多...
就我写过的程式来说...光是把写档改成multi-thread就快了快10倍的速度
如果是写档读档的话可能会省去更多的时间
这也是为什麽大家说写程式不难
但写出effective的程式却是很困难的原因了!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.221.148