“捕获堆”在开发人员菜单中做了什么?

时间:2016-10-10 02:09:57

标签: react-native react-native-android

Screenshot

当我点击它时,开发人员菜单消失,两者都没有发生。谷歌搜索这个选项已经没有用了。事实上,第一个google hit最终成为github上包含字符串的strings.xml文件。

1 个答案:

答案 0 :(得分:0)

如果您正在运行的JSC构建是用标志WITH_FB_MEMORY_PROFILING编译的(我想您必须自己编译),那么将有一个暴露给Javascript nativeCaptureHeap(output_filepath)的方法。

为了将它们绑在一起并使按钮正常工作,您需要在Javascript端具有堆转储提供程序。提供程序是具有特定名称HeapCapture的模块。当您按下按钮时,它将加载JS转储提供程序,并在其上调用captureHeap(path)

转储文件将输出到<path>/capture.json

我发现的一个例子:


'use strict';

var HeapCapture = {
  captureHeap: function captureHeap(path) {
    var error = null;
    try {
      global.nativeCaptureHeap(path);
      console.log('HeapCapture.captureHeap succeeded: ' + path);
    } catch (e) {
      console.log('HeapCapture.captureHeap error: ' + e.toString());
      error = e.toString();
    }
    require('NativeModules').JSCHeapCapture.captureComplete(path, error);
  }
};

module.exports = HeapCapture;