use another thread loading file for other threads parse will not speed up application

本文探讨了多线程在文件加载与解析过程中的实际效能提升问题。指出硬盘到内存的数据加载并非CPU密集型操作,因此专门用于加载数据的线程对于提升整体性能的作用有限。进一步讨论了当硬盘读取速度低于CPU处理速度时,单一线程负责加载即可,且通过数学模型展示了在特定条件下多CPU使用的最佳数量。

Multithreads load and parse file will notspeedup file handling. because load data from harddisk to memory is notthe CPU's business, so the only function the loading thread is bufferthe data for other threads, and the truth is harddisk already has itsown physical buffer used for speed up file loading, so for the big gdsloading case, use a unique thread loads file from harddisk will speedup nothing.

for another case, one thread load and several threads handle the data.

if HD data handling speed < CPU data handing speed, the CPU will alway stay hungry for data, so one thread is enough,

so now we suppose the hardisk handing data speed is 2 and CPU handling data speed is 1.

HD CPU

SPEED M/s 2 1

threads number 1 2 3

100% *1 100%*2 66%*3

This is the ideal stuation, and use 2CPUs aready reach the peak, if so how to speed up our application anddo we need a thread prepare data for other threads? yes, we can preparethe exact data for others help us to reach the ideal stuation, however,the speedup will not be significate and the job will be very verycomplex.


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值