java字符串拼接与性能
2024-10-15 16:45:59
使用
- Concatenation Operator (+)
- String concat method – concat(String str)
- StringBuffer append method – append(String str)
- StringBuilder append method – append(String str)
进行性能测试。
环境 win7 32位, cpu双核2.5GHZ,2G内存。
测试代码如下:
private final static int OUTER_ITERATION = 10;
private final static int INNER_ITERATION = 50000; /**
* @param args
*/
public static void main(String[] args) {
String addTestStr = "";
String concatTestStr = "";
StringBuffer concatTestSb = null;
StringBuilder concatTestSbu = null; for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
StopWatch stopWatch = new LoggingStopWatch("StringAddConcat");
addTestStr = "";
for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
addTestStr += "*";
stopWatch.stop();
} for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
StopWatch stopWatch = new LoggingStopWatch("StringConcat");
concatTestStr = "";
for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
concatTestStr.concat("*");
stopWatch.stop();
} for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
StopWatch stopWatch = new LoggingStopWatch("StringBufferConcat");
concatTestSb = new StringBuffer();
for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
concatTestSb.append("*");
stopWatch.stop();
} for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
StopWatch stopWatch = new LoggingStopWatch("StringBuilderConcat");
concatTestSbu = new StringBuilder();
for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
concatTestSbu.append("*");
stopWatch.stop();
} }
测试结果:
Performance Statistics 2010-04-08 06:16:00 - 2010-04-08 06:16:30
Tag | Avg(ms) | Min | Max | Std Dev | Count |
StringAddConcat | 9355.4 | 7860 | 10046 | 547.7 | 10 |
StringBufferConcat | 3.5 | 0 | 5 | 2.3 | 10 |
StringBuilderConcat | 2.0 | 0 | 5 | 2.4 | 10 |
StringConcat | 3.1 | 0 | 6 | 2.5 | 10 |
最新文章
- UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?
- OpenLiveWriter代码插件
- 【神器】vimum在浏览器中键盘操作选择、复制、粘贴,键盘党的最爱
- oracle 授权
- MSSQL常用函数
- jquery源码
- 用Python的smtp模块发邮件的示例
- HDU 3333 Turing Tree (树状数组)
- String.Format格式说明(转)
- AutoCAD使用技巧
- linux 下网站压力测试工具webbench
- Tomcat Java内存溢出 PermGen space 解决方案
- pku2104
- Hadoop新生报到(一) hadoop2.6.0伪分布式配置详解
- Springmvc_validation 效验器
- Servlet 执行流程 生命周期 ServletConfig 线程安全
- BZOJ_4004_[JLOI2015]装备购买_线性基
- Softmax函数详解与推导
- CF685B Kay and Snowflake 贪心
- super和this的区别