都說zeromq的速度很快,到底有多快?官方說的每秒百萬筆交易速度,真有這麼nb?這兩天用zeromq實現了乙個交易中介軟體,可惜速度只有5000筆每秒的速度,為啥差距這麼大呢?問題到底在**呢?
1. 支援的所有模式中,pub/sub效能最好,在cpu:e8400,記憶體1g的機器上可以輕鬆跑到每秒接近百萬筆交易的傳輸速度。(pub/sub 底層使用udp協議)
2. 所有模式中效能最低的是rep/req,他與速度最快的pub相比,時間浪費可能有:
rep/req
pub/sub
tcpudp
生成uid
無uid
有路由資訊
無路由資訊
交易匹配
無需匹配
ipc方式:
所以在使用rep -> req模式下,最大交易筆數只能達到2.5萬-2.6萬/秒的速度
如果修改模式為 rep->proxy->rep模式,最大交易筆數只能達到1.2萬-1.3萬/秒的速度
tcp方式:
比ipc方式略慢,等過後有空做個詳細測試吧,沒有估計錯誤,應該相差10%左右的效能(不考慮網路差異,認為網路環境足夠好)。
#cli.py
## hello world client in python
# connects req socket to tcp://localhost:5555
# sends "hello" to server, expects "world" back
#import zmq
import time
import date time
context = zmq.context(4)
# socket to talk to server
print "connecting to hello world server…"
socket = context.socket(zmq.req)
socket.connect ("tcp:")
#socket.connect ("ipc://5552")
started = datetime.datetime.now()
# do 10 requests, waiting each time for a response
for request in range (1,100000):
#print "sending request ", request,"…"
socket.send ("hello")
# get the reply.
message = socket.recv()
#print "received reply ", request, "[", message, "]"
print "all done, take[", (datetime.datetime.now() - started) , "]"
#proxy.py
#import zmq
import time
context = zmq.context(4)
font_socket = context.socket(zmq.xrep)
back_socket = context.socket(zmq.xreq)
font_socket.bind("ipc://5551")
back_socket.connect("ipc://5556")
while true:
zmq.device(zmq.queue, font_socket, back_socket);
#server.py
## hello world server in python
# binds rep socket to tcp://*:5555
# expects "hello" from client, replies with "world"
#import zmq
import time
context = zmq.context(4)
socket = context.socket(zmq.rep)
socket.bind("tcp:")
while true:
# wait for next request from client
message = socket.recv()
#print "received request: ", message
# do some 'work'
#time.sleep (1) # do some 'work'
# send reply back to client
socket.send("world")
對網上流傳的水波演算法的質疑
我在研究你的水波程式時,認真的進行了研究了很長時間,我覺得網上流傳的水波演算法在推理的過程中有一些問題值得商榷。1。你推出公式4a b 1的前提是能量守恆,水波的振幅之和不發生變化.如果真是能量守恆的話,應該是a 1 4,b 0 這是因為該點的能量全部傳給四周,而中心的能量傳出去了。而若取a 1 2...
XP實踐的質疑
客戶作為團隊成員 xp強調面對面的交流,強調物理空間的聚合,但事實是客戶與開發團隊在物理空間上協同工作基本是不可能的,無論這裡的客戶是指掏錢買單的還是業務人員 至於尋找可以完全替代客戶的人加入團隊更是無稽 結對程式設計 這裡又有些過於理想化,同乙個專案用兩倍的人去完成,除非老闆大腦短路,這種不計成本...
星際2的質疑
簡體中文版還沒有出來,於是試玩了盜版星際2,劇情不錯,最後漫天的霞光下,英雄抱著美女看天上的飛蟲。好浪漫啊。不過一玩對戰就覺得有問題,一些常識問題 1.所有飛行器都在同一高度 2.衝鋒槍可以打到巨型戰艦 3.有些兵種只能對空,有些只能對地。不會吧,就算給你一把,也沒有這個限制,頂多是打的中打不中的問...