几万个而已,真要算起来stat一个文件几毫秒的话,一个线程几十秒也能完成。你再想想服务器,一个进程每秒钟能接受上千请求,光写日志就写上万条,然后再乘以几十个进程。这才叫io密集型
至于 git,你觉得 git 会开几十个线程出来吗,很多操作都是非并行的。
至于编译,实际上是一个CPU密集型操作,一个进程访问文件的时候也是顺序的,实际的并行程度不会超过CPU核心数,而且大部分时间是耗在计算上而不是io上了
【 在 siegfried415 的大作中提到: 】
: 我经常用beyond compare对比两个目录,这两个目录中可能有几万个甚至几十万个文件,bc能做到在几十秒之内完成几十万个文件的比较,你觉得在这种情况下,操作系统会会不会每秒钟发出成千上万的读写指令?然后这些指令为什么就不能在ssd中被分配到不同的队列中来并行的去执行呢?
: 类似的操作,还有打包,压缩和解压缩,备份与同步,编译内核,git操作等等,都涉及到大量的小文件的读写,你怎么知道这些操作无法利用ssd的并行读写能力呢?
: --来自微水木3.5.1
--
FROM 221.219.97.*