这贴未免太老了吧

(无意炒作,本文不置顶,仅供朋友参考,不欢迎转贴)

2007年4月刊《程序员》中,“两种高性能I/O设计模式的比较”中似乎存在明显错误。假设错误,分析方法错误,结论也错误。

结论错误:
文章中谈论到java nio在Windows下的实现,他说是WSAEventSelect,但从SUN公布的源码来看,显然是select,而非WSAEventSelect。
(参考我以前写的文章“Java nio在Windows下的实现” http://www.cnblogs.com/jobs/archive/2006/11/22/568023.html)

测试场景不专业,提供数据不详尽:
a) 文章拿Java和C++ ACE的比较数据,得到的数据(不详尽),结论是在Linux下的性能比较接近。文章给的数据不详尽,也没有区分长短连接、空闲长连接和大吞吐量长连接。感觉上是十分不专业。
b) Java的测试,使用JDK 1.4的,而SUN公司在2006年Java SE 5.0 update 9之后的版本,更新了在Linux下的实现,使用epoll。大大提高空闲连接的并发性能。
c) 文章中也没有提到使用epoll实现的ACE_Dev_Poll_Reactor。只提到了ACE_POSIX_AIOCB_Proactor。linux 2.6之后增加epoll,文章对此重大变故视而不见。
d) 文章提到了nio应该使用IOCP实现,作者具体实现是使用Proactor->Reactor的转换。这完全是空想吧,转换的模型真的那么好做么?这是多路复用和异步I/O的完全不同编程模型啊,这种转换会不损失性能?2003年Java就通过了一个JSR 203,是异步I/O在Java中实现的规范,无视JSR 203的存在。这纯粹是YY吧。
参考我以前写文章
1、“关于sun JDK nio在linux下的实现” http://www.cnblogs.com/jobs/archive/2006/11/22/568022.html
2、“Java aio和JSR 203” http://www.cnblogs.com/jobs/archive/2006/11/21/566763.html

这文章三年前(2004年之前)发还有一点价值,现在一点意义都没有,还误导人!


一切如下:
----------------

夜已深,万籁俱寂。

忽然屋顶瓦片响动,偶从草榻上一跃而起,低声喝问:“谁?!”屋顶有人答道:“阁下请出来说话。”偶飞身跃入院中, 但见屋脊上站立一人,打扮颇为怪异,似是异邦之人。背负一口长剑,剑柄镶了一颗极大的珠子,月光之下发出幽幽绿光。偶心头一凛,想起一人,拱手道:“原来 是还珠楼主,楼主久不到中原,不知今日所来为何?”还珠楼主却不答话,一扬手,一道白光直射下来,偶不敢怠慢,侧身让过,卸了暗器飞来之势,探手将暗器接 住,却是一张纸。还珠楼主一笑:“今日特来发帖。”偶再看那张纸,虽是好纸,却已发黄,上写道:“恭请阁下于猴年马月猪日羊时参加英雄会”。再一想,那猴 年马月已是三年之前了。偶不禁冷笑道:“楼主,这帖子未免也太老了吧!”

posted on 2007-04-30 18:21  温少  阅读(1133)  评论(0编辑  收藏  举报

导航