對ZeroMQ速度的質疑

2021-06-12 05:06:40 字數 2389 閱讀 3148

都說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.有些兵種只能對空,有些只能對地。不會吧,就算給你一把,也沒有這個限制,頂多是打的中打不中的問...