+=与join的性能测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>    JS中“+=”与array.join的性能测试</title>
    <style>
        #div1,#div2{width: 500px;height: 200px;margin-bottom: 30px;background:#999;overflow: auto;word-break:break-all;}
        #div2{background: #0f0;}
        #tArea1{position: absolute;right: 100px;top: 50px;width: 600px;height: 430px;font-size: 20px;resize: none;}
    </style>
    <script>
        window.onload=function(){
            var oDiv1=document.getElementById("div1");
            var oDiv2=document.getElementById("div2");
            var oDate1=new Date();
            var tmpStr="";
            for(var i=0;i<100000;i++){
                tmpStr+="‘"+i+"‘";
            }
            oDiv1.innerHTML=tmpStr;
            var oDate2=new Date();

var oDate3=new Date();
            var tmpArray=new Array();
            for(var j=0;j<100000;j++){
                tmpArray[j]=j;
            }
            var tmpArrayStr=tmpArray.join();
            oDiv2.innerHTML=tmpArrayStr;
            var oDate4=new Date();
            
            alert((oDate2-oDate1)+"||"+(oDate4-oDate3));
            
            /*var tmpStr="";
            console.time("计时器一");
            for(var i=0;i<100000;i++){
                tmpStr+=i+"‘";
            }
            document.body.innerHTML=tmpStr;
            console.timeEnd("计时器一");*/

/*var tmpArray=new Array();
            console.time("计时器二");
            for(var j=0;j<100000;j++){
                tmpArray[j]=j;
            }
            var tmpArrayStr=tmpArray.join();
            document.body.innerHTML=tmpArrayStr;
            console.timeEnd("计时器二");*/
            
        }
        
    </script>
</head>
<body>
    <div id="div1"></div>
    <div id="div2"></div>
    <textarea id="tArea1" name="" id="" cols="30" rows="10">
        1.通过多次刷新,不管在chrome、firefox还是IE6,测试的结果都是 "array.join" 的性能比 "+=" 要好。特别是在IE6下面,要强几十倍。

2.测试的结果和鸟哥的测试结果有出入,在IE下的测试结果是一样的,但是在chrome和firefox下面,和鸟哥的测试结果刚好相反。个人猜测的原因可能是,firefox和chrome的内存

处理及GC回收机制已经改进很多,毕意鸟哥那篇是08年左右写的。。。

3.测试结论:在小数据量的字符串接连操作时,"+="和"array.join"的性能相差无几(chrome或firefox),可以随意使用哪一种方式,但是在操作大数据量的字符串连接时(>=

10000),使用"array.join"的性能优势遍体现出来了。 特别说明,在IE下面,最好使用 "array.join"的方式来拼接字符串。。
    </textarea>
</body>
</html>

时间: 2024-11-08 06:14:58

+=与join的性能测试的相关文章

Spark SQL中的broadcast join分析

在Spark-1.6.2中,执行相同join查询语句,broadcast join模式下,DAG和执行时间如下图所示: 1.broadcast join (1)DAG (2)执行时间 122 rows selected (22.709 seconds) 2.非broadcast join (1)DAG (2)执行时间 122 rows selected (55.512 seconds) 对于broadcast join模式,会将小于spark.sql.autoBroadcastJoinThres

性能调优:mysql之left join

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. 需求是一个普通的两个表连接从而查询出详细信息.其中A表是大表, 测试数据都有数万条: B表是小表大概1000多条数据. 1. 为了赶工写出的未优化SQL(为突出主题, 返回字段用 * 代替不写出详细字段, WHERE条件也去掉了): SELECT * FROM A a LEFT JOIN B

memcached&amp;redis性能测试

转自:http://www.iigrowing.cn/memcached-redis-xing-neng-ce-shi.html 一.Memcached 1.1.memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通

性能测试(九)连接池和线程

之前的博客中,有说的性能测试常见术语:连接池.其中大概简述了连接池的作用等,这篇博客,就介绍下连接池以及连接池中线程对象的原理,作用以及优点... 一.连接池 1.什么是连接池?我们为什么需要它? 连接池允许多个客户端使用缓存起来的连接对象,这些对象可以连接数据库,它们是共享的.可被重复使用的. 打开/关闭数据库连接开销很大,连接池技术允许我们在连接池里维护连接对象,这样可以提高数据库的执行命令的性能.多个客户端请求可以重复使用相同的连接对象,当每次收到一个客户端请求时, 就会搜索连接池,看看有

Greenplum 简单性能测试与分析

如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理速度和应用系统的可用性,使客户能同时得到更高的处理速度.更高的数据可用性和更大的数据集,是数据库系统面临的一个挑战. 通过TPC-H基准测试,可获得数据库单位时间内的性能处理能力,为评估数据库系统的现有性能服务水平提供有效依据,通过横向对比促进数据库系统的整体质量提升,能更好地在重大信息化工程中实现

java &#39;i++&#39; 计数器的性能测试

java 'i++' 计数器的性能测试 所谓的volatile Synchronized同步原语 JDK1.5的AtomicLong Java8 LongAdder Vs AtomicLong 总结:比较,该用哪个 ? 前言 在写多线程中,我们免不了使用到计数器,今天就来分析下java中提供给我们的计数器以及它们的性能测试. 1.所谓的volatile 上一篇文章我也写到了volatile的作用:当我们写一个变量时,它会被立刻刷新到主内存中去,保证了变量对其他线程的可见性,不会发生线程在自己的私

系统性能测试及调优--转载

原文地址:http://www.51ste.com/front/det-2-1.html 1系统性能定义 性能测试,主要是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试.系统性能主要包括两个值: 吞吐量(Throughtput),即每秒钟可以处理的请求数,事务数. 系统延迟(Latency),也就是系统在处理一个请求或一个事务时的延迟. 它们两者之间的关系: Throughput越大,Latency会越差.请求量过大,系统繁忙,响应速度自然低. Latenc

视图与冗余物理表的查询性能测试

如果有30张表,他们各自有各自的自定义字段,也有一部分公有字段:需要将公有字段归一起来统一查询,一般而言有两种方式: 1.公共字段物理表 数据在入库/更新时,更新自己的表的数据,同时亦将数据更新入公共表中 2.视图 数据在入库/更新时,更新自己的表的数据,视图因为是逻辑上的表所以查询时可以查询到更新 两种方式各有优劣: 1.公共字段方式 优点:查询公共表时占优势,sql比较简单,pg在解析和优化sql时耗时都比较短:而且数据在一张表中,不需要扫描多张表 缺点:APP表和公共字段表必须同时更新,需

性能测试问题-Mysql数据库服务器的CPU占用很高

MySQl服务器CPU占用很高 1.  问题描述 一个简单的接口,根据传入的号段查询号码归属地,运行性能测试脚本,20个并发mysql的CPU就很高,监控发现只有一个select语句,且表建立了索引 2.  问题原因 查询语句索引没有命中导致 开始时的select SELECT `province_name`, `city_name` FROM `phoneno_section` WHERE SUBSTRING(?, phoneno_section_len) = phoneno_section