KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

程序求测,对编程不感兴趣的就不用进了。

[ 8265 查看 / 30 回复 ]

回复:程序求测,对编程不感兴趣的就不用进了。

跟我一样用的是WSAWaitForMultipleObjects啊...
当然,只有完成端口才是最高效的,如果你的程序并不需要同时开很多个socket,那么用winsock2接管的事件通知机制自然会方便省事得多,而且也不会令CPU占用率高出那么几个百分比

PS:只要你有足够的耐心和技巧,钢筋混凝土也是可以自己造的...在必要的情况下
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

Send Proc: 53.674MB/sec
Recv Proc: 53.414MB/sec

Mobile AMD Sempron 2800+ 1600 MHz
448M内存 DDR333
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

Time Used: 12342ms, 12389ms
Throughput: 82.969MB/sec, 82645MB/sec

CPU: P4 3.0GE FSB(200MHz) x 1
Memory: 512MB DDR333 x 2 = 1GB (Dual Channel) (200MHz)
BUS: 800MHz
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

buffer size 8.0mb
sending bytes 1073741824                  receiving bytes 1073741824
time used 10312ms                        time used 10359ms
throughput 99.302mb/s                    throughput 98.851mb/s

p4 3.2Ghz 2Gram
此人为无……
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

看来Intel的平台带宽普遍偏低...果然还是AMD的CPU集成内存控制器比较王道...

等我的机器拿回来后再试一下Dothan平台的效果。(不过估计也好不到哪里去)
飛べない翼に、意味はあるんでしょうか?
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

以下引用LOVEHINA-AVC在2006-6-5 22:43:53的发言:
跟我一样用的是WSAWaitForMultipleObjects啊...


其实我用的是WinAPI的WaitForMultipleObjects。
因为根据我耐心的对Google地毯式的搜索,发现WinSock2的Event其实和Windows的Event Object是同一个东西,只不过WSACreateEvent生成的Event是Manual Reset的。(这一点很多人不清楚,因为那些目标就是赚稿费的烂竽Windows网络编程书都没有介绍....XD)

所以我一般是用WinAPI生成好Events然后只用WSAEventSelect安装上去就行了。
飛べない翼に、意味はあるんでしょうか?
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

其实不用GOOGLE的,自己反汇编一下就很清楚了

Exported Function() : WSACreateEvent - Ord:0022h
719E45F7 >/$  33C0          XOR EAX,EAX
719E45F9  |.  50            PUSH EAX                                ; /EventName => NULL
719E45FA  |.  50            PUSH EAX                                ; |InitiallySignaled => FALSE
719E45FB  |.  6A 01        PUSH 1                                  ; |ManualReset = TRUE
719E45FD  |.  50            PUSH EAX                                ; |pSecurity => NULL
719E45FE  |.  FF15 60119E71 CALL NEAR DWORD PTR DS:[<&KERNEL32.Creat>; \CreateEventA
719E4604  \.  C3            RETN

ws2_32.dll只是一个RING3的动态链接库,不太可能通过自己的方式生成内核事件对象,也没有必要避开kernel32的中转来调用系统服务
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

但是也有可能 WinSock 2将Kernel Event进行了包裹,捆绑了一些自己用的数据结构,那样就不能混用了啊...

当然反汇编可以看得出来,不过一般人不会这么干的 -_-|||
飛べない翼に、意味はあるんでしょうか?
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

话又说回来,根据得到的数据,Intel平台上本机Loopback都达不到100MB/sec,那是不是意味着,就算有千兆网卡,也不可能有效的利用...这不就是欺诈消费者么?-_-||||
飛べない翼に、意味はあるんでしょうか?
TOP

回复:程序求测,对编程不感兴趣的就不用进了。

以下引用Prz在2006-6-6 3:32:32的发言:
话又说回来,根据得到的数据,Intel平台上本机Loopback都达不到100MB/sec,那是不是意味着,就算有千兆网卡,也不可能有效的利用...这不就是欺诈消费者么?-_-||||



time used 9855ms, 9886ms
throughput 103.907mb/s, 103.581mb/s

P4 3.20GHz
NVIDIA GeForce FX 5200
2G RAM
INTEL PRO/1000MT network connection
比大海更深沉的忧伤,比天空更青蓝的悠远。
TOP