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
分享到:
相关推荐
#二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...
工作原因c和java都得熟悉,因此把java端和c/c++实现都给大家了,注意java端要明确指明字符集为GBK,因为各版本jdk默认字符集并不一致,key采用16位,你知道的。压缩包里有两个工程,一个vc6.0一个myeclipse,本帖是...
c/c++复制字符串到剪粘板中
Dev-cpp5.4.0及API帮助文档 2018年蓝桥杯C语言/c++ 需要的同学可以下载使用
这个文档压缩包包含普通C/C++中文文档和蓝桥杯比赛时用的文档,C/C++中文文档是最新版,支持到C++20和C18,且包含以前版本的内容。蓝桥杯蓝桥杯C/C++组用的文档比正常文档更简略,但包含了ASCII码表。
c / c++ / cpp / stl 中文帮助文档手册chm格式下载 C/C++ 语言参考 基本C/C++ 预处理命令 操作符优先级 转义字符 ASCII码表 基本数据类型 关键字 标准 C 库: Standard C I/O Standard C String...
基于Eclipse开发NDK ,开发C ,C++ 和 Java的源码,可以查看Java调用c/c++, 和c/c++调用Java的内容
c/c++中文帮助文档(API),包含c和c++所有的库函数
C语言字符串函数大全C/C++基础 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) ...
工作原因c和java都得熟悉,因此把java端和c/c++实现都给大家了,注意java端要明确指明字符集为GBK,因为各版本jdk默认字符集并不一致,key采用16位,你知道的。压缩包里有两个工程,一个vc6.0一个myeclipse,都拿去...
标准C/C++编写的字符串分隔函数,可以设置分隔字符串,解出字符串存到vector里面。有需要的可以下载
C/C++实现字符串的拆分截取,输入一个字符串,并输入截取起始位置和截取长度,返回截取到的结果
C语言/C++基础之爱心源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
C/C++参考手册是专为C语言开发者制作的一个学习文档,包含了基本的介绍、预处理命令、算法、正则表达式、转义字符、基本数据类型等介绍,可以方便开发者快速掌握C语言的开发技巧,让你轻松开发出满意的软件。
C/C++字符串一般通过char* 或wchar_t*来表示,char*表示的是ANSCII字符串, wchar_t*表示Unicode字符串,Unicode字符串在C/C++中一个字符占用两个字节,ANSII字符串一个字符占用一个字节(中文占用两个字节), ...
c/c++字符串操作大全,基本包含了对字符串的全部操作,简单实用。
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。
使用C/C++实现字符串的反转,不能使用系统函数
详细请见文档说明c/c++调用java方法
C/C++语言格式化字符串 %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g...