小编kam*_*l B的帖子

Chrome Profiler Javascript内存泄漏

我尝试编写带有内存泄漏的javascript代码,以便与Chrome中的探查器一起使用.然而,似乎剖析器没有显示它应该是什么.

这是我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="start_button">Start</button>
<button id="destroy_button">Destroy</button>

<script type="text/javascript" charset="utf-8">
var Leaker = function(){};

Leaker.prototype = {
                init:function(){
                        this._interval = null;
                        this.start();
                },
                start: function(){
                        var self = this;
                        this._interval = setInterval(function(){ self.onInterval(); }, 100);
                },
                onInterval: function(){ console.log("Interval"); }
};

$("#start_button").click(function(){
        if(leak !== null && leak !== undefined){
            return;
        }

        leak = new Leaker();
        leak.init();

});

$("#destroy_button").click(function(){
        leak = null;
});

var leak;

</script>
Run Code Online (Sandbox Code Playgroud)

你可以看到我点击开始按钮时创建了一个新的对象Leaker.当我点击destroy时,该对象被设置为null(注意:但它不会被垃圾收集,因为setInterval仍然可以工作).

问题:然而,当我使用Google Chrome Profiler时,我点击destroy后没有向我显示对Leaker实例的任何引用(但它应该向我显示这样的引用,因为如上所述,setInterval的闭包仍然是抓住它).

在点击销毁按钮之前的Profiler 在点击销毁按钮之前的Profiler

点击破坏按钮后的Profiler(你可以看到我再也找不到leaker实例,而它应该在那里).

点击破坏按钮后的Profiler

在这里控制台,setInterval仍然在运行,尽管探查器告诉我们没有更多的Leaker实例.

Console&setInterval

我是否在垃圾收集工作方式或Chrome分析器上遗漏了什么?

javascript profiler memory-leaks google-chrome

13
推荐指数
1
解决办法
284
查看次数

无法将 proto 文件构建到描述符池中

我正在从事 AI 项目,但我在 Python 方面仍然不是很有经验。

我正在尝试构建和测试这个项目

我遵循了所有说明,但是当我尝试启动 python 脚本时仍然出现此错误:

类型错误:无法将 proto 文件构建到描述符池中!文件“tensorflow_serving/apis/classification.proto”的原型描述符无效:tensorflow_serving/apis/classification.proto:未加载导入“tensorflow_serving/apis/model.proto”。tensorflow.serving.ClassificationRequest.model_spec:“tensorflow.serving.ModelSpec”似乎是在“model.proto”中定义的,它不是由“tensorflow_serving/apis/classification.proto”导入的。要在此处使用它,请添加必要的导入。

有没有人知道我错过了什么?

python tensorflow

6
推荐指数
1
解决办法
2705
查看次数

Python 循环:idx 为 idx(重写为 javascript)

我正在尝试将一些 Python 代码重写为 Javascript。

我不知道如何重写这部分:

zone_indices = [[idx for idx, val in enumerate(classified) if zone + 1 == val] for zone in range(maxz)]
Run Code Online (Sandbox Code Playgroud)

idx for idx, val:将idx放在开头是什么意思?

javascript python

0
推荐指数
1
解决办法
1万
查看次数