2008-11-02 12 views
6

के लिए कोड प्रोफाइलिंग/प्रदर्शन विश्लेषण उपकरण विंडोज सीई/मोबाइल एप्लिकेशन में प्रदर्शन बाधाओं का विश्लेषण करने के लिए, विजुअल स्टूडियो के अलावा, आप कौन से टूल्स जानते हैं? मैं सीई/मोबाइल के लिए एकटाइम की तरह कुछ ढूंढ रहा हूं, मूल कोड में संकलित सी/सी ++ अनुप्रयोगों को प्रोफाइल करने के लिए।विंडोज सीई/मोबाइल

उत्तर

5

मुझे मूल विकास के लिए विंडोजमोबाइल के लिए ऐसे कोई उपकरण नहीं मिला है।

मैंने पाया सबसे नज़दीकी एनटेक टूलसेट (कोडस्निच/प्रोमैन) है, लेकिन वे वास्तव में उपकरण को प्रोफाइल नहीं कर रहे हैं। http://www.entrek.com/products.htm

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

MSDN डॉक्स से:

/callcap विकल्प शुरुआत और प्रत्येक समारोह के अंत में हुक की रूपरेखा के लिए कॉल को सम्मिलित करने के संकलक का कारण बनता है।

आपको कॉलकैप स्विच के बिना प्रोफाइलिंग हुक संकलित करना होगा। यदि आप कॉलकैप स्विच के साथ प्रोफाइलिंग हुक फ़ंक्शंस संकलित करते हैं, तो फ़ंक्शन अनन्य रिकर्सिव कॉल करेगा।

निम्न उदाहरण कोड, Callcaphooks.c, एक रूपरेखा हुक, समारोह, _CAP_Enter_Function से पता चलता callcap बिना संकलन के लिए। (यदि OEM इसके लिए समर्थन जोड़ा) बॉक्स से बाहर

// File: callcaphooks.c 

#include <stdio.h> 
int main(); 

void _CAP_Enter_Function(void *p) 
{ 
    if (p != main) 
     printf("Enter function (at address %p) at %d\n", 
      p, GetTickCount()); 
     return; 
} 
void _CAP_Exit_Function(void *p) 
{ 
    if (p != main) 
     printf("Leaving function (at address %p) at %d\n", 
      p, GetTickCount()); 
    return; 
} 
+0

धन्यवाद, शेन। जैसा कि आपने कहा था, ठीक वही नहीं जो मैं खोज रहा था। लेकिन अभी भी एक महान संकेत है। मेरे पास प्रोफाइलिंग के लिए पहले से ही कुछ उपयोगिता कक्षाएं हैं, लेकिन अब तक मैं केवल संदिग्ध कोड में मैक्रोज़ के माध्यम से उन्हें मैन्युअल रूप से जोड़ रहा था। –

0

यदि आप .NET CF विकास कर रहे हैं, तो Power Toys for .NET CF 3.5 उपयोगिताओं के लिए देखें जो बाधाओं को दूर करने में आपकी मदद कर सकते हैं, विशेष रूप से स्मृति से संबंधित।

+0

क्षमा करें, मैं उल्लेख किया जाना चाहिए था, मैं पावर खिलौने के बारे में पता था, लेकिन मेरे मामले में वे क्योंकि कोड निवासी है नहीं किया जा सकता। –

9

Windows CE Remote Call Profiler का समर्थन करता है। WinMo छवियों, मुझे विश्वास है, आमतौर पर इसके लिए छवियों में पहले से ही समर्थन है। सीई के लिए, आपको IMAGEPROFILER पर्यावरण परिवर्तनीय सेट (प्रोजेक्ट गुणों को प्रस्तुत करना) की आवश्यकता है।

एमएसडीएन में स्पष्ट नहीं है कि प्लेटफ़ॉर्म बिल्डर के साथ निर्मित ऐप का उपयोग कैसे करें, लेकिन यह वास्तव में बहुत आसान है। आपको कंपाइलर कमांड लाइन में/कॉलकैप स्विथ जोड़ना होगा और अपनी लिंकर सेटिंग्स में cecap.lib जोड़ना होगा।

बेशक आपको प्रोफाइलर डेटा को कैप्चर और प्रदर्शित करने के लिए एक टूल की आवश्यकता होगी। इसके लिए आप प्लेटफार्म बिल्डर (5.0 या 6.0) के मूल्यांकन संस्करण का उपयोग कर सकते हैं (eval निःशुल्क है) या eVC 4.0 (भी निःशुल्क)।

प्रोफाइलर के उपयोग पर अधिक जानकारी के लिए, सीई कोर टीम के मुकदमा लोह ने इसके बारे में कुछ ब्लॉग किया है।

+0

+1 इस सुझाव के लिए धन्यवाद। यह एक जीवन बचतकर्ता है :) मेरे ब्लिटर को इसके प्रोफाइल किए गए डेटा के साथ पागल की तरह अनुकूलित किया गया है। – legends2k

3

मैंने विंडोज मोबाइल के लिए एक कॉल ग्राफ प्रोफाइलर लिखा है। यह वर्तमान में बीटा चरण में (जनवरी 2010 तक) है, और इसे मुफ्त में डाउनलोड किया जा सकता है।

http://www.codeprophet.co.cc

HTH

-Zak

+0

वादा करता है, मैं इसे आज़मा दूंगा। –

+0

ऐसा लगता है कि प्रोजेक्ट http://codeprophet.co.uk पर ले जाया गया है – oscode