`
dimpen
  • 浏览: 24540 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

<< ,concat,+=三者间的性能比较

阅读更多
三者功能相同,如下:
str = 'a'  
str << 'b'  
p str #=> "ab"   


str = 'a'  
str.concat('b')   
p str #=> "ab"   
  
str = 'a'  
str += 'b'  
p str #=> "ab" 


性能比较:
test_str = ''
100000.times {test_str << 'hello' }
#0.063秒


test_str = ''
100000.times {test_str concat('hello') }
#0.078秒


test_str = ''
100000.times {test_str += 'hello' }
#31.498秒


由此可见,最耗时间的方法为:+=
原因:
<<和concat操作都是在原字符串后追加新字符串;
+=操作先获取元字符串的拷贝,然后在字符串拷贝后面追加新字符串,浪费内存又浪费时间。
分享到:
评论

相关推荐

    新浪推荐浮动广告

    charset=gb2312" /&gt;&lt;br&gt;&lt;title&gt;test&lt;/title&gt;&lt;br&gt;&lt;/head&gt;&lt;br&gt;&lt;body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0"&gt;&lt;br&gt;&lt;table height=1000&gt;&lt;br&gt;&lt;tr&gt;&lt;td&gt;dddd&lt;/td&gt;&lt;/tr&gt;&lt;br&gt;&lt;/table&gt;&lt;br&gt;&lt;/body&gt;&lt;br...

    eclipse-testng 离线包下载

    eclipse-testng 离线包&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:math="http://exslt.org/math" xmlns:testng=...

    登录页面源码

    span--&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://dash.readme.io/#scroll-pricing" class="scroll"&gt;Pricing&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://dash.readme.io/#scroll-examples" class="scroll"&gt;Examples&lt;span&gt;&lt;/span&gt;...

    js-str-concat:[已弃用] 有条件地连接字符串

    js-str-concat 有条件地连接字符串。 为什么? 因为以这种方式连接字符串很难阅读并且编写起来很乏味: var classNames = '' ; if ( /* insert true statement */ ) { classNames += 'className1 ' ; } if ( /*...

    常用、经典算法及讲解 <img src="/images/sunny.gif" align="abs

    共享一下。不只这些,还有论文,网上down的。 1. 最小数字子串 2. 邮票面值 3. 字符移动 4. 子集定和问题 5. 素数方阵 6. 全排列问题 7. 移盘子问题 8. N 女王问题 9. 组合问题 10. 电子锁 11. 高精度数加减法 12....

    mysql字符串比较函数:concat和regexp.pdf

    mysql字符串比较函数:concat和regexp.pdf

    hls.min.js

    (t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=function(){function t(){i(this,t)}return t.isHeader=function(t,e){return e+10&lt;=t.length&&73;===t[e]&&68;===t[e+1]&&51;==...

    模拟dos命令 concat源代码

    concat程序在TC中编译,在dos命令行中运行。 作用: concat的作用是把原文件的内容复制到目标文件。\n\nconcat的第一个参数是原文件,如果有多个文件,用+连接.\n\n第二个参数为目标文件,将把原文件中的内容按顺序...

    javascript函数的解释

    =不等于,&gt;,&gt;=,&lt;.&lt;= 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop} 16.循环中止的...

    严版数据结构习题答案

    i&lt;=Strlen(S)-Strlen(T)+1;i++) //注意i的取值范围 if(!StrCompare(SubString(S,i,Strlen(T)),T)) //找到了与T匹配的子串 { //分别把T的前面和后面部分保存为head和tail StrAssign(head,SubString(S,1,i-1)); ...

    Oracle新版中不支持 WM_CONCAT的处理方法

    Oracle新版中不支持 WM_CONCAT的处理方法,直接创建一个自定义函数代替

    compilers:一些编译器工程程序

    regex ::= &lt;concat&gt; '|' &lt;regex&gt; | &lt;concat&gt; concat ::= &lt;factor&gt; '.' &lt;concat&gt; | &lt;factor&gt; factor ::= &lt;base&gt; '*' | &lt;base&gt; base ::= &lt;char&gt; | '\' &lt;char&gt; | '(' regex ')' 用法: cargo run "&lt;regex...

    SqlServer GroupConcat

    SQLServer GroupConcat 的CLR实现,和Oracle 的 GroupConcat相同

    tf.concat中axis的含义与使用详解

    tensorflow中tf.concat的axis的使用我一直理解的比较模糊,这次做个笔记理下自己的思路。 import tensorflow as tf tf.enable_eager_execution() import numpy as np 先生成两个矩阵m1, 和m2, 大小为两行三列 m1 =...

    wmsys_wm_concat函数结果拆解

    wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/

    oracle 创建wm_concat函数

    wm_concat函数在oracle 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟

    在MySQL concat里面使用多个单引号,三引号的问题

    在动态拼接字符串时,我们常会用到字符拼接,我对拼接的引号不理解,如: 1、”’+ id +”’ 为什么是3个引号,为什么左边一个加号右边一个加号(能不能着重帮我解释下这个,详细点) SQL code ...

    codesys中CONCAT函数共1页.pdf.zip

    codesys中CONCAT函数共1页.pdf.zip

    concat 文件切割器

    concat windows 文件切割器,任意大小 任意切割合成

Global site tag (gtag.js) - Google Analytics