to barton:
第一,继承确实影响效率,很多对效率要求比较高的开发项目都不会用C++,
很多PDA和个人掌上设备的地层开发都是用C,虽然说现在有人用JAVA,但是
一直都不上台面,
第二,消息模式开销比你想象的要的多,他要判断发送消息的线程,要判断
消息的标志和消息类型,开销比你想象的要大的多,
下面就是MS的测试结果,你看看实际的情况如何,组塞和消息模式是效率最
低的,事实如此,不知道你有看法?
I/O Model Attempted/Con nected Memory Used (KB) Non- Paged Pool CPU Usage Threads Throughput (Send/ Receive Bytes Per Second)
Blocking 7000/
1008 25,632 36,12 1 10– 60% 2016 2,198,148/
2,198,148
12,000/
1008 25,408 36,35 2 5–40% 2016 404,227/
402,227
Non-
blocking 7000/
4011 4208 135,1 23 95– 100 %* 1 0/0
12,000/
5779 5224 156,2 60 95– 100 %* 1 0/0
WSA-
Async
Select 7000/
1956 3640 38,24 6 75– 85% 3 1,610,204/
1,637,819
12,000/
4077 4884 42,99 2 90– 100 % 3 652,902/
652,902
WSA-
Event
Select 7000/
6999 10,502 36,40 2 65– 85% 113 4,921,350/
5,186,297
12,000/
11,080 19,214 39,04 0 50– 60% 192 3,217,493/
3,217,493
46,000/
45,933 37,392 121,6 24 80– 90% 791 3,851,059/
3,851,059
Over-
lapped (events) 7000/
5558 21,844 34,94 4 65– 85% 66 5,024,723/
4,095,644
12,000/ 12,000 60,576 48,06 0 35– 45% 195 1,803,878/
1,803,878
49,000/ 48,997 241,208 155,4 80 85– 95% 792 3,865,152/
3,834,511
Over-
lapped (comple-
tion port) 7000/
7000 36,160 31,12 8 40– 50% 2 6,282,473/
3,893,507
12,000/ 12,000 59,256 38,86 2 40– 50% 2 5,027,914/
5,027,095
50,000/ 49,997 242,272 148,1 92 55– 65% 2 4,326,946/
4,326,496
具体的信息在http://www.microsoft.com/mspress/books/sampchap/5726a.asp