डिफ़ॉल्ट रूप से एक्सकोड प्रदर्शन परीक्षण दस बार चलाए जाते हैं और मेरा परिणाम उन दस परीक्षणों का औसत होता है। समस्या यह है कि जब भी मैं इसे चलाता हूं तो औसत परिणाम काफी भिन्न होता है इसलिए मुझे एक अभिसरण परिणाम प्राप्त करने के लिए कम से कम पांच बार परीक्षण करना पड़ता है। यह दोनों थकाऊ और समय लेने वाला है; दस बार से अधिक चलाने के लिए या तो XCode या इकाई परीक्षण को कॉन्फ़िगर करने का कोई तरीका है?मैं दस बार से अधिक अपने प्रदर्शन परीक्षण कैसे चला सकता हूं?
उत्तर
XCTestCase के एक वर्ग डंप इस विधि को उजागर करता है:
- (void)_recordValues:(id)arg1 forPerformanceMetricID:(id)arg2 name:(id)arg3 unitsOfMeasurement:(id)arg4 baselineName:(id)arg5 baselineAverage:(id)arg6 maxPercentRegression:(id)arg7 maxPercentRelativeStandardDeviation:(id)arg8 maxRegression:(id)arg9 maxStandardDeviation:(id)arg10 file:(id)arg11 line:(unsigned long long)arg12;
जब इस विधि पहले पैरामीटर (ARG1) swizzled है 10 अवधियों है: (
["0.003544568",
"0.003456569",
"0.003198263",
"0.003257955",
"0.003508724",
"0.003454298",
"0.003461192",
"0.00423787",
"0.003359195",
"0.003335757"]
मैं 4 नए मूल्यों जोड़ा 1.0 , 2.0, 3.0, 4.0) मूल कार्यान्वयन पर वापस जाने से पहले इस सूची के अंत तक, लेकिन दुर्भाग्य से XCTestLog
पर एक अलग वर्ग है, जिसमें एक आंतरिक सैनिटी चेक है जो ट्रिप हो जाती है:
Assertion failure in +[XCTestLog _messageForTest:didMeasureValues:forPerformanceMetricID:name:unitsOfMeasurement:baselineName:baselineAverage:maxPercentRegression:maxPercentRelativeStandardDeviation:maxRegression:maxStandardDeviation:file:line:]
caught "NSInternalInconsistencyException", "Performance Metrics must provide 10 measurements."
एक बार XCTestLog
विधि भी ओवरराइड हो जाती है, इसलिए यह ज़ोर नहीं देता है, अतिरिक्त 4 मान किसी भी शिकायत के बिना जोड़ा जा सकता है। दुर्भाग्य से दृश्य अभी भी केवल 10 परिणाम दिखाता है।
हालांकि यह मिनी व्यू में कुल समय + मानक विचलन मान अपडेट करता है।
Swizzling Swizzling के बाद और 10 से अधिक परिणाम देखने के लिए 4 मूल्यों
जोड़ने से पहले एक शायद XCode क्रम बदलाव करने को बताने के लिए होता है अधिक आइटम दिखाने के लिए टेबल।
संक्षिप्त उत्तर: नहीं, वहाँ कोई वर्तमान में दस गुना से एक उपाय ब्लॉक अधिक अनुमति देने के लिए सामने आ इंटरफेस है।
लंबा उत्तर: नहीं, लेकिन माप ब्लॉक के कुछ मीट्रिक को संशोधित करने के लिए एक इंटरफेस खुलासा हुआ है। डिफ़ॉल्ट मीट्रिक defaultPerformanceMetrics
से लौटाई गई स्ट्रिंग सरणी में हैं। ऐसा लगता है कि अभी केवल एक मीट्रिक समर्थित है: XCTPerformanceMetric_WallClockTime
। यह केवल एक प्रदर्शन मीट्रिक निर्दिष्ट करता है जो प्रदर्शन परीक्षण के startMeasuring()
और stopMeasuring()
विधियों पर कॉल के बीच सेकंड में समय रिकॉर्ड करता है, न कि ब्लॉक चलाने की संख्या की संख्या।
- 1. मैं अपने सभी PHPUnit परीक्षण कैसे चला सकता हूं?
- 2. मैं एंड्रॉइड लुक-बार कैसे आसानी से चला सकता हूं?
- 3. मैं जेनकींस से कैस्परजेस जावास्क्रिप्ट परीक्षण कैसे चला सकता हूं?
- 4. मैं आरओआर पर तेजी से परीक्षण कैसे चला सकता हूं?
- 5. मैं अपने परीक्षण के सूट से केवल विशिष्ट परीक्षणों को मिक्स कैसे चला सकता हूं?
- 6. मैं अपने जावा एप्लिकेशन के अंदर से जुनीट परीक्षण कैसे चला सकता हूं?
- 7. क्या मैं अपने एकल पीसी पर एक से अधिक JVM चला सकता हूं?
- 8. मैं एसबीटी के साथ एंड्रॉइड परीक्षण कैसे चला सकता हूं?
- 9. मैं Django परियोजना-स्तरीय परीक्षण कैसे चला सकता हूं?
- 10. मैं अपने सेटटाइम फ़ंक्शन को उसी गति से कैसे चला सकता हूं?
- 11. मैं अपने जावा एप्लिकेशन में प्रोग्रामिंग के सभी जुनीट परीक्षण कैसे चला सकता हूं?
- 12. मैं रेल कंसोल से प्रारंभकर्ता कैसे चला सकता हूं?
- 13. मैं अपने उत्पादन डेटाबेस की एक प्रति पर Django परीक्षण कैसे चला सकता हूं?
- 14. मैं निकटतम दस में कैसे घूम सकता हूं?
- 15. मैं एक बार में एकाधिक प्रोटैक्टर परीक्षण सूट कैसे चला सकता हूं?
- 16. मैं अपने सभी Django ऐप्स के लिए केवल परीक्षण कैसे चला सकता हूं?
- 17. मैं अपने जुनीट परीक्षण को यादृच्छिक क्रम में कैसे चला सकता हूं?
- 18. मैं django यूनिट परीक्षण (manage.py के माध्यम से) कैसे चला सकता हूं तेज़
- 19. जुनीट पैरामीटर परीक्षण: मैं इंटेलिजे/ग्रहण से केवल 1 विशिष्ट परीक्षण कैसे चला सकता हूं?
- 20. मैं सी # में प्रदर्शन अनुकूलन परीक्षण कैसे कर सकता हूं?
- 21. मैं कमांड लाइन से स्कैला + specs2 कैसे चला सकता हूं?
- 22. मैं कोई प्रोग्राम कैसे चला सकता हूं?
- 23. मैं रूबी जेम कैसे चला सकता हूं?
- 24. मैवेन के साथ जेबीहेव परीक्षण कैसे चला सकता हूं?
- 25. मैं बांस से कर्म (टेस्टकुलर) के साथ जैस्मीन परीक्षण कैसे चला सकता हूं?
- 26. मैं अपने स्टैक ओवरफ़्लो को कैसे छोड़ सकता हूं?
- 27. मैं यहां 5 बार से अधिक क्यों फेंक रहा हूं?
- 28. मैं रूबी मणि की चश्मा कैसे चला सकता हूं?
- 29. मैं किसी वेबसाइट से पीएलएस फ़ाइल कैसे चला सकता हूं?
- 30. मैं मैटलैब कंपाइलर को तेज़ी से कैसे चला सकता हूं?
क्या यह सही काम करता है? 0.003 सेकेंड से 0.717 सेकेंड की वृद्धि तीन नई प्रविष्टियों के लिए थोड़ा सा लगता है। – Deco
हाँ यह सही काम करता है। मूल 10 मानों का मतलब 0.00348 था, और 14 का मतलब (1, 2, 3, 4 जोड़ने के बाद) मान 0.71677 – Casey
(0.003544568 + 0.003456569 + 0.003198263 + 0.003257955 + 0.003508724 + 0.003454298 + 0.003461192 + 0.00423787 + 0.003359195 + 0.003335757 + 1 + 2 + 3 + 4)/14 – Casey