首页 > 编程知识 正文

java字符串拼接效率,js字符串拼接的几种方式

时间:2023-05-05 17:32:35 阅读:183932 作者:392

JS拼接字符串的方式,

1、最常见的是+=;

2、还可以先将字符串转化为数组,然后调用Join实现字符串拼接

arr.push(str);

return arr.join("");

效率分为运行速度和内存消耗问题,网上查了相关资料,结论就是join在字符串字节很大时(百万级以上),用join会明显快于用+=实现的字符串拼接(),用+=耗时大概时10秒,用join大概是几百毫秒,当字节数很少时,两种方法耗时差距可以忽略,而且用join还需要开数组变量,耗内存,所以这时候推荐用+=;

----------运行速度-------------

博主试着跑了下,十万级别的字节数,+=耗时几乎为0,join耗时为7毫秒左右;百万级别的字节数,+=耗时在75毫秒上下波动,join耗时在68毫秒上下波动,两者差距可以忽略;千万级别的字节,两者耗时差距在200毫秒内波动,+=耗时在1000毫秒左右,join耗时在800毫秒左右波动;亿级的字节数,超过字符最大上限,报错了。

故当字节数低于百万级别的时候,推荐用+=实现字符串拼接,当字节数为千万级别的时候,如果对运行速度有要求,可以采取join实现拼接。如果对运行速度要求较高,百万级别及以上的字符串拼接推荐用join实现。

至于别的博文里面为什么百万级的字节数跑出来的效果,+=耗时10秒以上,可能是当时(5年前)的CPU性能较差造成的,现在CPU的性能已经足够完成百万级字节数的拼接,所以博主跑出来的只有1秒,快了10倍。

------------字符串内存------------

既然不同的拼接方式耗时不同,那么这中间的过程肯定是不一样的。

chrome在用+进行拼接时,生成的字符串包含(),例如a+b,生成的是(a,b),再加c,生成的是((a,b),c),改用join生成的字符串则是ab,可以节省大量内存(10倍以上的差距)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。