मैं खाता लोड करने और इसे क्लाइंट में स्थानांतरित करने के लिए MySQL कनेक्टर .NET का उपयोग कर रहा हूं। खाते के बच्चे तत्वों को लोड करने पर विचार करते हुए यह ऑपरेशन बल्कि गहन है।क्या डीबग और रिलीज के बीच कोई (प्रदर्शन) अंतर है?
डीबग मोड में, खाते को लोड करने के लिए सबसे अधिक, 1 सेकंड लगता है। औसत 500 मिमी होगा। रिलीज मोड में, खाते को लोड करने में 1 से 4 सेकंड लगते हैं। औसत 1500ms होगा।
चूंकि कोई #if DEBUG
निर्देश या मेरे कोड की तरह नहीं है, तो मुझे आश्चर्य है कि अंतर कहां से आ रहा है।
क्या कोई प्रोजेक्ट बिल्ड विकल्प बदल सकता है? या क्या इसे MySQL कनेक्टर .NET के साथ करना है जिसमें बिल्ड मोड के आधार पर अलग-अलग व्यवहार होंगे?
संपादित करें: निगरानी की टिकटें।
Debug (Average: 213000 ticks)
730000
320000
60000
50000
190000
130000
210000
180000
160000
110000
390000
270000
150000
190000
230000
210000
150000
200000
190000
140000
Release (Average: 4404500 ticks)
12940000
170000
180000
80000
80000
130000
120000
5060000
5090000
130000
50000
10430000
25160000
150000
160000
130000
17620000
10160000
100000
150000
तुलना:
रिलीज 20x लेता है समय डीबग लेता है (औसत तुलना)।
4.404.500/213.000 = 20
अब पहला ऑपरेशन वास्तव में लंबे समय तक है, लेकिन सामान्य रूप में, तो जारी करने के लिए अन्य सभी बार कर रहे हैं। कोई विचार?
EDIT 2: मैंने एक व्यापक परीक्षण भी जोड़ा जो कुल समय की गणना करता है। 50 खाता भारों के लिए, डीबग में औसत 4 सेकंड और रिलीज में 40 सेकंड लगते हैं। मैं इस पर काफी हताश हो रहा हूं - यह मेरे आवेदन के लिए एक गंभीर प्रदर्शन मुद्दा है। क्या किसी को यह तय करने का अनुमान है कि इसे कैसे ठीक किया जाए?
आप खाता लोड करने में लगने वाले समय को कैप्चर कर रहे हैं? क्या आप लूप के भीतर कई बार ऑपरेशन कर रहे हैं और औसत ले रहे हैं? या आप हर बार एक नई प्रक्रिया के रूप में आवेदन लॉन्च कर रहे हैं? –
एक अंतर है, सिवाय इसके कि यह आम तौर पर अन्य तरीका है क्योंकि डीबग मोड iirc में कोड ऑप्टिमाइज़ेशन नहीं होता है। मैं निश्चित रूप से कुछ कह सकता हूं, कि mysql .net कनेक्टर ने कभी भी ऐसी किसी भी परियोजना में अपने लिए ऐसा व्यवहार नहीं किया है जिस पर मैंने काम किया है। –
एक प्रोफाइलर का प्रयोग करें। कुछ और अनुमान लगा रहा है। –