मैं कहूंगा यह इस बात पर निर्भर करता है कि आप किस सटीक अंतराल को मापने की कोशिश कर रहे हैं, उस अनुरोध के अंतिम बाइट से समय की मात्रा जो आप प्रतिक्रिया के पहले बाइट तक भेजते हैं आपको प्राप्त हुआ? या जब तक पूरी प्रतिक्रिया प्राप्त नहीं होती है? या आप केवल सर्वर-साइड टाइम को मापने की कोशिश कर रहे हैं?
यदि आप केवल सर्वर साइड प्रोसेसिंग समय को मापने की कोशिश कर रहे हैं, तो आपको पहुंचने के अनुरोध के लिए नेटवर्क ट्रांजिट में बिताए गए समय और वापसी की प्रतिक्रिया के लिए समय लगाना मुश्किल होगा। अन्यथा, चूंकि आप सॉकेट के माध्यम से अनुरोध का प्रबंधन कर रहे हैं, इसलिए आप सिस्टम घड़ी की जांच करके और अंतर की गणना करके किसी भी दो क्षणों के बीच विलुप्त समय को माप सकते हैं। उदाहरण के लिए:
public void sendHttpRequest(byte[] requestData, Socket connection) {
long startTime = System.currentTimeMillis();
writeYourRequestData(connection.getOutputStream(), requestData);
byte[] responseData = readYourResponseData(connection.getInputStream());
long elapsedTime = System.currentTimeMillis() - startTime;
System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
}
इस कोड से लेकर आप प्रतिक्रिया प्राप्त करना समाप्त करने के लिए आपके अनुरोध बाहर लिखाई शुरू समय को मापने होता है, और मुद्रित परिणाम (यह मानते हुए आप अपने विशिष्ट पढ़ें/लिखें तरीकों को लागू किया है)।
स्रोत
2008-09-16 03:44:09
डीबगिंग उद्देश्यों के लिए, या आपके प्रोग्राम द्वारा उपयोग के लिए? – owenmarshall