我有一种遍历网站图标的方法:

function LoopFavIcon(isRed){
 if(!tabInFocus)
 {
    isRed = GetBoolean(isRed, false);

    if(isRed)
    {
        $($('head link')[0]).attr("href", "favicon.ico");
    }
    else
    {
        $($('head link')[0]).attr("href", "favicon_red.ico");
    }
    setTimeout(function f83(){
        LoopFavIcon(!isRed)
    }, 700);
 }}


内存时间轴似乎增加了内存,而没有发生GC:

javascript - 下面的setTimeout JavaScript代码是否泄漏?-LMLPHP

测量的时间间隔可能不足以启动GC,但我对此表示怀疑。提前致谢!

最佳答案

您尚未显示GetBoolean中的内容,但是假设它没有执行不应执行的操作,不,该代码中没有内存泄漏。您只是没有运行足够长的时间来进行GC。 (Chrome的工具还可让您强制执行GC。)

请记住,垃圾收集环境的关键方面之一是该环境将在需要时以及通常在需要时进行垃圾收集。

关于javascript - 下面的setTimeout JavaScript代码是否泄漏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35357576/

10-11 00:52