c – 假人的高内存使用率

前端之家收集整理的这篇文章主要介绍了c – 假人的高内存使用率前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚重新启动我的firefox网络浏览器,因为它开始出现口吃和放慢速度.由于(我的理解)过多的内存使用,这种情况每隔一天发生一次.
我注意到它开始时需要40M,然后,当我注意到减速时,它会进入
1G和我的机器没有什么可提供的,除非我关闭其他应用程序.
我试图理解为什么要解决这么难的问题背后的技术原因
五个.

Mozilla有一个关于高内存使用量的页面

http://support.mozilla.com/en-US/kb/High+memory+usage

但我正在寻找一个更深入和令人满意的解释.不是超级技术,但足以让这个问题更受尊重,请在这里取悦人群.

我已经在思考的一些问题(它们可能很愚蠢,所以放轻松):

>当我关闭所有标签时,为什么内存使用量一直没有下降?
>为什么扩展/主题/插件内存使用没有限制?
>如果长时间打开,为什么内存使用会增加
>为什么内存泄漏如此难以找到并修复?

应用和语言不可知的答案也非常感谢.

解决方法

浏览器就像人一样 – 他们变老了,他们变得臃肿,而且他们会因为更年轻和更瘦的模特而被抛弃.

Firefox不仅仅是一个浏览器,它还是一个生态系统.
虽然我觉得最近的版本非常臃肿,但核心产品通常是稳定的.

但是,firefox是一个生态系统/平台:

1)写得不好的插件

2)在其中执行的编写错误的JavaScript代码.

3)Adobe Flash作为重量级视频和写得不好的广告脚本的平台,例如“用鸭子打奥萨马·本·拉登”以降低抵押贷款利率并获得免费的iPod *(需要参与).

4)Quicktime和其他媒体播放器.

5)一些嵌入式Java代码.

内存泄漏的描述表明运行错误的脚本或请求更多内存的第三方工具.如果你曾经在Mac上运行Flash,那几乎是一个给定的,cpu利用率为90%.

大多数编程语言的目标不是为了拯救你,而是为你提供自救的工具.你可以用任何语言编写带有内存泄漏的错误和臃肿的代码,包括带有垃圾收集的语言.第三方工具通常没有平台本身那么好.尝试做太多的网页也并不少见.

如果你想做一个实验来证明这一点,可以使用Firefox获取一个mac并转到Stack Overflow这样写得很好的网站并花一个小时.你的内存使用量不应该增长太多.然后花5分钟访问Myspace上的随机页面.

现在让我尝试根据我的猜测回答你的问题,因为我不熟悉源代码

  • When I close all tabs,why
    doesn’t the memory usage go all the
    way down?

虽然每个浏览器实例都是具有自己内存的独立进程,但单个窗口中的选项卡都在同一进程中. Firefox曾经有某种内存缓存,只是关闭选项卡不会立即从内存缓存中清除相关信息.如果您将选项卡重新打开到同一站点,则可能会获得更好的性能.有一些高级选项允许你禁用它,比如browser.cache.memory.enable.或者只是搜索禁用内存缓存.

* Why is there no limits on extensions/themes/plugins memory usage?

出于同样的原因,Windows或Linux没有对应用程序进行审查,您可以在它们上运行.这是一个开放的环境,你承担风险.如果您想要一个“验证”应用程序和扩展程序的环境,Apple可能就是这样:)

* Why does the memory usage increase if it's left open for long periods of time?

并非脚本中的所有计算和操作都具有可视化表现形式.一个脚本可能在后台做一些事情(比如请求额外的材料,预取东西,只是bug),即使你没有看到它.

* Why are memory leaks so difficult to find and fix?

这是关于簿记.想想你曾经借过的每件物品(甚至是钢笔),或者有人在你的一生中借来的东西.他们都被占了?内存泄漏的方式相同(从系统借用内存),除了传递项目.然后看看你桌子上的东西,你是否留下任何东西,因为’你可能很快就会需要它’,即使你可能不会这样做?相同的故事.

原文链接:https://www.f2er.com/c/115014.html

猜你在找的C&C++相关文章