.................................. (1分)

原来高手都在这里,怪不得其他问题没人答。别看我,我不懂,学习来的。
 
还是没明白我的意思。晕!我并没有不相信微软的工程师。(我可没那么张狂呀)
 
抛开ado和sql server不讲,就讲多个线程是不是各自使用自己的事务?在Oracle中,每个
连接可是开一个进程的。进程之间根本没法共享事务的。
 
不知道是谁不明白谁的意思,我这里的一个线程独立一个ADO组件,事务也是独立,服务器感觉到的相当于是不同的用户,互不干扰. 我只要求读取网络数据库的数据,不要求什么事务,俺不懂什么叫事务,你是高人,说的话我理解不了也是正常的
 
那业务模型不一样,我无法理解你的业务模型。举个例子吧。一个客户登录完,在数据库
中记录一下上线时间(业务A)。客户下线或者注销的时候再记录下线时间,并从该客户的
帐户中记录费用(业务B)。如果业务A和业务B在一个线程中完成,那完全没有问题。如果
不在一个线程呢?处理业务B的时候就无法获得业务A的数据。我说的对吗?
 
.......................
 
to bluely锛?璁ㄨ?鏁版嵁搴撹繛鎺ヤ篃涓嶇畻绂婚?鍟婏紒鎴戝笇鏈涘ぇ瀹剁户缁??璁鸿繖涓?棶棰橈紒鎴戝緢鎰挎剰瀛︿範銆?鍙﹀?锛屽ぇ瀹惰?璁虹殑鐪熺殑寰堚
 
......................

 

呵呵,我测试过啦,说实在的我倒是觉得很搞笑的,为了更好的测试你的 Server 的负载,我重新写过测试客户端和把服务器端改成你说的这种测试规则,其客户端核心代码如下,还有在你的这种测试模式之下,要达到每秒响应 1 万多次的请求本来就是很简单的,在这种测试方法实际上成啦测试 CPU 的速度以及网络 Send 和 Receive的速度罢了。

procedure TThreadConnections.Execute;
var
buf: Array[0..127] of char;
begin
try
while not Terminated do
begin
if not Assigned(FClientSocket) then
begin
FClientSocket := TTcpClient.Create(nil);
FClientSocket.RemotePort := FRemotePort;
FClientSocket.RemoteHost := FRemoteAddress;
FClientSocket.Open;
Inc(iCount);
end else
if FClientSocket.Connected then
begin
FillChar(Buf, SizeOf(Buf), #0);
FClientSocket.Sendln(IntToStr(ThreadID) + ' : Open:' + IntToStr(iCount));
Synchronize(AddResult);
FClientSocket.ReceiveBuf(buf, SizeOf(buf));
FRecvStr := Buf;
Synchronize(AddResult);
if FClientSocket.Handle = -1 then
begin
FClientSocket.Close;
FreeAndNil(FClientSocket);
end;
end
end;
except
raise ;
end;
end;
 
陈一蛟,把你的代码搞成长连接,看能同时并发处理多少个连接?[:D]
 

以后不再玩这样的把戏,实在没有意义,浪费啦很多时间,顺祝更上一层楼

 
............................
 

阻塞模式下可以并发两千个长连接(为进程中线程的限制所致)

<<在这种测试方法实际上成啦测试 CPU 的速度以及网络 Send 和 Receive的速度罢了。
这不就是服务器最关键的几个指标? 兄弟你还差远着..多虚心学习吧,我不多说什么了,我没有帮你们公司提高人员素质的义务.推荐你看两本书: windows核心编程和windows网络编程技术 》

====》呵呵,我倒是不喜欢测试硬件的性能,而且我也不认为你的水平有多高,就你自己这种水平还不够资格替我提高水平,本不想和你一般见识,既然兄弟你这么喜欢盛气凌人,我也喜欢不客气,即使是大师写的书,其内容也不见得就没有错误,尽信书不如无书,这个道理难道还要我教你吗?谦虚点对你不会有坏处,即使你再厉害,但现在你的也开发水平不会高到那里去!!!


 
............................
 
呵呵,大家别吵了,技术上的争论在所难免,但别进行人身攻击(注:偶并非影射谁,只是防微杜渐而已)。
这张贴使我受益非浅,希望能继续下去。

PS:我很想要一个使用完成端口的例子(最好是Delphi的),谁能给我一份感激不尽。
E-Mail: goofree@163.com
 

呵呵,就算你一年前搞过也不代表你现在水平就提高啦多少!那我 4 年前就搞过这些东东,可我就没有想过自己要重新写过,年限不代表什么玩意,我是菜鸟水平,那你的水平就到啦菜鸟级别吗?大师的作品要不要全相信,当然要试过才能相信,你完全相信那是因为你的水平的问题,不能因为你的水平不行,别人就不能置疑大师的作品,谁置疑谁就是菜鸟,大师的程序也会有 BUG。

像你写的客户端程序就达不到让服务器每秒响应 1 万请求的负荷到,在我的机器就不行,而我的程序测试就可以到到每秒万次响应,难道我也要说像你这种菜鸟的烂程序也敢拿出来吗?靠,那真够无耻的

到最后玩极端的不用对象,都用函数,或者你牛逼,干脆自己写协议的实现,那你真够厉害,不管你写的好或者坏

不想再放屁啦

 
这么厉害可以去回答我的问题啊!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1991961
 
bluely介绍的两本书真是好书啊,我6天前恰好都下载了,看了之后,才可以参与讨论啊!
推荐未看的可以下载来看看!
windows核心编程:
http://lib.cqu.edu.cn/pcbook/FILES/PRO-WINDOWS-NUCLEARPRO.htm
windows网络编程:
http://www.deit.ecnu.edu.cn/ebook/WinNetPro/winntpro.htm
 
hoho,找到问题所在,呵呵,线程的问题。
测试的效果可能差不多,源码可以在:
http://www.eping.net/fourm/dispbbs.asp?boardid=15&id=650&star=1#3001
里DOWN,俺的机子就不怎么好,就只是测试到600个连接,大家不妨指点指点。
 
我只好站在陈一蛟一边了.很多人好狂妄的,一听发言就知道水平高不好哪里去(不仅仅包
括技术上的水平,也包括做人的水平).
 
顶部