CNode

求问本地异步读文件的效率问题?

问答
Yycczkl发布于11 年前最后回复11 年前15 回复5810 浏览0 收藏

当用ajax发送多个post请求时,总时间取决于最慢的那个请求。 但当在本地异步读多个文件的时候,总时间还是取决于最慢的那个吗? 我在想在底层异步读多个文件会导致时间增长,并不会比并行读文件效率高多少,不知道实际情况应该怎么分析?

查看回复

回复 (15)

L
leapon#1·11 年前

本地异步读多个文件, 应该是用parallel同时读取多个文件吧。那还是最慢的那个返回,才能进行下面的。

L
leapon#3·11 年前
引用 ycczkl@leapon 和并行读多个文件那个效率高呢

@ycczkl 咱们说的是一个事。都是并行读。

Y
ycczkl#4·11 年前
引用 leapon@ycczkl 咱们说的是一个事。都是并行读。

@leapon 说错了。。和同步读比较呢?

L
leapon#5·11 年前
引用 ycczkl@leapon 说错了。。和同步读比较呢?

@ycczkl 同步读的话,读一个文件的时候不能读另一个文件。多个文件是顺序读的,那就比异步平行读慢多了。

Y
ycczkl#6·11 年前
引用 leapon@ycczkl 同步读的话,读一个文件的时候不能读另一个文件。多个文件是顺序读的,那就比异步平行读慢多了。

@leapon 我懂,但是从底层来讲同时读多个文件,总速度会变慢的,因为i/o吞吐量是一定的。

L
leapon#7·11 年前
引用 ycczkl@leapon 我懂,但是从底层来讲同时读多个文件,总速度会变慢的,因为i/o吞吐量是一定的。

@ycczkl 读取文件要考虑磁盘 IOPS 限制的时候,你应该在读取相对较大的文件。这种情况同步读或许会比异步读快一点,但用户体验会很差。同步读的时候,node就不能响应web request,用户感觉是web server freezes。异步读大文件,node可以返回文件处理的进度,用户感觉web server还是在响应的。

A
alsotang#9·11 年前
引用 ycczkl@leapon 恩对,谢啦

@ycczkl 要读大文件的是个什么场景呢?

S
songqinghehe#10·11 年前

读大文件用流来处理?

Y
ycczkl#11·11 年前
引用 songqinghehe读大文件用流来处理?

@songqinghehe 对,用流处理。 我的意思是在本地异步同时读多个大文件速度不会比同步读快。

Y
ycczkl#12·11 年前
引用 alsotang@ycczkl 要读大文件的是个什么场景呢?

@alsotang bigdata课上要读bloomberg上的交易数据然后进行分析,每个文件2个G。 我用node搞的,突然想到了这个问题。我知道其实node干这种活儿不是最适合的~

D
dayuoba#13·11 年前

异步或者同步都是上层的,底层调用都是open read,我认为不存在哪个速度快慢的问题

S
songqinghehe#15·11 年前
引用 dayuoba异步或者同步都是上层的,底层调用都是open read,我认为不存在哪个速度快慢的问题

@dayuoba 这个该如何理解?异步和同步在读取文件时就没区别了?

参与回复
登录后即可参与回复。登录