2011-10-21 6 views
8

मुझे पता चलेगा कि लॉगिंग एप्लिकेशन प्रदर्शन को कम कर सकती है या नहीं? इसके अलावा, कृपया मुझे एंड्रॉइड एप्लिकेशन प्रदर्शन बढ़ाने के लिए कुछ सुझाव दें।क्या बहुत से लॉग लेखन एंड्रॉइड एप्लिकेशन प्रदर्शन को कम करता है?

+0

केवल डीबगिंग के लिए लॉग का उपयोग करें ... जब आप वास्तविक निर्माण अपलोड करते हैं तो सभी लॉग संदेश हटाएं .. – Krishnabhadra

+1

अत्यधिक लॉगिंग प्रदर्शन पर थोड़ा प्रभाव डाल सकती है, लेकिन आम तौर पर नहीं। (@gt_ebuddy उत्तर में लिंक देखें)। डीडीएमएस से जुड़े विकास को करने से ऐप धीमा हो जाएगा। – cistearns

+1

[लॉग.d और प्रदर्शन पर प्रभाव] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/3773252/log-d-and-impact-on-performance) – rds

उत्तर

15

बेहतर है कि आप अपने ऐप के वास्तविक निर्माण में लॉग न दिखाएं।

एंड्रॉयड प्रकट में बारी इसे बंद डीबग करने की स्थापना द्वारा:

<application android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:debuggable="false"> 

एक और तरीका है

अपनी खुद की लकड़हारा वर्ग बनाएँ: लॉग निष्पादित करने से पहले मोड डीबगिंग के लिए

चेक। यह डिबगिंग मोड और तैनाती अनुप्रयोग के बीच एकल बिंदु संशोधन की अनुमति देता है और लॉग फ़ाइल में लिखने जैसी अतिरिक्त चीजों को करने की अनुमति देता है।

import android.util.Log; 
public class MyLog { 
    private static final boolean isDebug = false;; 
    public static void i(String tag, String msg) { 
     if (isDebug) { 
      Log.i(tag, msg); 
     } 
    } 
    public static void e(String tag, String msg) { 
     if (isDebug) { 
      Log.e(tag, msg); 
     } 
    } 
} 


अधिक जानकारी के लिए http://rxwen.blogspot.com/2009/11/logging-in-android.html

पढ़ सकते हैं और इसलिए प्रश्नोत्तर:

Log.d and impact on performance

Android Logging - How to clear for better performance

+4

मेरे अनुभव में मैनिफेस्ट सेटिंग का लॉग पर कोई प्रभाव नहीं पड़ता उत्पादन। यदि आपके डीबगर आपके एप्लिकेशन से संलग्न हो सकता है तो यह बस नियंत्रित करता है। – cistearns

+0

** बोल्ड ** धन्यवाद –

+0

@cistears कार्यक्षमता बढ़ाने में डीबग्रेबल = "झूठी" मदद सेटिंग करता है? –

1

उपयोग 'अगर' लॉग लेखन से पहले बयान।
एप्लिकेशन रिलीज होने पर आप लॉग को अक्षम कर सकते हैं।

उदाहरण:

public class LogTest extends Activity { 

private static final String TAG = "YOUR_LOG_TAG_NAME"; 
private static final boolean mDebug = true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //--[Start Log example]----------------------------------------- 
    if(mDebug) Log.d(TAG, "Log Write Test"); 
    //--[End Log example]----------------------------------------- 
} 

}

1

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

आपके अंतिम ऐप से विशेष रूप से प्रोगार्ड से जुड़े लॉगकैट को हटाने के कई तरीके हैं। ProGuard मेरे लिए काम नहीं किया है, लेकिन वहां से बाहर शानदार विचारों के बारे में बहुत सारे शानदार विचार हैं जैसे कि उन्हें हटाने के तरीके।

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

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