精华内容
下载资源
问答
  • 一点浏览器内存吗 世界最小浏览器使用评测
    千次阅读
    2021-06-06 18:08:53

    ee213f18aa1705b49bb8793723735251.gif

    为了电脑更顺畅的操作很多用户不喜欢下载体积过大的软件,如果有一款精致功能且全的迷你浏览器该多好。近日搜狗正式发布全新产品一点浏览器,你会问一点浏览器占内存吗体积打不打,下面我们就来看看号称世界最小浏览器使用评测。

    一点浏览器占内存吗 世界最小浏览器使用评测2c24aecbae10c78dfd1e4fbd27435f28.png

    3月23日,搜狗正式对外宣布,推出全新产品——一点浏览器(www.yidianliulan.com),其安装包仅有约0.5M(相当于一张图片)大小,号称全球最小的浏览器软件,并且独家推出“右键快速关闭网页”功能。众所周知,浏览器作为最常用的电脑软件之一,拥有庞大的用户群体。一点浏览器团队此次深耕用户需求,以简约的产品设计和人性化的功能体验推出了这一款 “小而美”的产品。

    有研究表明,多数用户每天会来回移动鼠标数百次来关闭网页。一点浏览器独辟蹊径推出人性化的“右键快速关闭网页”功能,极具创新性和实用性。该功能开启后,用户关闭当前网页只需单击鼠标右键即可,最大程度上实现对浏览器基础功能的简化。同时,复制、粘贴和图片保存等最常用的网页右键功能仍能顺畅使用。

    此外,一点浏览器的完整安装包仅约0.5M,远低于各主流浏览器几十兆的“标配”,用户只需要几秒钟,便可完成下载安装。“一点”拥有超快的启动速度以及精简的功能配置,在保障用户浏览网页的需求下,剔除复杂、多于的功能设计,展现出浏览器的“简约之美”。

    一点浏览器产品负责人表示,“安装了一点之后,那些讨厌体积庞大、设计呆板的浏览器用户群体,就可以拥有一款体现简约的专属浏览器,而这也是我们开发、设计一点浏览器的初心。”

    世界最小浏览器使用评测就为大家介绍到这里,一点浏览器占内存的问题一点也不存在哦。

    更多相关内容
  • K-Meleon 是一個速度超快、高度自訂、輕量化的網路瀏覽器,採用 Mozilla 開發、用於 Firefox 的 Gecko 佈局引擎。K-Meleon 完全免費、使用 GNU General Public License 授權的開放源碼軟體,專為 Microsoft Windows ...
  • GB超级稳定的性能及较快的速度和较的资源占用正是现在其他IE内核浏览器所欠缺的,也是我们最需要的,因此GB是最好的IE内核浏览器。 ....-- wjse 同样很喜欢GB!!喜欢她的纤细、喜欢她的自由制定 ....-- a__gu 我...
  • 不过因为2016年世界之窗浏览器被360收购了,版本也只更新到了7.0就停更了,内核更是旧到了Chrome48,当年世界之窗浏览器号称极致精简Chrome,打开的网页占用内存普遍比谷歌、360浏览器这些少一半,而且打开速度快...

    百分浏览器英文名cent browser

    第一眼看过去,你可能跟我一样,感觉这是个啥杂牌浏览器,我还是回去继续用我的Google Chrome和360浏览器吧,本篇完

    然而既然推荐了,肯定就有他的优势

    如果你用过 世界之窗浏览器 并且喜欢他的极速的性能,那一定就会喜欢这一款,不过因为2016年世界之窗浏览器被360收购了,版本也只更新到了7.0就停更了,内核更是旧到了Chrome48,当年世界之窗浏览器号称极致精简Chrome,打开的网页占用内存普遍比谷歌、360浏览器这些少一半,而且打开速度极快,非常的轻量化和干净。

    今天介绍的 百分浏览器 虽然看上去官网不太炫酷,但是他的浏览器功能可并不简单,简言之百分浏览器=强化版的世界之窗浏览器

    首先,他的界面和Google浏览器基本一样,是采用谷歌的开源 Chromium 开发者引擎系统精心重编译而成的附加诸多实用功能的增强版网页浏览器。喜欢用Google Chrome浏览器的用户也会喜欢他的界面

    说一下主界面的亮点
    在这里插入图片描述
    恢复已关闭标签:这个是世界之窗浏览器和360浏览器都有的功能,但是Google Chrome浏览器没有这个功能

    页面二维码在地址栏:这个贴近Google浏览器的设置

    浏览器扩展:可以用百分浏览器官网的插件(比较少),也可以用Google扩展中心里或者其他地方下载的crx网页插件(需把crx解压为文件夹)

    截图:这个功能无需下载自带的

    下载器方面

    大家都知道Google浏览器的下载器下载完不能直接打开,而是先下载的crdownload格式再自动转成原格式,需要时间,不够简单快速
    在这里插入图片描述
    百分浏览器修改了自带下载器,下载之后无需等待,直接打开
    在这里插入图片描述

    然后说一下他的设置界面

    设置非常丰富,堪称Google浏览器+360浏览器+++的可自定义程度
    在这里插入图片描述
    在这里插入图片描述
    最鲜明特点:可以登录Google账号可以导入谷歌等其他浏览器的密码,从其他浏览器导入已保存密码是国内其他浏览器包括360浏览器、qq浏览器、2345浏览器、360极速浏览器、搜狗浏览器等都没有的功能

    在这里插入图片描述

    日常操作小功能&特点

    在这里插入图片描述

    以 Google Chrome 为基础 – 基于卓越的 Web 浏览器项目 Chromium 引擎系统,Cent Browser 继承了所有 Chrome 浏览器的优点,

    鼠标手势 – 无需使用键盘、菜单或者工具栏,按住并移动鼠标右键按钮执行命令;

    滚动标签栏 – 设置最小标签宽度,避免标签变得太小。通过鼠标滚轮滚动整个标签栏(类似于 Firefox 标签栏);

    超级拖拽 – 使用鼠标左键拖拽便于快速打开文件,这个是Google浏览器没有的功能,国内浏览器一般都有

    多标签页选项 – 提供大量标签页选项,例如:双击关闭标签页、右键关闭标签页、隐藏标签页关闭按钮、使用鼠标滚轮切换标签等等,可以设置

    隐身标签页 – 无需打开新的窗口,仅为新标签页使用隐身模式。也可用作为多登陆标签页(类似于老版本 Opera 新隐私标签页);

    内存优化 – 启用单渲染进程减少内存消耗、避免太多进程,延迟会话加载与自动内存优化功能也非常有益;

    使用更方便 – 其他小特性,例如:老板键、固定标签保护、右键菜单多搜索引擎、复制链接文本,等等,使得网上冲浪更舒适;

    自动隐藏书签栏 – 当光标移出工具栏时自动隐藏书签栏;

    自定义新标签页 – 加载任意你想要作为新标签页的 URL 链接(甚至一个图像文件);

    二维码生成器 – 为一个 URL 链接创建二维码并且在移动设备上继续冲浪;

    隐私保护 – 最大程度地保护您的隐私。我们关注到 Chromium 中与隐私有关的缺陷并且尽快地修复了它们;

    其他本人认为细节的功能

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    **
    下面这个可定制化程度非常高,Google浏览器上打开收藏栏的网址是直接覆盖掉当前网页,而百分浏览器可以定义在当前网页标签右面新建一个标签页来打开新网页,个人喜欢这个设置

    **
    在这里插入图片描述

    超级拖拽设置项也是很细节
    在这里插入图片描述
    内存优化
    在这里插入图片描述
    在这里插入图片描述
    下载体验之后你会发现他和Chrome的设置项相似率不超过50%,很多都是基于Google Chrome做的改进及增加的功能

    最后,重头戏就是

    内存占用方面只有Google浏览器的68%

    测试项:同时打开5个百度网页
    在这里插入图片描述

    在这里插入图片描述

    看后台内存占用

    在这里插入图片描述
    260/381=68%

    开同样的网页内存占用只有Google Chrome的68%,所以说百分浏览器是真的做了功夫去优化的,一如当初的世界之窗浏览器让人眼前一亮

    附:

    百分浏览器 Cent Browser 产品の首页:https://www.centbrowser.com/(国际站); 百分浏览器 Cent
    Browser 产品の首页:http://www.centbrowser.cn/(国内站);

    下载の地址:

    开发者/官方 for 微软 Windows 32位

    纯净安装版:http://static.centbrowser.com/win_stable/4.3.9.248/centbrowser_4.3.9.248.exe;
    开发者/官方 for 微软 Windows 64位
    纯净安装版:http://static.centbrowser.com/win_stable/4.3.9.248/centbrowser_4.3.9.248_x64.exe;
    开发者/官方 for 微软 Windows 32位
    绿色便携版:http://static.centbrowser.com/win_stable/4.3.9.248/centbrowser_4.3.9.248_portable.exe;
    开发者/官方 for 微软 Windows 64位
    绿色便携版:http://static.centbrowser.com/win_stable/4.3.9.248/centbrowser_4.3.9.248_x64_portable.exe;
    或者 使用百分浏览器 Cent Browser 官方国内站分流地址;

    开发者/官方 for 微软 Windows 32位
    纯净安装版:http://static.centbrowser.cn/win_stable/4.3.9.248/centbrowser_4.3.9.248.exe;
    开发者/官方 for 微软 Windows 64位
    纯净安装版:http://static.centbrowser.cn/win_stable/4.3.9.248/centbrowser_4.3.9.248_x64.exe;
    开发者/官方 for 微软 Windows 32位
    绿色便携版:http://static.centbrowser.cn/win_stable/4.3.9.248/centbrowser_4.3.9.248_portable.exe;
    开发者/官方 for 微软 Windows 64位
    绿色便携版:http://static.centbrowser.cn/win_stable/4.3.9.248/centbrowser_4.3.9.248_x64_portable.exe;

    拓展の增强插件

    OneTab – 节省高达 95% 内存开销,并缓解标签页混乱现象;

    Adguard – 对抗垃圾广告与强弹钓鱼网址的广告拦截扩展,能够有效的拦截脸书、油管和所有其它网站的广告;

    划词翻译 – 支持谷歌、百度、有道、必应四大翻译和朗读引擎,可以方便的查看、复制和朗读不同引擎的翻译结果;

    Chrome 同步助手 – 实现谷歌 Google Chrome 账号同步和扩展自动更新(默认不启用);

    快捷扩展管理 – 一键开启、禁止所有拓展、应用、主题,一键直达拓展、应用、主题,一键直达常用功能等;

    Imagus – 鼠标指针悬停在链接或缩略图上时直接在当前页面的弹出视图上显示这些图片、HTML5 视频/音频和内容专辑;

    Tampermonkey – 世界上最流行的 Google Chrome 用户脚本管理器,能够更方便用户执行各种类型的网页批处理操作;

    在这里插入图片描述
    百分浏览器官网也有谷歌翻译插件

    在这里插入图片描述

    展开全文
  • 为什么Chrome浏览器特爱吃内存

    万次阅读 2018-08-24 07:38:42
    微软用惯用的手法——改名——给 IE 被黑的一生画上了句号。还好,它在技术段子圈里早就有了接班人:Chrome。 Chrome 很好很强大,速度快、功能很多。但同时它...

    微软用惯用的手法——改名——给 IE 被黑的一生画上了句号。还好,它在技术段子圈里早就有了接班人:Chrome。

      Chrome 很好很强大,速度极快、功能很多。但同时它也是你的电脑内存不足或者耗电太快的罪魁祸首。没办法,Chrome 太爱吃内存了(如头图)。

      为什么?我们找到了 4 个最关键的答案,不需要特别懂技术也可以理解。

    640?wx_fmt=gif

      1. Chrome 把你在浏览器上做的每件事都拆成独立的进程

      在大多数 PC 操作系统中,各种软件和服务是以进程(Process)的形态出现并保存在系统的内存当中的。然而,随着 Web 技术的发展,浏览器功能日益强大,现在大多数人会发现,使用电脑不再需要安装各种各样的软件,很多工作在浏览器中就能完成。Chrome 支持各种各样的插件和扩展,为浏览器增添功能,其中很多插件和扩展干脆就已经是一个打包好可以在本地使用的软件。

      过多的软件、功能和服务势必意味着浏览器的体型会变得臃肿,而如果一个浏览器只是一个进程的话,一旦出现系统故障,整个浏览器就崩溃了——那意味着你浏览的所有内容、输入的文本和打开的软件、观看的视频、在网页上玩的小游戏,全都没了。而 Chrome 会把所有打开的网页标签、插件、扩展,以及播放的 Flash 视频都拆成独立的进程。这样,一个进程崩溃,不会影响到浏览器的其他功能正常运转。

      这样做的优势是浏览器功能多,且快速稳定;劣势就是占用很多内存。

    640?wx_fmt=png

      2. 在你没点击 URL 之前,Chrome 已经在帮你加载了

      更好的用户体验与更大的系统资源压力就像是双生子。Chrome 浏览器提供一个预加载功能(Chrome Prerendering),在用户还没有点击某个链接的时候就已经提前开始加载了。

      比如,如果浏览的是博客文章,Chrome 有可能会预先加载「下一篇博文」;再比如,如果你在 Google 上搜索某个学术名词的话,Chrome 有可能会预先加载来自维基百科的结果

      有时候你会发觉,第一次登陆某个网页的时候很慢,但后来再在地址栏输入访问,会快很多。这是因为 Chrome 会基于历史浏览记录和对该网页的安全性判断,预先加载这个网页。

      3. 内存泄露

      内存泄露是一个技术上的名词,简单来说,他的意思就是占用内存的软件或服务,在完成工作之后无法释放那些不再使用的内存。历史上有一些非常经典的内存泄露事故,比如在某个版本的 Mac OS X 操作系统上,以原生、快速和低内存以来著称的 Safari 浏览器,竟然能把本机所有的内存全都占掉,以至于其他程序无法正常工作,甚至系统都开始不稳定。

      Chrome 浏览器也会出现内存泄露问题,不过现在浏览器本身已经比较稳定了。不稳定的地方在于部分样式或功能复杂的网站,以及一些代码不干净的 Chrome 插件和扩展。前几天,一位 Android Chrome 工程师在 Reddit 上表示,有团队正在积极研究如何解决桌面版 Chrome 的扩展和插件内存泄露问题。

      4. 开了太多标签和插件

      前面提到,很多以扩展形式存在的 Chrome 本地应用功能也已经十分强大,Web 技术日新月异使得很多网站在浏览器中呈现所占用的内存也已经不亚于一个普通的本地软件。这个不用过多解释。

     Chrome 占内存到底好不好?

      你需要记住一句话:空闲的内存是没用的。(free RAM is useless RAM)

      内存的功能是在本地一个高速短期存储空间内放置进程,从而在使用或未使用但需要唤醒的时候更快地加载出来。因此,短期的高内存占用并不是坏事,它优化了使用体验——可以说,内存存在的意义就是被占用。

      但长期高内存占用就不是好事了。长期高内存占用可能和前面提到的网页/插件/扩展内存泄露问题有关,也有可能由用户不良使用习惯导致。过多内存被占用会导致提供给其他软件或服务的内存资源不足,导致系统不稳定。另外,绝大多数操作系统都有虚拟内存功能,也就是在硬盘上设立一块空间当做内存。这是内存不足时的替代方案,显然对硬盘的读取速度要比对内存的读取速度慢得多。

     怎样解放 Chrome 内存?

      1. 查看任务/进程管理器,关掉占用大量内存的进程

      在 Windows Chrome 上按 Shift+Esc,或者在 Mac 上点击窗口→任务管理器,唤醒 Chrome 自己的任务管理器。用这种方法,你可以关闭那些没有使用但是依然在后台占用太多内存的标签或程序。

    640?wx_fmt=png

      2. 卸载不需要的扩展和插件

      3. 保持 Flash 视频播放插件不自动播放

      点击设置→高级设置→隐私设置→内容设置,选择不自动打开插件。

    640?wx_fmt=png

      4. 用工具来管理闲置的标签

      前两天我们刚刚介绍过的 The Great Suspender 就是这样一个优秀的工具。它可以根据设置自动休眠掉当前不使用的标签,节省系统资源。


    展开全文
  • Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。 其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。 Miniblink保持了10M左右的极简大小,...
  • chrome浏览器js内存溢出

    万次阅读 2015-06-18 16:53:48
    Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些对 ... 一、概述  Google Chrome浏览器提供了非常强大的JS调试工具,...
    Google Chrome 浏览器 提供了非常强大的JS调试工具,Heap Profiling便是其中一个。Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些对 ...
    一、概述 
    Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是其中一个。Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该描述文件给出了当时JS运行所用到的所有对象,以及这些对象所占用的内存大小、引用的层级关系等等。这些描述文件为内存泄漏的排查提供了非常有用的信息。 
    注意:本文里的所有例子均基于Google Chrome浏览器。 
    什么是heap 
    JS运行的时候,会有栈内存(stack)和堆内存(heap),当我们用new实例化一个类的时候,这个new出来的对象就保存在heap里面,而这个对象的引用则存储在stack里。程序通过stack里的引用找到这个对象。例如var a = [1,2,3];,a是存储在stack里的引用,heap里存储着内容为[1,2,3]的Array对象。
    二、Heap Profiling 
    打开工具 
    打开Chrome浏览器(版本25.0.1364.152 m),打开要监视的网站(这里以游戏大厅为例),按下F12调出调试工具,点击“Profiles”标签。可以看到下图: 
    图片1.jpg 
    可以看到,该面板可以监控CPU、CSS和内存,选中“Take Heap Snapshot”,点击“Start”按钮,就可以拍下当前JS的heap快照,如下图所示: 
    图片2.jpg 
    右边视图列出了heap里的对象列表。由于游戏大厅使用了Quark游戏库,所以这里可以清楚地看到Quark.XXX之类的类名称(即Function对象的引用名称)。 
    注意:每次拍快照前,都会先自动执行一次GC,所以在视图里的对象都是可及的。 
    视图解释 
    列字段解释: 
    Constructor -- 类名Distance -- 估计是对象到根的引用层级距离 
    Objects Count -- 给出了当前有多少个该类的对象 
    Shallow Size -- 对象所占内存(不包含内部引用的其它对象所占的内存)(单位:字节) 
    Retained Size -- 对象所占总内存(包含内部引用的其它对象所占的内存)(单位:字节) 

    下面解释一下部分类名称所代表的意思: 
    (compiled code) -- 未知,估计是程序代码区 
    (closure) -- 闭包(array) -- 未知 
    Object -- JS对象类型(system) -- 未知 
    (string) -- 字符串类型,有时对象里添加了新属性,属性的名称也会出现在这里 
    Array -- JS数组类型cls -- 游戏大厅特有的继承类 
    Window -- JS的window对象 
    Quark.DisplayObjectContainer -- Quark引擎的显示容器类 
    Quark.ImageContainer -- Quark引擎的图片类 
    Quark.Text -- Quark引擎的文本类 
    Quark.ToggleButton -- Quark引擎的开关按钮类 

    对于cls这个类名,是由于游戏大厅的继承机制里会使用“cls”这个引用名称,指向新建的继承类,所以凡是使用了该继承机制的类实例化出来的对象,都放在这里。例如程序中有一个类ClassA,继承了Quark.Text,则new出来的对象是放在cls里,不是放在Quark.Text里。 

    查看对象内容 
    点击类名左边的三角形,可以看到所有该类的对象。对象后面的“@70035”表示的是该对象的ID(有人会错认为是内存地址,GC执行后,内存地址是会变的,但对象ID不会)。把鼠标停留在某一个对象上,会显示出该对象的内部属性和当时的值。 
    图片3.png 
    这个视图有助于我们辨别这是哪个对象。但该视图跟踪不了是被谁引用了。 

    查看对象的引用关系 
    点击其中一个对象,能看到对象的引用层级关系,如下图: 
    图片4.png 
    Object's retaining tree视图显示出了该对象被哪些对象引用了,以及这个引用的名称。图中的这个对象被5个对象引用了,分别是: 
    1. 一个cls对象的_txtContent变量; 
    2. 一个闭包函数的context变量; 
    3. 同一个闭包函数的self变量; 
    4. 一个数组对象的0位置; 
    5. 一个Quark.Tween对象的target变量。 

    看到context和self这两个引用,可以知道这个Quark.Text对象使用了JS常用的上下文绑定机制,被一个闭包里的变量引用着,相当于该Quark.Text对象多了两个引用,这种情况比较容易出现内存泄漏,如果闭包函数不释放,这个Quark.Text对象也释放不了。 
    展开_textContent,可以看到下一级的引用: 
    图片5.png 
    把这个树状图反过来看,可以看到,该对象(ID @70035)其中的一条引用链是这样的: 
    GameListV _curV _gameListV 省略... \ | / \ | / _noticeWidget | _noticeC | _noticeV | _txtContent || Quark.Text @70035 
    内存快照的对比通过快照对比的功能,可以知道程序在运行期间哪些对象变更了。 
    刚才已经拍下了一个快照,接下来再拍一次,如下图: 
    图片6.png 
    点击图中的黑色实心圆圈按钮,即可得到第二个内存快照: 
    图片7.png 
    然后点击图中的“Snapshot 2”,视图才会切换到第二次拍的快照。 
    图片8.png 
    点击图中的“Summary”,可弹出一个列表,选择“Comparison”选项,结果如下图: 
    图片9.png 
    这个视图列出了当前视图与上一个视图的对象差异。列名字段解释:# New -- 新建了多少个对象# Deleted -- 回收了多少个对象# Delta -- 对象变化值,即新建的对象个数减去回收了的对象个数Size Delta -- 变化的内存大小(字节)注意Delta字段,尤其是值大于0的对象。下面以Quark.Tween为例子,展开该对象,可看到如下图所示: 
    图片10.png 
    在“# New”列里,如果有“.”,则表示是新建的对象。 
    在“# Deleted”列里,如果有“.”,则表示是回收了的对象。 
    平时排查问题的时候,应该多拍几次快照进行对比,这样有利于找出其中的规律。 

    三、内存泄漏的排查 
    JS程序的内存溢出后,会使某一段函数体永远失效(取决于当时的JS代码运行到哪一个函数),通常表现为程序突然卡死或程序出现异常。 
    这时我们就要对该JS程序进行内存泄漏的排查,找出哪些对象所占用的内存没有释放。这些对象通常都是开发者以为释放掉了,但事实上仍被某个闭包引用着,或者放在某个数组里面。 

    观察者模式引起的内存泄漏 
    有时我们需要在程序中加入观察者模式(Observer)来解藕一些模块,但如果使用不当,也会带来内存泄漏的问题。 
    排查这类型的内存泄漏问题,主要重点关注被引用的对象类型是闭包(closure)和数组Array的对象。
    下面以德州扑克游戏为例: 
    图片11.png 
    图片12.png 
    测试人员发现德州扑克游戏存在内存溢出的问题,重现步骤:进入游戏--退出到分区--再进入游戏--再退出到分区,如此反复几次便出现游戏卡死的问题。 
    排查的步骤如下: 
    1.打开游戏; 
    2.进入第一个分区(快速场5/10); 
    3.进入后,拍下内存快照; 
    4.退出到刚才的分区界面; 
    5.再次进入同一个分区; 
    6.进入后,再次拍下内存快照; 
    7.重复步骤2到6,直到拍下5组内存快照; 
    8.将每组的视图都转换到Comparison对比视图; 
    9.进行内存对比分析。 
    经过上面的步骤后,可以得到下图结果: 
    图片13.png 
    先看最后一个快照,可以看到闭包(closure)+1,这是需要重点关注的部分。(string)、(system)和(compiled code)类型可以不管,因为提供的信息不多。 
    图片14.png 
    接着点击倒数第二个快照,看到闭包(closure)类型也是+1。 
    图片15.png 
    接着再看上一个快照,闭包还是+1。 
    这说明每次进入游戏都会创建这个闭包函数,并且退出到分区的时候没有销毁。 
    展开(closure),可以看到非常多的function对象: 
    图片16.png 
    建新的闭包数量是49个,回收的闭包数量是48个,即是说这次操作有48个闭包正确释放了,有一个忘记释放了。每个新建和回收的function对象的ID都不一样,找不到任何的关联性,无法定位是哪一个闭包函数出了问题。 
    接下来打开Object's retaining tree视图,查找引用里是否存在不断增大的数组。 
    如下图,展开“Snapshot 5”每个function对象的引用: 
    图片17.png 
    其中有个function对象的引用deleFunc存放在一个数组里,下标是4,数组的对象ID是@45599。 
    继续查找“Snapshot 4”的function对象: 
    图片18.png 
    发现这里有一个function的引用名称也是deleFunc,也存放在ID为@45599的数组里,下标是3。这个对象极有可能是没有释放掉的闭包。 
    继续查看“Snapshot 3”里的function对象: 
    图片19.png 
    从图中可以看到同一个function对象,下标是2。那么这里一定存在内存泄漏问题。 数组下面有一个引用名称“login_success”,在程序里搜索一下该关键字,终于定位到有问题的代码。因为进入游戏的时候注册了“login_success”通知: ob.addListener("login_success", _onLoginSuc); 但退出到分区的时候,没有移除该通知,下次进入游戏的时候,又再注册了一次,所以造成function不断增加。改成退出到分区的时候移除该通知: ob.removeListener("login_success", _onLoginSuc); 这样就成功解决这个内存泄漏的问题了。 
    德州扑克这种问题多数见于观察者设计模式中,使用一个全局数组存储所有注册的通知,如果忘记移除通知,则该数组会不断增大,最终造成内存溢出。 

    上下文绑定引起的内存泄漏 
    很多时候我们会用到上下文绑定函数bind(也有些人写成delegate),无论是自己实现的bind方法还是JS原生的bind方法,都会有内存泄漏的隐患。 
    下面举一个简单的例子: 
    <script type="text/javascript">
    var ClassA = function(name){
    this.name = name;
    this.func = null;
    };

    var a = new ClassA("a");
    var b = new ClassA("b");

    b.func = bind(function(){
    console.log("I am " + this.name);
    }, a);

    b.func(); //输出 I am a

    a = null; //释放a
    //b = null; //释放b

    //模拟上下文绑定
    function bind(func, self){
    return function(){
    return func.apply(self);
    };
    }; 
    </script>
    上面的代码中,bind通过闭包来保存上下文self,使得事件b.func里的this指向的是a,而不是b。
    首先我们把b = null;注释掉,只释放a。看一下内存快照:

    图片20.png 
    可以看到有两个ClassA对象,这与我们的本意不相符,我们释放了a,应该只存在一个ClassA对象b才对。 
    图片21.png 
    从上面两个图可以看出这两个对象中,一个是b,另一个并不是a,因为a这个引用已经置空了。第二个ClassA对象是bind里的闭包的上下文self,self与a引用同一个对象。虽然a释放了,但由于b没有释放,或者b.func没有释放,使得闭包里的self也一直存在。要释放self,可以执行b=null或者b.func=null。 
    把代码改成: 
    <script type="text/javascript"> var ClassA = function(name){ this.name = name; this.func = null; }; 
    var a = new ClassA("a"); var b = new ClassA("b"); 
    b.func = bind(function(){ console.log("I am " + this.name); }, a); 
    b.func(); //输出 I am a a = null; //释放a 
    b.func = null; //释放self 
    //模拟上下文绑定 function bind(func, self){ return function(){ return func.apply(self); }; }; </script> 
    再看看内存: 
    图片22.png 
    可以看到只剩下一个ClassA对象b了,a已被释放掉了。 

    四、结语 
    JS的灵活性既是优点也是缺点,平时写代码时要注意内存泄漏的问题。当代码量非常庞大的时候,就不能仅靠复查代码来排查问题,必须要有一些监控对比工具来协助排查。 
    之前排查内存泄漏问题的时候,总结出以下几种常见的情况: 
    1.闭包上下文绑定后没有释放; 
    2.观察者模式在添加通知后,没有及时清理掉; 
    3.定时器的处理函数没有及时释放,没有调用clearInterval方法; 
    4.视图层有些控件重复添加,没有移除。
    展开全文
  • 从底层去广告,占用内存极小,让上网体验更清爽。去广告特权版本限时下载! 【插件网站】 https://plugin.csdn.net 【插件更新】 2021-03-01 09:54:18 【插件版本】 2.8.1 【插件标签】 高效开发 ...
  • 手心浏览器

    2016-06-06 23:59:31
    手心浏览器是一款基于IE内核的极小极轻的轻量级浏览器,它的特点是内存占用极少,上网不卡、打开网页飞快,性能稳定,崩溃极少;手心浏览器界面清新简约,它提供了浏览器的基本功能,包括地址栏、搜索栏、收藏夹、...
  • TS浏览器 v1.0.zip

    2019-07-14 06:16:44
    用TS浏览器1.0 看真实世界,如果你厌倦了对网页层层过滤,剩下的我们还能看到什么,该浏览器对原始网页直接显示,让你看的更真实,该浏览器界面简洁,占用内存极小,体验你平常看不到的精彩。该浏览器独特的设计得到...
  • dd浏览器v1.46绿色版

    2019-08-05 21:52:39
    dd浏览器能支持各种网站门户的快速浏览,打开速度快,占用内存空间少,稳定也强,不会出现各种卡死、网页崩溃的现象,界面清晰简洁,无任何广告与插件。 dd浏览器特点介绍: 1、小巧轻快的体积,运行速度快,...
  • 浏览器缓存详解

    千次阅读 多人点赞 2021-01-12 18:28:22
    刷新当前页面时浏览器会根据当前运行环境内存来决定是从 Memory Cache 还是 从Disk Cache中拿(可以看到下图最后几个文件有时候是从 Memory Cache中拿有时候是从Disk Cache中拿) 注意:以上回答全部基于chrome...
  •  它采用多线程框架设计,大的优化了浏览器内存占用,采用的多重加速机制,更大幅提高了网页的加载速度,并高度集成了115.com的多种重量级网络服务:聚合搜索、115网络U盘、在线收藏夹、实用工具箱、115“窝”...
  • Android 简易浏览器.rar

    2019-07-10 22:45:00
    Android 简易浏览器是一款占用内存极小,简易的一款浏览器,支持自动更新,和用户数据统计
  • 手心浏览器是一款基于IE内核的极小极轻的轻量级浏览器。能够满足浏览网页及浏览Web产品的需求,同时快速、简捷、稳定的特点将会给用户带来不一样的浏览体验。 手心浏览器介绍 手心浏览器特点是内存占用极少,上网...
  • 全面优化系统架构:减少死机和崩溃,启动速度更快,内存占用更。 触摸屏支持:完美强大的对触摸屏的支持,省去移动鼠标的烦恼,让您上网更畅快! 多线程窗口框架:多线程框架可大幅减少由于某个网页假死导致整个...
  • chrome内存泄露(一)、内存泄漏分析工具

    万次阅读 多人点赞 2018-12-02 16:18:27
    内存分析使用的工具包括chrome任务管理器、chrome时间轴(低版本是Timeline,高版本对应performance)、chrome memory(低版本是chrome profiles,主要用JS堆快照、JS堆动态分配时间轴)。文中分析所用chrome版本是...
  • 极速云浏览器是一款体积极小、占用资源最少、启动速度最快的多标签实用浏览器。 极速云浏览器采用多线程框架设计,减少了崩溃的可能,极大的优化了浏览器内存占用,自动释放闲置内存,也让因电脑系统配置问题...
  • 极小的资源占用,同时访问多个页面消耗系 统内存极小;  2、 先进而优良的过滤功能,包括各种弹窗过滤、页面元素过滤和网页对话框过滤等;  3、 支持高速跨网段访问、高速下载文件、避免迅雷等下载软件拖慢网速...
  • [天天浏览器]拥有极为精简的内核,手机App大小在2MB以内,是市场上省用户手机内存,极少占用手机资源,速度快的浏览器,本身功能完整强大,是极速上网必备的利器。 应用推广地址:...
  • 安卓平板用哪个浏览器比较好

    千次阅读 2021-06-08 12:15:05
    今天浏览器下载排行榜2013将要横评的6款浏览器都是基于Android平板的。现如今所有浏览器厂商都在炒概念,从最开始打省流量牌到现在狂飙HTML5支持得分,浏览器的竞争从来都没有停止过,那么实际浏览器的用户体验到底...
  • 一款高效的请求过滤工具:占用低的内存和CPU,和其他常见的过滤工具相比,它能够加载并执行上千条过滤规则。用法:点击弹出窗口中的电源按钮,uBlock₀ 将对当前网页永久禁用/启用过滤功能。 它只控制当前网页的...
  • 极小的资源占用,同时访问多个页面消耗系统内存极小2.增强的稳定性,这对于多窗口浏览器来说尤其显得重要3.优化的内核,打开网页的速度更快4.安静的浏览特性,有效的智能拦截各种广告、控件,避免干扰并保证浏览安全...
  •  采用先进架构技术,独创内存和CPU回收机制,让浏览器一直处于低内存低CPU消耗状态,并且能迅速从休眠中恢复,无须等待。  b、完美防假死  吉象独特的防假死技术,实现了在某个页面出错崩溃或者失去响应时不会...
  • JavaScript内存泄漏的排查方法

    千次阅读 2016-08-19 18:11:50
    本文转自JS内存泄漏排查方法——Chrome Profiles 概述Google Chrome浏览器提供了非常强大的JS调试工具,Heap Profiling便是其中一个。Heap Profiling可以记录当前的堆内存(heap)快照,并生成对象的描述文件,该...
  • 手机四款浏览器APP的比较

    万次阅读 2021-01-14 16:54:09
    闲来无事,下载了几款浏览器应用,想要找到占用内存小的,简洁的手机浏览器应用。在手机浏览器上主要是浏览图片及视频。就拿这四款浏览器主观的测评一下。主要测试了4款浏览器APP,分别是UC极速版,夸克,X浏览器,...
  • 浏览器缓存是什么?它的机制又是什么?

    千次阅读 多人点赞 2018-11-16 17:45:28
    一方面大地提升了用户体验,而另一方面有时会因为读取了缓存而展示了“错误”的东西,而在开发过程中千方百计地想把缓存禁掉。那么浏览器缓存究竟是个什么样的神奇玩意呢? 什么是浏览器缓存: 简单来说,浏览器...
  • 文章目录进程和线程进程和线程的关系浏览器是多进程的浏览器的四大进程关于浏览器渲染进程关于WebWorker关于SharedWorker关于硬件加速 进程和线程 进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位...
  • 搜狗浏览器 3.0.0.2992

    2011-09-28 17:18:12
    搜狗高速浏览器是国内首个真双核引擎,完美融合全球最快的Webkit内核和兼容性最佳的IE内核,保证良好兼容性的同时大提升网页浏览速度。 搜狗浏览器的3.0版在经过“概念版”“预览版”的持续打磨之后,还在努力的...
  • 大家好,我是前端岚枫,今天主要跟大家分享我整理的笔记2021前端面试题系列:fetch与axios、浏览器内标签页之间的通讯方法、XSS 和CSRF以及如何防范,此方面内容在我们的工作中常用到, 也是面试官经常提问的问题,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,193
精华内容 21,677
关键字:

内存极小的浏览器

友情链接: DotNet.zip