我想知道日志记录是否会降低应用程序性能? 另外,请给我一些提示,以提高android应用程序的性能。是否有太多的日志写入会降低Android应用程序的性能?
回答
最好不要在应用程序的实际构建中显示日志。
关闭它在Android清单通过设置可调试:
<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
和所谓的问题答案:
根据我的经验,清单设置对日志没有影响输出。它只是简单的控制一个调试器是否可以连接到你的应用程序 – cistearns
** bold ** Thanks –
@cistears设置debuggable =“false”是否有助于提高效率? –
使用 '如果' 语句日志写入之前。
您可以在应用程序发布时禁用日志。
例如:超过
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]-----------------------------------------
}
}
任何文本输出将您的应用程序变慢,甚至桌面应用程序。过度的日志记录确实会减慢速度,但基本上需要发送大量疯狂的数据,顺便说一下,这对于for或while循环来说并不困难。在某些时候记录在后台发生的事情包括字符串操作,文本渲染,缓存管理,数据过滤,日志长度限制,并且列表继续进行。
有几种方法可以从最终的应用程序中删除logcat,尤其是那些涉及ProGuard的应用程序。 ProGuard没有为我工作,但有很多关于如何删除它们的精彩想法,包括像sed这样的脚本程序。
- 1. 使用PNG是否会降低Android应用程序的性能?
- 2. 是否太多symfony中的服务会降低其性能?
- 3. 在PHP中包含太多文件是否会降低性能?
- 4. Ajax是否会降低性能?
- 5. log.debug是否会降低性能
- 6. #defines是否会降低性能?
- 7. SVN(Subversion)会降低系统/应用程序的性能吗?
- 8. n层体系结构是否会降低应用程序性能
- 9. Google Analytics(分析)降低Android应用程序的性能
- 10. 用户工作空间太多会降低TFS性能吗?
- 11. 增加线程数是否会降低java的整体性能?
- 12. rails应用程序的性能由于日志而下降
- 13. 是否有大量事件处理程序降低性能?
- 14. 向MySQL引入外键是否会降低性能
- 15. 额外的数据是否会降低Python对象的性能?
- 16. 事件日志名称不是“应用程序”,而是日志写入“应用程序”日志
- 17. 该程序是否正确写入蓝牙低能量特性?
- 18. 在Rails web应用程序中呈现更多偏见会降低性能吗?
- 19. Imageview降低我的应用程序的性能
- 20. 导入模块(但不使用它)是否会降低Python的性能?
- 21. 事务块是否会降低SQL Server的性能?
- 22. 空的.ctor和.dtor是否会降低性能?
- 23. 写入应用程序事件日志
- 24. ProgressDialog或ProgressBar会降低运行Android 4.1的应用程序
- 25. SmtpClient.SendAsync是否降低或提高性能?
- 26. 在MySql中使用IN运算符是否会降低性能?
- 27. 调用方法是否会降低性能?
- 28. 记录日志语句是否会影响应用程序性能?
- 29. 在C#中写入事件日志 - 写入应用程序日志时是否需要使用EventLog.CreateEventSource?
- 30. OpenGL ES着色器降低了太多的性能
仅使用日志进行调试...当您上传实际版本时删除所有日志消息 – Krishnabhadra
过度的日志记录对性能影响很小,但通常不会。 (请参阅@gt_ebuddy答案中的链接)。在开发中连接到DDMS会减慢应用程序的速度。 – cistearns
[Log.d和对性能的影响]可能的重复(http://stackoverflow.com/questions/3773252/log-d-and-impact-on-performance) – rds