2013-11-28 12 views
7

क्या उपकरण के साथ सहेजे गए ट्रेस फ़ाइलों की तुलना करने का कोई तरीका है। मैं ऐप के निरंतर एहसास निर्माण के संबंध में किसी भी तरह की तुलना कैसे कर सकता हूं।एक्सकोड इंस्ट्रूमेंट्स ट्रेस तुलना

लेस्ट का कहना है कि मैं आईफोन ऐप संस्करण 1.0 को 2 महीने 1.1 में रिलीज़ करता हूं। मेमोरी और समय के मामले में प्रोफाइलिंग तुलना करने के लिए सबसे अच्छा क्या है?

उत्तर

3

आप ट्रेस फ़ाइलों को सहेज सकते हैं। लेकिन भविष्य के दिनांक पर उन परिणामों की व्याख्या करना उचित है, महत्वपूर्ण घटनाओं को चिह्नित करने के लिए, अपने ट्रेस में "झंडे" डालना उपयोगी है, ताकि आप यह बता सकें कि ऐप ट्रेस में उल्लेखनीय बिंदुओं पर क्या कर रहा था।

अतीत में, मैं प्रोग्रामेटिक रूप से डाले गए झंडे को शामिल करने का सुझाव दूंगा, इसलिए भविष्य में तुलना के लिए आपके पास कुछ आधार है, लेकिन यह आईओएस 7 में टूटा हुआ है। लेकिन अगर आप 7.0 करने से पहले iOS के साथ सिम्युलेटर पर इस चला रहे हैं, आप कर सकते हैं:

  • अपनी परियोजना के लिए DTPerformanceSession.framework जोड़ें;

  • अपने स्रोत में:

    #import <DTPerformanceSession/DTSignalFlag.h> 
    
  • फिर, अपने स्रोत में, आप प्रोग्राम झंडे उपकरण में सम्मिलित कर सकते हैं (जब पूर्व iOS7 सिम्युलेटर पर चल रहा है):

    // Point flag (just an event in time) 
    DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE); 
    
    // Start flag (to mark the start of something) 
    DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE); 
    
    // End flag (to mark the end of something) 
    DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE); 
    
  • से DTPerformanceSession.framework निकालें आपकी प्रोजेक्ट (इसे जोड़ने की प्रक्रिया एक्सकोड को हेडर को हल करने देती है, लेकिन आप इसे अपने आईओएस प्रोजेक्ट में नहीं रखना चाहते हैं या नहीं तो आपको लिंकिंग त्रुटियां मिलेंगी)।

आप संबंधित अभिलेखागार की एक प्रति रखना चाहते हैं ताकि आप भविष्य की तारीख पर ट्रेस फ़ाइल को फिर से संपादित कर सकें।

जाहिर है, अगर आईओएस 7 में प्रोफाइलिंग हो, तो आप मैन्युअल रूप से झंडे जोड़ सकते हैं, लेकिन यह प्रोग्रामेटिक रूप से फ़्लैगिंग के रूप में सुरुचिपूर्ण या कठोर नहीं है।

+0

उत्तर के लिए धन्यवाद, दुर्भाग्य से अपने आवेदन iOS 7 ही है। आप जो कह रहे हैं वह यह है कि ट्रेस अंतर देखने के लिए, मुझे उन लगातार निर्माणों की ट्रेस सामग्री को मैन्युअल रूप से देखना होगा। ट्रेस फ़ाइलों के लिए "स्वचालित तुलना diff" नहीं है। अन्यथा स्मृति और समय प्रोफाइलिंग का ट्रैक रखना केवल मैन्युअल रूप से संभव है। – user3017495

+0

ऐसा करने के बाद, आपको विंडो> फ्लैग प्रबंधित करें, और फिर सिग्नल ध्वज प्रदर्शित करना चुनना होगा, अन्यथा आप उन्हें नहीं देख पाएंगे – Dov

+0

बाद के ओएस संस्करणों में, अब हम "रुचि के बिंदु" का उपयोग कर सकते हैं। http://stackoverflow.com/a/39416673/1271826 – Rob

2

सबसे अच्छा तरीका है, कि मैं यह पता लगाने की है:

  1. अनुप्रयोग के दोनों संस्करणों को स्थापित करें उपकरण
  2. ओपन Instruments करने के लिए।
  3. "लाइब्रेरी" बटन पर क्लिक करें और जोड़ें कि आप ट्रैक करना चाहते हैं। मेरे लिए यह इस तरह दिखता है:

    • गतिविधि पर नजर रखने के
    • आवंटन
    • समय प्रोफाइलर
    • नेटवर्क गतिविधि
    • मेमोरी मॉनिटर
  4. लक्ष्य अपने IOS डिवाइस के रूप में चुनें। फिर परीक्षण करने के लिए आपका आवेदन।

  5. ऐप के दोनों संस्करणों पर क्रमशः एक ही परिदृश्य चलाएं।
  6. अब आप अपने 2 समान रनों के लिए तुलना देख सकते हैं।
  7. रन के विवरण देखने के लिए बस किसी भी पंक्ति पर क्लिक करें।

मैं अभी भी तरीकों की तलाश कर रहा हूं, इन चरणों को स्वचालित कैसे करें और कुछ मुख्य समीक्षा स्वचालित रूप से प्राप्त करें। लेकिन अब यह सबसे अच्छा तरीका है, मुझे पता है।

उम्मीद है कि यह मदद करता है।

मेरे लिए यह इस तरह दिखता है:

xcode-instruments-trace-comparison

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