`
yfgcq
  • 浏览: 1366 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

js内存释放问题

IE 
阅读更多
function aa()
{ var obj={};
//obj=document.getElementById("DivElement");
// document.getElementById("DivElement").expandoProperty=obj;
obj.bigString=new Array(300).join(new Array(2000).join("XXXXX"));
obj=null;alaMemGarbage();
//js好像是引用计数系统,每个所引用的对象都会保留一个计数,以获悉有多少对象正在引用它。如果计数为零,该对象就会被销毁,其占用的内存也会返回给堆
//obj已经清空了,但这里为什么没有内存回收???
}
在IE7和firfox下,这个函数参数的内存占用都无法释放,为什么?
请高手帮我解释下
分享到:
评论
3 楼 hax 2008-02-20  
yfgcq 写道
在IE7和firfox下,这个函数参数的内存占用都无法释放,为什么?
请高手帮我解释下


基本常识:垃圾回收不是时刻进行的。引擎只在需要的时候才进行回收。

JScript中可以调用CollectGarbage()强制执行。Rhino中可以调用gc()强制执行。
2 楼 xxpniu 2008-02-20  
应该是IE 垃圾回收机制问题吧
以前在MSDN看见过垃圾回收的问题`
1 楼 yfgcq 2008-02-20  
var obj=[];
for(var i=0;i<1000;i++)
{
//第一种结构
obj[i+",0"]=[{"ID":3475,"Name":"测试","Telephone":"22222222"},{"ID":3476,"Name":"测试","Telephone":"22222222"}];
//第二种结构
//var obj1[i+",0"]='3475,"测试",22222222|3476,"测试",22222222'

}
好像第二种结构内存占用要少得多

for(var i=0;i<1000;i++)
{
obj[i+",0"]=null;
}
obj=[];
//都清理空了,内存好像没能够释放?
//刷新一次页面,内存也变化一次

//下面这样处理,感觉内存释放了,
//但这样好像逻辑上有问题哟
for(var i=0;i<1000;i++)
{
obj[i+",0"]=null;
obj=[];
}

