2016-01-13 3 views
5

मैं एक वेब अनुप्रयोग है कि ग्राहक और सर्वर के बीच द्विदिश संचार के लिए WebSockets का उपयोग लिख रहा हूँ। मेरी मुख्य चिंता उपयोगकर्ता द्वारा देखी गई विलंबता है, इसलिए, मैं जो भी कर सकता हूं उसे मापने और प्रोफाइलिंग कर रहा हूं। विशेष रूप से, मैं वर्तमान समय पर ऑनमेज() ईवेंट पर कब्जा कर रहा हूं। यह उपयोगी है, लेकिन मैं यह भी जानना चाहता हूं कि ईवेंट को ब्राउजर के इवेंट लूप में कब धकेल दिया गया है - जो कि ऑनमेज इवेंट को निकाल दिया जाता है।वेबसाइटसेट समय: ब्राउज़र पर कोई वेबसाइकिल संदेश कब आता है, सही समय कैसे प्राप्त करें?

Chrome डेवलपर टूल में, मैं "नेटवर्क> फ्रेम्स" टैब, जो मुझे लगता है कि समय था जब घटना घटना पाश में प्रवेश करती है में कई बार देखते हैं। लेकिन मुझे जावास्क्रिप्ट में प्रोग्रामेटिक रूप से कैप्चर करने की आवश्यकता है। कोई आईडिया कि इसे कैसे किया जाए?

मैंने कुछ "console.log" ing किया और कुछ मामलों में डेवलपर टूल्स में दिखाए गए समय के बीच लगभग 10 मिलीसेकंड का अंतर देखा, और जब मैं ऑनमेज ईवेंट में कैप्चर करता हूं। मैं अपने मापनों को दिखाना चाहता हूं कि क्या अंतर 10 मिलीसेकंड के रूप में हमेशा छोटा होता है, या पृष्ठ में होने वाली किसी अन्य चीज के कारण अंतर कभी बहुत अधिक होता है या नहीं।

enter image description here

+0

आप वास्तव में के साथ प्रयोग के कथित विलंबता किसी समस्या का सामना कर रहे हैं या सिर्फ समय से पहले अनुकूलन से पीड़ित? यदि आपको कोई समस्या है, तो क्या आप वास्तव में हर सेकेंड 30k पिंग भेज रहे हैं? उस तरह की पिंगिंग स्वास्थ्य देखभाल.gov जैसी साइट ला सकती है ... आखिरकार, अधिकांश इंसानों को 10ms में कोई अंतर नहीं दिख रहा है, इसलिए यदि आप कोड में एक समय कैप्चर करने में सक्षम हैं जो कि आप ' देव में देख रहे हैं। उपकरण, यह काफी अच्छा है, अगली समस्या पर आगे बढ़ें। –

+0

विलंबता मेरी बड़ी चिंता का विषय है, यह वास्तव में हो रहा है, और मैं अल तरीके इसे कम करने के लिए देख रहे हैं, तो मैं इस तरह के संदेश का आकार, भौतिक स्थानों, समवर्ती उपयोगकर्ताओं की संख्या, आदि के रूप विलंबता पर विभिन्न मापदंडों, के प्रभाव का अध्ययन कर रहा हूँ .. इस प्रश्न को पोस्ट करने का कारण यह है क्योंकि मुझे यकीन नहीं है कि मेरे माप केवल 10 मिलीसेकंड बंद हैं। ब्राउज़र को पता चल जाता है कि कोई संदेश कब आया, इसलिए मैं सोच रहा हूं कि इस जानकारी को कैप्चर करने का कोई तरीका हो सकता है। और 30k के बारे में, यह मेरे कई प्रयोगों में से एक है। यह एक सामान्य संदेश आकार जरूरी नहीं है। –

उत्तर

1

WebSocket के लिए ब्राउज़र एपीआई जानकारी है कि आप चाहते हैं का पर्दाफाश करने के भी प्रतिबंधित है।

ब्राउज़र Performance interface साथ समय जानकारियां बेनकाब करने के लिए शुरू कर दिया है, लेकिन यह इंटरफेस सिर्फ WebSocket सर्वर से प्रारंभिक कनेक्शन के समय जानकारियां आप को बता देंगे WebSocket के बारे में फ्रेम

+0

ठीक है। साझा करने के लिए धन्यवाद। –

0

अपने विवरण के आधार पर यह पता नहीं है समस्या का, यह जरूरी नहीं है। जब http ढेर अपने संदेश प्राप्त करता है और जब यह आवेदन में आप को पास कर देता है, तो यह प्रोग्राम के रूप में लॉग इन किया जा सकता है के बीच देरी न के बराबर है और लगभग निश्चित रूप से जावास्क्रिप्ट datetime मूल्य की शुद्धता से नीचे (आप performance.now इस्तेमाल कर सकते हैं, लेकिन मैं अपने संदेह यह वास्तव में कितना सटीक है)।

आपका विलंबता नेटवर्क कारकों और सर्वर प्रतिक्रिया समय के द्वारा संचालित किया जा रहा है - अगर आप उन लोगों में से उचित माप प्राप्त कर सकते हैं, आप हो जाएगा जहां आप होना चाहते हैं। अन्य कारक माप "शोर" में योगदान दे सकते हैं - जब तक कि आप मापने की कोशिश कर रहे मूल्य के 10% से कम हो, तो कोई समस्या नहीं है।

संबंधित मुद्दे