如果缓冲区填满,startMethodTracing()是否会返回错误?

时间:2012-05-17 20:19:50

标签: android debugging profiling android-traceview

默认情况下,

Debug.startMethodTracing()使用8MB“缓冲区大小”。我对这个缓冲区有很多疑问。

  1. 如果缓冲区已满足容量,或者只是停止记录,则会抛出错误吗?
  2. 无论写入多少或几乎没有数据,缓冲区是否仍保持固定的8MB?
  3. 如果我手动指定bufferSize参数,那么单位是多少?字节? MB?
  4. 我尝试将缓冲区大小增加到20MB左右并退出应用程序。我需要记录大约20个实时秒的计算值。有没有办法记录超过20MB左右的数据?我假设它首先存储在内存中,否则将它存储到SD卡就没有问题了。

1 个答案:

答案 0 :(得分:6)

我进行了一些测试并发现:

  1. 如果缓冲区已满足容量,则会显示以下“信息”级别的LogCat消息:TRACE STOPPED (NOTE: overflowed buffer): writing X records

  2. 缓冲区介于0到8MB之间,具体取决于写入的数据量。

  3. bufferSize参数以字节为单位指定。

  4. 要增加模拟设备RAM的数量,请打开AVD管理器并编辑虚拟设备。单击新硬件按钮,然后选择设备柱塞尺寸。在我的机器上,我可以输入的最大值是1GB(值1000)。