मैं इस लाइब्रेरी का उपयोग करना चाहता हूं जो मैंने पाया, यह ज़ीरोमक का एक शुद्ध जावा पोर्ट (एक रैपर नहीं) है। मैं इसे जांचने की कोशिश कर रहा हूं और claims कुछ अच्छी संख्याओं के दौरान, मैं जो परीक्षण कर रहा हूं वह खराब परिणाम दे रहा है और यह स्थानीय रूप से भी किया जाता है (क्लाइंट और उसी मशीन पर सेवा करता है)। मुझे यकीन है कि यह कुछ है जो मैं गलत कर रहा हूं। यह लगभग लेता है। इस 10.000 संदेश लूप को निष्पादित करने के लिए 5 सेकंड।यह जेरोमक्यू (ज़ीरोएमक्यू पोर्ट) बेंचमार्क इतना धीमा क्यों है?
मैंने जो कुछ किया है वह हैलो वर्ल्ड उदाहरण लेता है और विराम और sysouts हटा दिया जाता है।
सर्वर:: यहाँ कोड है
package guide;
import org.jeromq.ZMQ;
public class hwserver{
public static void main(String[] args) throws Exception{
// Prepare our context and socket
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REP);
System.out.println("Binding hello world server");
socket.bind ("tcp://*:5555");
while (true) {
byte[] reply = socket.recv(0);
String requestString = "Hello" ;
byte[] request = requestString.getBytes();
socket.send(request, 0);
}
}
}
ग्राहक:
package guide;
import org.jeromq.ZMQ;
public class hwclient{
public static void main(String[] args){
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REQ);
socket.connect ("tcp://localhost:5555");
System.out.println("Connecting to hello world server");
long start = System.currentTimeMillis();
for(int request_nbr = 0; request_nbr != 10_000; request_nbr++) {
String requestString = "Hello" ;
byte[] request = requestString.getBytes();
socket.send(request, 0);
byte[] reply = socket.recv(0);
}
long end = System.currentTimeMillis();
System.out.println(end-start);
socket.close();
context.term();
}
}
है इस कोड को ठीक करने और कुछ सभ्य संख्या प्राप्त करने के लिए संभव है?
अन्य ने उत्तर दिया है कि कुछ और करके - तेजी से संख्या कैसे प्राप्त करें। मैं बस यह इंगित करना चाहता हूं कि आपकी संख्या, पूर्ण शब्दों में, आवश्यक रूप से खराब नहीं है: औसत 0.5 एमएस प्रति राउंड-ट्रिप किए गए संदेश पर। और राउंडट्रिप के हिस्से के रूप में, संदेश को एक उच्चस्तरीय भाषा में पार्स किया जा रहा है, और इसका एक संसाधित संस्करण वापस भेजा गया है। उन आंकड़ों की तुलना करें जो आप एक साधारण आईसीएमपी पिंग कर रहे हैं, और आपको टीसीपी, जेरोमक्यू और आपके कोड के ओवरहेड के लिए एक महसूस हो रहा है। –