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

Jef*_*rod 4 debugging android profiling android-traceview

Debug.startMethodTracing()默认情况下使用8MB"缓冲区大小".关于这个缓冲区,我有很多问题.

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

Jef*_*rod 6

我跑了一些测试,发现:

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

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

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

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