C/C++&Java 字符串拼接效率对比(下部)[内容超过长度被截断完成可以下载文档和源码]...

本文通过实验对比了C/C++中不同字符串拼接方法的性能,并进行了排序展示;同时提供了Java字符串拼接的性能测试代码及结果,帮助读者了解不同语言下字符串操作的效率差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C/C++字符串拼接测试运行结果:

 

Release version.

TEST_TIME: 90000

C language memcpy append Used: 0 ms.

string length: 630000

std::string += operator Used: 15 ms.

string length: 630000

std::string append Used: 16 ms.

string length: 630000

std::ostringstream << Used: 16 ms.

string length: 630000

capacity: 630015

size: 0

hava resize(PREALLOCATE_SIZE) std::string += operator Used: 0 ms.

string length: 630000

MFC CString append Used: 63 ms.

string length: 630000

MFC CString operator append Used: 62 ms.

string length: 630000

c string function strcat: Used: 32203 ms.

string length: 630000

---------Statistics informations(sorting ascendent)-------

 

sort order: 1

item: C language memcpy append

used: 0 ms.

 

sort order: 2

item: hava resize(PREALLOCATE_SIZE) std::string += operator

used: 0 ms.

 

sort order: 3

item: std::string += operator

used: 15 ms.

 

sort order: 4

item: std::string append

used: 16 ms.

 

sort order: 5

item: std::ostringstream <<

used: 16 ms.

 

sort order: 6

item: MFC CString operator append

used: 62 ms.

 

sort order: 7

item: MFC CString append

used: 63 ms.

 

sort order: 8

item: c string function strcat:

used: 32203 ms.

 

----------------------------------------------------------

Press any key to continue . . .

Java的测试代码段:

void testJavaStringPerformance() {

final int TEST_TIMES = 90000;

       //String

       String str = new String();

 

       System.out.println("The testing is running, please wait...");

       long start = System.currentTimeMillis();       

       for (int i=0; i<TEST_TIMES; i++) {

              str += "cppmule";

       }

       long strUsed = System.currentTimeMillis() - start;

       System.out.println("strUsed: " + strUsed + " ms.");

      

//StringBuffer

       start = 0;

       StringBuffer strBuffer = new StringBuffer();

       start = System.currentTimeMillis();

       for (int i=0; i<TEST_TIMES; i++) {

              strBuffer.append("cppmule");

       }

       long strBufferUsed = System.currentTimeMillis() - start;

       System.out.println("StringBuffer append: " + strBufferUsed + " ms.");

      

       //StringBuilder

       start = 0;

       StringBuilder strBuilder = new StringBuilder();

       start = System.currentTimeMillis();

       for (int i=0; i<TEST_TIMES; i++) {

              strBuilder.append("cppmule");

       }

       long strBuilderUsed = System.currentTimeMillis() - start;

       System.out.println("StringBuilder append: " + strBuilderUsed + " ms.");

       System.out.println("Times: " + TEST_TIMES);

}

Java字符串拼接运行结果:

 

The testing is running, please wait...

strUsed: 443141 ms.

StringBuffer append: 15 ms.

StringBuilder append: 31 ms.

Times: 90000

 

Author:

By: cppmule

Email: cppmule@gmail.com

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值