开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Visual studio 2013
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
写了Socket的程式,Server端传档案,然后Client端接收并写入档案
Multi-thread开N个threads同时去分别接收UDP封包,
换句话说,想要将封包拆成N份并同时接收
所以预期是希望所需总接收时间会下降
但我发现单一thread接收的时间反而比较快...
不清楚这可能的问题是什么
会是因为context switching过多??
如果是的话我有办法从自己的code看出来吗??
补充说明(Supplement):
API是使用OpenMP
举个目前测试出的结果,让大家看看能不能更清楚我可能忽略或做错的状况
thread个数为1时
接收10MB的档案约须时2.5秒
thread个数为2时
若分别接收9MB和1MB,共须时3秒
若分别接收5MB和5MB,共须时5秒