【问题标题】:Does startMethodTracing() return an error if the buffer fills?如果缓冲区已满,startMethodTracing() 是否会返回错误?
【发布时间】:2012-05-25 10:55:10
【问题描述】:
Debug.startMethodTracing() 默认使用 8MB 的“缓冲区大小”。我有很多关于这个缓冲区的问题。
- 如果缓冲区已满,是否会引发错误,还是会停止记录?
- 无论写入多少数据,缓冲区是否保持固定的 8MB?
- 如果我手动指定
bufferSize 参数,单位是什么?字节? MB?
- 我尝试将缓冲区大小增加到超过 20MB 左右,然后应用程序退出。我需要记录大约 20 秒的实时计算。有没有办法记录超过 20MB 左右的数据?我假设它首先存储在内存中,否则将其存储到 SD 卡中没有问题。
【问题讨论】:
标签:
android
debugging
profiling
android-traceview
【解决方案1】:
我进行了一些测试,发现:
如果缓冲区已满,则会显示以下“信息”级别 LogCat 消息:TRACE STOPPED (NOTE: overflowed buffer): writing X records
缓冲区在 0 到 8MB 之间,具体取决于写入的数据量。
bufferSize 参数以字节为单位。
要增加模拟设备内存的数量,请打开 AVD 管理器并编辑您的虚拟设备。单击新硬件按钮并选择设备内存大小。在我的机器上,我可以输入的最大容量是 1GB(值 1000)。