当用ajax发送多个post请求时,总时间取决于最慢的那个请求。 但当在本地异步读多个文件的时候,总时间还是取决于最慢的那个吗? 我在想在底层异步读多个文件会导致时间增长,并不会比并行读文件效率高多少,不知道实际情况应该怎么分析?
回复 (15)
L
本地异步读多个文件, 应该是用parallel同时读取多个文件吧。那还是最慢的那个返回,才能进行下面的。
Y
L
Y
L
Y
引用 leapon@ycczkl 同步读的话,读一个文件的时候不能读另一个文件。多个文件是顺序读的,那就比异步平行读慢多了。
@leapon 我懂,但是从底层来讲同时读多个文件,总速度会变慢的,因为i/o吞吐量是一定的。
L
引用 ycczkl@leapon 我懂,但是从底层来讲同时读多个文件,总速度会变慢的,因为i/o吞吐量是一定的。
@ycczkl 读取文件要考虑磁盘 IOPS 限制的时候,你应该在读取相对较大的文件。这种情况同步读或许会比异步读快一点,但用户体验会很差。同步读的时候,node就不能响应web request,用户感觉是web server freezes。异步读大文件,node可以返回文件处理的进度,用户感觉web server还是在响应的。
Y
A
S
读大文件用流来处理?
Y
Y
引用 alsotang@ycczkl 要读大文件的是个什么场景呢?
@alsotang bigdata课上要读bloomberg上的交易数据然后进行分析,每个文件2个G。 我用node搞的,突然想到了这个问题。我知道其实node干这种活儿不是最适合的~
D
异步或者同步都是上层的,底层调用都是open read,我认为不存在哪个速度快慢的问题
Y
S
参与回复
登录后即可参与回复。登录