当前位置: 首页 > 知识库问答 >
问题:

Android Studio控制台输出?

乜钱明
2023-03-14

当我在Android Studio上运行应用程序时,我看到了一些垃圾收集输出:

05-11 16:18:20.973 12173-12183/com.example.myapp I/art: Background partial concurrent mark sweep GC freed 240546(10MB) AllocSpace objects, 1(20KB) LOS objects, 40% free, 46MB/77MB, paused 1.599ms total 121.211ms 
05-11 16:18:54.304 12173-12183/com.example.myapp I/art: Background sticky concurrent mark sweep GC freed 419692(18MB) AllocSpace objects, 0(0B) LOS objects, 24% free, 58MB/77MB, paused 3.022ms total 201.084ms 
05-11 16:19:15.368 12173-12183/com.example.myapp I/art: Background sticky concurrent mark sweep GC freed 252567(11MB) AllocSpace objects, 0(0B) LOS objects, 14% free, 65MB/77MB, paused 1.955ms total 160.700ms 
05-11 16:19:28.274 12173-12183/com.example.myapp I/art: Background partial concurrent mark sweep GC freed 554566(28MB) AllocSpace objects, 0(0B) LOS objects, 39% free, 48MB/80MB, paused 1.916ms total 200.094ms

这是什么意思?(我正在阅读大型csv文件,其中有更多70k行)

共有1个答案

杜翰林
2023-03-14

从ART开始,Android有两个分配空间:非大对象空间(堆)和大对象空间(LOS)。非大型对象空间主要用于普通大小的对象。大对象空间主要用于大对象(比如位图)。

05-11 16:18:20.973 12173-12183

com.example.myapp I/art: Background partial concurrent mark sweep GC freed 240546(10MB) 

垃圾收集器释放了240546个对象,从非大对象空间回收了10兆字节。

AllocSpace objects, 1(20KB) LOS objects, 40% free, 46MB/77MB, paused 1.599ms total 121.211ms 05-11 16:18:54.304 12173-12183 

垃圾收集器释放了1个对象,从大对象空间中回收了20 KB。

如果不读取读取CSV文件的类或方法,就很难有根据地猜测垃圾收集器为何会以日志显示的方式做出反应。但仅从日志中的趋势来看,垃圾收集器似乎正在从非大对象空间释放大量对象,而在大对象空间中几乎没有分配。

参考文献:http://developer.android.com/tools/debugging/debugging-memory.html#LogMessages

 类似资料:
  • 问题内容: 通过控制台进行任何输入的数据类型(如我使用BufferedReader类所做的那样)为String。之后,我们将其类型转换为需要查询的数据类型(如Inter.parseInt()为整数)。但是在C语言中,我们可以接受任何输入原始数据类型,而在Java中,所有输入类型都是Neccerily String。为什么是这样? 问题答案: 控制台输入实际上以一系列字节而不是字符串的形式读入。这是

  • 我一直在尝试编码来查找给定数组元素的LCM。我的代码如下 我的问题是,当我输入时,输出控制台会冻结。我尝试了另一种没有while循环的方法。也就是说,消除了while循环,并在最后添加了一个if循环。 但现在编译器抛出一个错误,指出并非所有代码路径都返回一个值。有人能帮我解决代码中的问题吗?我是一名编程初学者。提前谢谢!!

  • 问题内容: 程序应在中列出卷。 例如:我从vollist.java类获得此输出。 控制台输出: 如何在我的控制台中获得此控制台输出。 那只会显示row1-> vol1 row2-> vol1 ............如何获得类似于控制台row1-> vol1 row2-> vol2的输出(计数) 问题答案: 定义并实现您的TableModel(在这种情况下,扩展AbstractTableModel

  • 问题内容: 如果我有多个go例程,并且其中两个或两个以上例程决定需要打印某些内容,那么它们是否可能彼此中断? 例如: 是否有可能一个常规程序开始打印(),而另一个常规程序中断()和原始装订()? 我尝试自己运行它并检查输出,它 看起来 不错,但是如何确定? 问题答案: 是的,有可能,尽管GOMAXPROCS = 1不会显示任何内容。当使用更多goroutine,更大的行和更多的线程运行时,它们将显

  • 问题内容: 我在使python打印正确对齐的文本时遇到麻烦。我已经尝试了所有我知道的东西,但是结果还是一样,这很烦人! 这是我在控制台中得到的 这是我的代码。 问题答案: 使用做一个右对齐字段长45个字符。并用于制作左对齐字符串。还可以考虑将线条打印提取为一个功能- 这样一来,您就可以在一个地方轻松更改它。像这样:

  • 问题内容: 我只有一种方法。如何检查System.out.println()并将Scanner替换为使用JUnit自动输入值? PS,请提供一些解决方案… 问题答案: 理想情况下,提取尴尬的依赖关系,以便您可以在没有依赖关系的情况下进行测试。更改为简单: (考虑使用a 代替for 。) 然后,您实际上不需要进行单元测试-但您可以使用基于的进行测试,并基于的输出进行测试,从而提供所需的任何输入并检查