浏览器刷新不进行垃圾收集

2023-12-22

我在所有测试过的浏览器上都发现了这一点——Windows 上的 IE、Firefox、Chrome 和 Safari,以及 Apple 上的 Safari。

据称,浏览器刷新、后退按钮或前向链接应该转储浏览器节点以及 JavaScript 变量和对象等。WebGL 似乎并非如此。我第一次注意到它是在开发一个需要大约 100MB 到 200MB 内存的复杂 WebGL 应用程序时。在开发过程中,我必须进行大量刷新,并且在刷新 5-10 次后我的计算机就会开始变慢并冻结。

经过一番研究,我意识到这不应该是这样。内存泄漏的公认解决方案是刷新页面should释放所有 javascript 对象和变量以及 dom 节点。但看看下面的图片:

那么这是怎么回事呢?在小型应用程序中,这一点不会被注意到,但对于像我的 (orbitingeden.com) 这样的大型 WebGL 应用程序,这是一个真正的问题,我的用户会认为该软件比实际情况更消耗资源。下图显示这些刷新吞噬了我所有的可用内存,因此垃圾收集不起作用和/或 JS 和 DOM 对象没有被释放:

enter image description here
(source: orbitingeden.com http://orbitingeden.com/images/big_memory_after.png)

有人知道强制浏览器进行真正的内存转储的技巧吗?为什么所有的文档都是错误的?


垃圾收集的要点之一是对象是not不用后立即清理。垃圾收集器可以自行确定何时最方便进行收集。

只要有足够的内存可供使用,垃圾收集系统在堆中留下一些未使用的对象是正常的。计算机并不会因为拥有大量未使用的内存而运行得更快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器刷新不进行垃圾收集 的相关文章

  • 需要帮助从数组中为国家/地区着色,保留其余默认颜色

    我需要一些帮助从我创建的数组中获取数据 然后仅对数组中存在的国家 地区进行着色 而不在数组中的其余国家 地区我希望保留为默认颜色 我正在使用 D3 来完成所有这些工作 并且我非常确定我可以通过 D3 实现我需要的目标 但不确定如何实现 我想
  • 如何在phonegap应用程序中使用存储在localStorage中的json feed?

    这就是我正在做的 向我的网络服务器发出请求 响应采用 json 格式 使用 jquery 模板在我的应用程序中呈现回调数据 非常简单 就像魅力一样 问题是 我想在本地存储一些数据 这样我的应用程序就不必每次都从服务器获取它 3g 很慢 每笔
  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 如何使用 JavaScript 将当前页面设置为 about:blank?

    我遇到的情况是服务器可能在当前地址上不可用 因此我想检测到这一点并将页面重定向到 about blank 页面 我该如何使用 JavaScript 来做到这一点 window location href about blank
  • 具有两组子组件的 React 组件

    我正在创建一个组件 需要接收两组子组件并放置在组件的两个不同部分中 let CreditCardForm icons fields gt div div div div icons div div div fields div let Cr
  • Angular.js:未捕获的错误,没有模块:myapp

    我也在尝试引导 angular js 项目 这是我的index html div p Loading p div
  • 如何在 JS Rails 响应中包含 HTML?

    我有一个响应 HTML 和 JS AJAX 查询的 FooController app controllers foo controller rb class FooController lt ApplicationController l
  • JavaScript 中的正则表达式用于验证十进制数字

    我想要 JavaScript 中的正则表达式来验证十进制数字 它最多只允许两位小数 例如 它应该允许10 89但不是10 899 它还应该只允许一个句点 例如 它应该允许10 89但不是10 8 9 尝试使用以下表达式 d d 0 2 如果
  • 防止滚动时自定义 ListView 刷新。我想停止刷新

    我在我的 Android 应用程序中使用自定义 ListView 问题是当我滚动 ListView 时 它会自动清除从 EditText Edittext 作为 list item 输入的数据 并且 ListView 刷新 我想阻止它停止清
  • 如何获取传单标记簇中点击事件的图块?

    这是我的代码 function onMapClick e e originalEvent defaultPrevented true var orig e originalEvent console log orig target map
  • 这种 JavaScript 编码风格有什么问题? (闭包与原型)

    我们一直在讨论如何最好地处理我们的 JS 应用程序中的对象 研究 Stoyan Stefanov 的书 阅读无数关于 新 这个 原型 闭包等的 SO 帖子 事实上有很多 而且它们有这么多相互竞争的理论 表明没有完全明显的答案 让我们假设我们
  • 在overlayImage中应用滤镜的方法在哪里?

    我想在overlayImage中应用一个过滤器 唯一的方法是在渲染后在整个画布上应用过滤器 对此没有内置支持 但很容易 破解 var overlayImageUrl load overlay image first fabric Image
  • 有没有好的 JQuery twitter 小部件可以循环推文?

    我想知道是否有任何 JQuery 小部件提供了循环加载推文的功能 例如在官方小部件中http twitter com about resources widgets widget profile http twitter com about
  • Javascript 中的线性回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在网络浏览器中用 Javascript 进行最小二乘拟合 目前 用户使用 HTML 文本输入输入数
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • 如何检查 Map 或 Set 是否为空?

    对于 JavaScript 中的传统对象 使用以下命令很容易检查它是否为空 Object keys method const emptyObj console log Object keys emptyObj length 0 true i
  • 通过多个回调优雅地传递“点击事件”

    当未登录的用户单击给定的按钮时 我想停止该事件 收集他的 oauth 收集他的电子邮件 如果我没有 然后执行该事件 我想用 javascript 来做所有事情 因为这会让事情变得更加简单 这就是我执行它的方式 我有两个问题 有没有更优雅的方
  • Cosmos DB 中的 MaxItemCount 源选项属性不起作用

    我正在尝试编写一个运行 SQL 查询的简单存储过程 并且我想通过使用 MaxItemCount 属性来限制结果 查询生成 3 个文档 但我只想返回 1 个文档 我使用 MaxItemCount 属性强制执行此限制 但这似乎不起作用 func
  • 限制 jQuery id 字符串吗?

    简而言之 我的问题是字符串在 jQuery 中作为可搜索 id 或可搜索内容有什么限制 更新 我得到了 ID 部分 但不是为什么我什至无法使用该字符串搜索 html 内容 对于任何愿意告诉我一个正则表达式来将模式从 MM dd yy HH
  • 利用重力效果拖动元素

    我想完成类似于 photoshop com 和此网站的功能 http mrdoob com projects chromeexperiments google gravity http mrdoob com projects chromee

随机推荐

  • Pex(测试生成)真的有用吗?

    是的 可以为 Sum 或 Divide 等函数的边界值生成测试 Pex 是一个很好的工具 但更常见的是 我们对业务行为进行测试 让我们考虑一下 Beck 的经典 tdd 书中的示例 Test public void ShouldRoundO
  • 在mySQL数据库中插入多个数组值

    我有两个 PHP 变量 都是字符串 friendslist 2323443 7245 284683 345123 8456234 95432 id 10288272 我关心的表的结构如下 表名称 UserLinks link id user
  • jQuery 滑块教程?

    有谁知道一些解释如何使用 JQuery Slider 的好教程 我找到了一些 但没有一个真正清楚地表达了我所需要的内容 我真正需要弄清楚如何做的是使滑块从 1 0 5 0 包括所有十分之一 变化 并在其更改时根据该值设置隐藏控件 Thank
  • Chrome 扩展存储自定义对象类型剥离原型方法

    我创建了一个在扩展中使用的自定义对象 当我保存 Group 类型 我的对象类型 的对象 然后将这些对象从存储中取出时 原型方法似乎不再存在 现在我在文档中读到对象序列化为对象文字 我似乎不知道如何将方法与对象保持在一起 我在下面提供了小组课
  • 使用FTS查询,你能找到所有包含'abc'的条目吗

    我是全文搜索新手 如何在以下查询中使用 Contains 而不是使用 like 来执行搜索 Select From Students Where FullName LIKE abc Thanks 就像是 SELECT From Studen
  • 如何在输入字段中使用 PercentPipe

    我正在尝试创建百分比输入字段 我正在使用 PercentPipe 来显示百分比 但是当我输入一些数字时出现错误
  • x?.y?.z 是什么意思?

    规范草案C 中的模式匹配 https onedrive live com redir resid 4558A04E77D0CF5 215396包含以下代码示例 Type v x y z if v HasValue var value v G
  • 如何从 MS Access 迁移到 SQL Server 2005?

    我有一个 VB NET Windows 应用程序 可以从 MS Access 数据库中提取信息 该应用程序的主要作用是从各种格式的 Excel 文件中提取信息 标准化文件布局并将其写入 csv 文件 该应用程序使用 MS Access 作为
  • 使用 IntelliJ 部署启用嵌入式 tomcat 的 spring-boot 应用程序

    我有一个基于 spring boot 的应用程序 使用嵌入式 tomcat 我通过部署时没有问题mvn spring boot run goal but当我尝试使用 intelliJ spring boot 插件进行部署时遇到问题 重要提示
  • innodb_lock_wait_timeout 增加超时时间

    我正在使用 MySQL 数据库并尝试在插入后更新记录 因此出现以下错误ER LOCK WAIT TIMEOUT Lock wait timeout exceeded try restarting transaction 所以我通过以下查询减
  • 如何找到我在 VS Code 中使用的主题的文件夹

    我想自定义我正在使用的主题 如何找到它的文件夹 我想自定义 Atom One Darker 主题 但我找不到它的文件夹app extensions 我怎样才能找到它 As the 文档 https code visualstudio com
  • 提取 xarray 中的坐标值

    我想提取坐标变量的值 例如 我创建一个 DataArray 为 import xarray as xr import numpy as np import pandas as pd years arr range 1982 1986 tim
  • 经典 asp:错误“800a01ad”ActiveX 组件无法创建对象

    Getting 800a01ad ActiveX 组件无法创建对象在 64 位 Windows 7 上运行经典 ASP 应用程序时 我已尝试了所有建议的解决方案 但没有成功 我已在 IIS 应用程序池上启用 32 位 我已经使用C wind
  • android ICS 中的“BasicDream”是什么?

    我看了Launcher源码 版本是ICS 有一个RocketLauncher扩展的类BasicDream 什么是BasicDream 什么可以BasicDream做 我可以找到这条线import android support v13 dr
  • CIFilter输出图像nil

    我正在使用核心图像 并将 CIFilter 棕褐色色调应用于我的图像 我在 viewDidLoad 中运行一次过滤器 然后立即调用另一个再次添加过滤器的函数 由于某种原因 当我尝试访问输出图像时 应用程序崩溃并表示输出图像为零 有谁知道为什
  • WPF ComboBox 下拉菜单阻止单击其他控件

    我有一个像这样的简单表格 我打开组合框 当下拉列表打开时 我单击按钮 单击按钮时 我显示一条简单的消息 但当时未显示该消息 当我再次点击它时它会显示 文本框也有同样的问题 当下拉菜单打开时 文本框单击不起作用 为什么组合框在打开时阻止单击其
  • 如何导出每个键的数据表?

    让我们考虑一下数据表 gt dt data table v1 1 10 v2 c rep a 5 rep b 5 v1 v2 1 1 a 2 2 a 3 3 a 4 4 a 5 5 a 6 6 b 7 7 b 8 8 b 9 9 b 10
  • perl / embperl -- IPC::Open3

    我有一个 perl 和 embperl 两种格式的示例程序 Perl 版本可以作为 CGI 运行 但 embperl 版本则不能运行 任何建议或解决方案的指示将不胜感激 操作系统 Linux 版本 2 6 35 6 48 fc14 i686
  • 在克隆存储库进行构建时,如何让 TeamCity 创建 .git 目录?

    我正在尝试在我的 MSBuild 文件中运行自定义命令 它基本上运行 git log 10 并将提交信息存储到文本文件中 问题是 当我尝试运行构建时 它错误地显示 致命 不是 git 存储库 所以我检查了我的项目的TeamCity的工作目录
  • 浏览器刷新不进行垃圾收集

    我在所有测试过的浏览器上都发现了这一点 Windows 上的 IE Firefox Chrome 和 Safari 以及 Apple 上的 Safari 据称 浏览器刷新 后退按钮或前向链接应该转储浏览器节点以及 JavaScript 变量