DM9000+linux+TCP,为何只有1.6MBytes每秒,速度损失在哪里?
硬件:S3C2416(400MHz) + DDR2(266MHz) + DM9000cep
测试方法:client收到第一个数据(非文件名)包的时刻开始计时(调用time函数),接收完毕时刻结束计时(再次调用time函数)。速度=文件大小/两次时间差
各位前辈,大家好。最近我在做一个TCP文件传输的实验。但测试下来数据传输速度大概只有1.5MBytes每秒。我想知道,原本百兆网卡的DM9000,为什么速度会损失这么多呢?
理论上,100Mbps/10=10MBps,再扣除程序处理过程开销及由总线方式带来的内存访问耗时(估计在20%-30%)。那么还剩余7-8MBps。即使损耗达到50%,也还有5MBps。和我的1.5MBps还是差距太大。
不知道哪位前辈能给指点一二。 |