`
dimpen
  • 浏览: 25077 次
  • 性别: 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操作都是在原字符串后追加新字符串;
+=操作先获取元字符串的拷贝,然后在字符串拷贝后面追加新字符串,浪费内存又浪费时间。
分享到:
评论

相关推荐

    mybatis(入门了解)

    AND age &lt;= #{maxAge} &lt;/if&gt; &lt;/select&gt; ``` #### 六、Spring 集成 MyBatis - **添加依赖** - **配置数据源** - **配置 MyBatis** - **编写 Mapper 接口** - **编写 Service 层** - **单元测试** ##### 配置示例...

    Mybatis学习文档

    - **二级缓存介绍:** 二级缓存是在MyBatis中实现的一种缓存机制,用于跨SQLSession的查询结果缓存,提高了应用程序的性能。 - **启用二级缓存:** 在映射文件中添加`cache`元素即可启用二级缓存。 - **示例代码:**...

    C#源代码-List泛型集合的三个练习.zip

    本压缩包文件“C#源代码-List泛型集合的三个练习”包含了三个练习,旨在帮助学习者深入理解和应用List&lt;T&gt;类。以下是对这些练习知识点的详细说明: 1. **泛型基础** 泛型是C#中的一种强大的特性,它允许创建可重用...

    java String Vector简单初学者代码

    Java中的String、Vector和Scanner是三个非常基础且重要的概念,对于初学者来说,理解它们的用法和原理是学习Java编程的关键步骤。 首先,我们来深入理解`String`类。在Java中,`String`是一个不可变的字符序列,这...

    高级软件人才培训专家-day09-Mybatis

    - 性能更高:预编译 SQL 只需要编译一次,多次执行,减少了编译 SQL 语句的时间开销。 - 更加安全:预编译 SQL 可以防止 SQL 注入攻击。 - **SQL 注入**: - SQL 注入是一种常见的安全攻击方式,攻击者通过在输入...

    Oracle函数与表达式.pptx

    在表达式运算方面,Oracle支持基本的算术运算(+、-、*、/)、比较运算符(=、&lt;&gt;、&lt;、&gt;、&lt;=、&gt;=)、逻辑运算符(AND、OR、NOT)等,以及SQL标准的特殊判式,如`IN`、`BETWEEN`、`LIKE`等,允许用户构建复杂的查询...

    sql21自学通

    - **条件语句与运算**:涵盖了逻辑运算符(AND、OR、NOT)、比较运算符(=、&lt;、&gt;、&lt;=、&gt;=、&lt;&gt;),以及CASE语句的应用。 ### 第三部分:函数与数据处理 - **汇总函数**:如COUNT、SUM、AVG、MAX、MIN、VARIANCE、...

    Java reactive programming - Reactor 3 and Spring WebFlux

    - **操作符丰富**:提供了一系列的操作符来处理数据流,如 map、filter、concat 等。 - **性能优化**:通过高效的内部实现来提高应用程序的性能。 ##### 2.2 Reactor 3示例 下面是一个简单的示例,展示了如何使用 ...

    java知识点总结

    =、&lt;、&gt;、&lt;=、&gt;=)、逻辑操作符(&&、||、!)等。 4.3. 数字类型之间的转换 Java中有两种数字类型转换:自动转换(如int到long)和强制转换(如double到int)。强制转换可能丢失精度,需谨慎处理。 4.4. 强制类型...

    Oracle 11g SQL Language Reference

    - **比较操作符**: 如`=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;=`, `&gt;`等。 #### 四、Oracle 11g SQL 的新增特性 1. **窗口函数**: 支持更复杂的分析查询。 2. **多表插入**: 可以一次性向多个表插入数据。 3. **子查询增强**: ...

    数据挖掘与数据分析—实验三报告.docx

    ### 数据挖掘与数据分析—实验三报告 #### 实验概述 本次实验主要聚焦于K近邻算法(KNN)在数字图像处理中的应用,并通过Python编程语言及其相关库来实现这一目标。实验不仅旨在让参与者深入了解KNN算法的工作原理,...

    flash action语句中文全解

    =`)、小于(`&lt;`)、大于(`&gt;`)等,用于比较两个值的大小或相等性。 #### 逻辑运算符 包括与(`&&`)、或(`||`)、非(`!`)等,用于构建复杂的逻辑表达式。 #### 位运算符 如按位与(`&`)、按位或(`|`)、按位异或(`^`)等,...

    02_oracle学习笔记第一天

    - **比较运算符**:`=`, `&gt;`, `&lt;`, `&gt;=`, `&lt;=`, `&lt;&gt;`(也可写作 `!=`)。 - **BETWEEN AND**:用于指定范围内的值,如 `SQL&gt; select * from emp where sal between 1000 and 2000;`。 - **IN**:用于匹配集合中的值...

    RxHttp,OKHTTP+RXJava一、二、三.zip

    其核心概念是Observables(可观察者)和Subscribers(订阅者),通过订阅关系实现数据的发布与接收。RXJava提供了一套丰富的操作符,如map、filter、concat、flatMap等,使得异步编程更加简洁和直观。 四、RxHttp与...

    java字符串拼接与性能分析详解

    接下来,我们来看Java提供的另外三种字符串拼接方法:`String.concat()`,`StringBuffer.append()` 和 `StringBuilder.append()`。`concat()` 方法虽然比“+”运算符稍微高效一些,但仍然不适合在循环中大量使用。`...

    java培训相关基础知识总结

    Java 是一种广泛使用的面向对象的编程语言,对于初学者来说,掌握基础至关重要。这里我们将深入探讨Java数组的声明、创建、初始化,以及Java中的String类型,以及如何在Java中实现对数组的复制。 一、Java数组声明...

    java面试常考的题和一些有趣的java谜题

    对于基本类型,==比较的是值;对于对象,==比较的是引用。 这些知识点和谜题涵盖了Java开发中的关键领域,理解和掌握它们将有助于在面试中脱颖而出。不断学习和实践,才能在Java的世界里游刃有余。

    1000个表存储过程

    WHILE i &lt;= 9 DO SET @add_index = CONCAT('ALTER TABLE fetionchat_offline.cin_offlinemessage_', i, ' ADD INDEX IX_toid_datetime(toid, datetime)'); PREPARE cinadd_index FROM @add_index; EXECUTE ...

Global site tag (gtag.js) - Google Analytics