zoukankan      html  css  js  c++  java
  • 浏览器内存调试方法

    谷歌浏览器调试方法

    1. 在Chrome浏览器下,通过开发者工具的performance选项卡,并选中memory选项。

      点击左侧圆点⚪开始监控内存的使用情况事件的耗时、以及GC回收的内存大小耗时

      FPS:帧信息,当帧数>30就不会觉得卡顿

      CPU:当前CPU的占用情况

      NET:当前网络的占用情况

      HEAP:内存堆的使用情况,这里可以查看内存有无被回收

      Frames: 页面显示的帧数

      Main:按钮的操作和调用的方法

      Raster:页面的绘制

      Summary:饼状图

      Bottom-Up:每个动作的耗时和排序

      Call Tree:方法调用的关系

      Event Log:事件的日志

    1. 通过memory选项卡,新建堆快照查看各个对象占用内存情况,以及对比多个堆快照的区别。

      1. 进行函数操作前,选中Heap snapshot 点击左侧远点⚪来查看当前内存的使用情况

      2. 运行函数,继续创建新的快照,切换选项卡,选中Objects allocated between Snapshot 1 and Snapshot 2

        在右侧视图中,对比函数函数运行前后的大小,具体内存占用量,(compiled code)意为编译后的代码,closure为闭包, system为当前环境占用内存,arraystring即数组和字符串,

        在JS中,global对象属于一个兜底对象,换句话说,不属于其他对象的属性和方法,都是它的属性和方法

    IE浏览器调试方法

    切换到调试工具,点击内存选项。在函数运行前拍摄一次快照,函数运行后拍摄一次快照。即可进行内存对比,

    IE调试的优点:比谷歌更加简单方便,容易找到问题点。

    IE调试的缺点:没有谷歌调试的信息全,而且当内存占用过大时无法拍摄快照,只能在预览中查看内存的回收情况。可尝试刷新页面,再去拍摄其他占用内存小的快照。

    手动触发GC

    在谷歌浏览器中,performancememory选项卡中有个垃圾桶按钮,移入会显示 Collect garbage,

    点击即可触发GC。

    在IE浏览器中,则需要代码触发GC,代码如下

    <body>
        <button onclick="func1()">getSmallObj</button>
        <button onclick="func2()">getLargeObj1</button>
        <button onclick="func3()">getLargeObj2</button>
    </body>
     
    <script>
        var getLagerObj = function(size) {
            var arr = [];
            // var intSize = parseInt(size);
            for (var j = size; j >= 0; j--) {
                arr.push("qwertyuiopasdfghjklzxcvbnm");
            }
            return arr;
        }
    
        //全局变量,当页面关闭,才会被回收
        var largeObj1 = null;
    
        function func1() {
            largeObj1 = getLagerObj(9999);
        }
    
        //局部变量,当函数执行完,才会被回收
        function func2() {
            largeObj2 = getLagerObj(9999999);
        }
    
        //手动触发GC,仅作为检查问题的一种手段,一定不要在生产环境中使用,是有兼容问题的
        function func3(){
        	func2();
        	//仅适用于IE浏览器
        	if(typeof window.CollectGarbage === "function"){
        		CollectGarbage();
        	}
        }
    </script>
    
    
  • 相关阅读:
    1002 写出这个数
    1001 害死人不偿命的(3n+1)猜想
    Graph I
    Tree
    进程通信
    管道
    fork函数
    Priority Queue
    Search
    游戏 slider
  • 原文地址:https://www.cnblogs.com/lovecode3000/p/12714746.html
Copyright © 2011-2022 走看看