相关推荐

    js 内存释放问题

    在讨论JavaScript内存释放问题时,首先需要了解JavaScript的内存管理机制。JavaScript是一种自动垃圾回收的语言,它使用垃圾回收机制自动管理内存。在大多数情况下,开发者无需手动进行内存释放,但是了解内存管理和...

    javascript 数组内存释放

    本篇文章将深入探讨JavaScript数组的内存释放机制,以及如何有效地管理数组内存。 首先,理解JavaScript的内存管理机制至关重要。JavaScript使用了一种称为垃圾回收(Garbage Collection, GC)的自动内存管理系统,...

    js内存泄露问题

    JavaScript内存泄漏是一个重要的主题,尤其是在开发复杂且性能敏感的Web应用程序时。JavaScript是一种动态类型语言,它在浏览器环境中运行,并依赖于垃圾收集机制来管理内存。然而,由于一些特性及浏览器实现的差异...

    javascript内存泄露问题的解析

    JavaScript内存泄露问题的解析 JavaScript内存泄露问题是一种常见的bug,它会导致系统崩溃和性能下降。内存泄露是指系统不能正确地管理内存分配的情况,这可能会导致程序调用失败、执行减慢等问题。 在JavaScript...

    JavaScript的内存释放问题详解

    本文将详细探讨JavaScript内存释放的机制、内存管理、对象失效和释放的时机以及内存回收过程。 首先,JavaScript的内存管理基于自动垃圾回收机制。这意味着开发者不需要手动分配或释放内存,JavaScript运行环境会在...

    关于extjs中tabPanl关闭后的内存释放

    ### 关于ExtJS中TabPanel关闭后的内存释放详解 在前端开发领域,特别是在使用ExtJS框架构建复杂Web应用时,内存管理是一个不容忽视的关键环节。本文将深入探讨ExtJS中TabPanel组件在关闭后如何有效地释放内存,以及...

    electron-vue开发环境内存泄漏问题汇总

    4. 使用JavaScript的垃圾回收机制合理释放不再使用的对象。 最后,本文还提到了一些相关的依赖项,如Vue和Electron的版本,以及开发和生产环境中所用到的各种npm包和工具。这些信息有助于理解在特定版本的Electron...

    JS 内存检测工具

    除了IEJSLeaksDetector,还有其他一些流行的JavaScript内存检测工具,如Chrome DevTools、Firefox Developer Tools、SAP Memory Inspector等,它们同样可以帮助开发者有效地管理和优化JavaScript应用的内存使用。...

    js内存管理及优化总结和文档

    由于JavaScript是动态类型语言,其内存管理与编译型语言有所不同,因此理解JS的内存管理和优化对于提升应用程序性能至关重要。 **一、JS内存管理** JS的内存管理主要依赖于垃圾收集机制(Garbage Collection, GC)...

    angular4 JavaScript内存溢出问题.docx

    在开发过程中,Angular 4应用可能会遇到JavaScript内存溢出的问题,尤其是在执行`build --prod`命令时。这种问题通常表现为编译过程中出现错误,提示内存不足。错误信息中提到的`Mark-sweep`和`GC in old space ...

    JavaScript 内存机制分析

    ### JavaScript内存机制详解 #### 简介 在探索JavaScript内存机制之前,我们先了解一些基础知识。每一种编程语言都有其独特的内存管理机制。例如,C语言提供了低级别的内存管理功能,如`malloc()`和`free()`等函数...

    JS内存泄露demo

    然而,随着Web应用变得越来越复杂,JS内存管理成为了一个关键问题。内存泄露是JS开发者需要特别关注的一个方面,它可能导致应用程序性能下降,甚至崩溃。本文将深入探讨JS内存泄露及其常见实例。 内存泄露通常发生...

    Js内存泄漏及解决方案

    在JavaScript中,内存泄漏是指由于某种原因导致不再使用的变量或对象仍然占据着内存空间,从而无法被垃圾回收机制(Garbage Collection, GC)释放,这将导致应用程序逐渐消耗更多的内存,最终可能导致性能下降甚至...

    JS 内存溢出,调试工具介绍

    - **第三方库**:如LeakCanary、memwatch-next等可以帮助检测JavaScript内存泄漏。 总之,理解和掌握JS内存管理及调试工具是解决内存溢出问题的关键。通过定期检查和优化代码,可以有效地预防和解决内存泄漏,提高...

    JAVASCRIPT实现的CPU内存监控

    虽然`performance.memory`提供了内存使用情况,但JavaScript本身没有提供释放内存或精确控制内存的方法。开发者需要依赖良好的编程习惯,如及时释放不再使用的引用,避免内存泄漏。 5. **事件循环和垃圾回收**: ...

    JavaScript内存泄漏的处理方式

    在探讨JavaScript内存泄漏的处理方式前,有必要了解内存泄漏的含义。内存泄漏通常指的是程序不再使用的内存未能被释放,导致内存消耗不断上升。即使在高级语言如JavaScript中,这一问题亦可能出现,尽管它拥有垃圾...

    Javascript内存泄露

    ### JavaScript内存泄露详解 #### 一、什么是JavaScript内存泄露? 在JavaScript编程中,内存泄露指的是在浏览器中不再使用的变量或对象占用的内存没有被及时回收,导致可用内存逐渐减少的现象。这种现象通常发生...

    内存javascript脚本

    ### JavaScript内存管理机制 #### 自动内存管理 JavaScript采用自动内存管理机制,这意味着开发者无需手动分配或释放内存。这一特性简化了编程过程,但也可能导致一些难以察觉的问题,比如内存泄漏。 #### 垃圾...

Global site tag (gtag.js) - Google Analytics