• ↗☻【高性能网站建设进阶指南 #BOOK#】第2章 创建快速响应的Web应用


    0.1秒 1秒 10秒

    自动内存管理是有开销的。当执行回收时,GC实现中最复杂的几乎是stop the world,它们会冻结整个运行环境(包括我们正在调用的主浏览器JavaScript线程),直到遍历完整个创建对象的堆。在这个过程中,它们查找那些不再使用或能够回收未用内存的对象。
    但随着应用程序内存占用的增加,遍历整个堆去查找不再使用的对象所需要的时间将增长并最终会达到引起用户注意的程度。
    当这种情况发生时,应用程序开始定期地出现间歇式迟钝;问题变得更糟糕时,整个浏览器可能出现定期的冻结。

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <script>
            function myJavaScriptFunction(that) {
                var start = new Date().getMilliseconds();
                for (var i = 0; i < 100; i++) {
                    that.innerHTML = 'ca ' + i;
                }
                var stop =  new Date().getMilliseconds();
                var executionTime = stop - start;
                console.log('myJavaScriptFunction() executed in ' + executionTime + ' milliseconds');
            }
        </script>
        <div onclick="myJavaScriptFunction(this)">ca</div>
        <div><div id="redundant">nodeToDelete</div></div>
        <script>
            // 使用delete关键字从内存中移除不再需要的JavaScript对象
            // 从网页的DOM树上移除不再是必需的节点
            var page = {
                address: 'http://some/url'
            };
            console.log(page.address);
            delete page.address;
    
            var nodeToDelete = document.getElementById('redundant');
            delete nodeToDelete.parentNode.removeChild(nodeToDelete);
        </script>
    </body>
    </html>
  • 相关阅读:
    Fedora/centos Linux如何设置网卡自动获取网络地址
    Django virtualenv Apache2 mod_wsgi
    virtualbox在装centos5.6时自协把virtualbox addon 装上了
    Spring中的事务属性介绍以及声明式事务管理
    Fedora Linux如何设置网卡自动获取网络地址
    Linux vi/vim 编辑命令总结
    about reviewboard stack information
    Installing Python 2.7.2 on Centos 5.2
    Linux Deepin 下载
    Can't open file for writing
  • 原文地址:https://www.cnblogs.com/jzm17173/p/3113540.html
Copyright © 2020-2023  润新知