我们正在我们的应用程序中进行一些重大的性能调整,因此我们开始使用方法跟踪来查找瓶颈。
乍一看 Ormlite 还不错,但我们发现,例如在一个需要 8 毫秒的查询中,Ormlite 的内部日志需要 6 毫秒(75%)。此外,这些日志调用处于调试级别。
目前我已经尝试(没有成功)将日志级别设置为 ERROR 这样:
- 使用亚行:
adb shell setprop log.tag.ORMLite ERROR
- 与日志返回:
<logger name="com.j256.ormlite" level="ERROR"/>
这是 logcat 中的几行
I/System.out( 4207): 2014-10-01 10:50:14,702 [DEBUG] BaseMappedStatement query-for-id using ...
I/System.out( 4207): 2014-10-01 10:50:14,706 [DEBUG] StatementExecutor executing raw query for ...
I/System.out( 4207): 2014-10-01 10:50:14,709 [DEBUG] SelectIterator starting iterator @-1593957304 for ...
I/System.out( 4207): 2014-10-01 10:50:14,711 [DEBUG] SelectIterator closed iterator @-1593957304 after 1 rows
I/System.out( 4207): 2014-10-01 10:50:14,714 [DEBUG] BaseMappedStatement query-for-id using ...
I/System.out( 4207): 2014-10-01 10:50:14,717 [DEBUG] BaseMappedStatement query-for-id using ...
I/System.out( 4207): 2014-10-01 10:50:14,718 [DEBUG] StatementBuilder built statement ...
I/System.out( 4207): 2014-10-01 10:50:14,719 [DEBUG] BaseMappedStatement prepared statement ...
这是方法跟踪的屏幕截图
关于如何处理这个问题有什么想法吗?
通过方法跟踪,我们看到 LocalLog 正在被使用。如上所述本地日志文档:
您可以通过设置 System.setProperty(LocalLog.LOCAL_LOG_LEVEL_PROPERTY,
“痕迹”)。
可接受的值有:TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL。
我们无法使用设置属性adb shell
所以我们将以下行添加到我们的Application.onCreate
System.setProperty(LocalLog.LOCAL_LOG_LEVEL_PROPERTY, "ERROR");
最后,我们在 logcat 上不再看到 ORMLite 输出,并且性能按预期提高。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)