`
qsshuang
  • 浏览: 2275 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

看到了几种循环测试效率的测试

阅读更多
     不用多说看代码 一目了然,代码不是我写的,是复制其他博客上的,与其独乐乐,不如众乐乐。
     import java.util.ArrayList;
import java.util.Collections;
import com.google.common.base.Stopwatch;
import java.util.Iterator;

public class Benchmark {
    public static void main(final java.lang.String[] args) {
        final int SIZE = Integer.MAX_VALUE / 32;
        System.out.printf("loop times: %d%n",SIZE);
        Stopwatch stopwatch = new Stopwatch().start();
        ArrayList<String> list = new ArrayList<>(SIZE);
        for (int i = 0; i < SIZE; i++) {
            list.add(" ");
        }
        long millis = stopwatch.elapsedMillis();
        System.out.printf("init took: %dms%n",millis);

        StringBuilder builder = new StringBuilder(SIZE);
        stopwatch = stopwatch.reset().start();
        for (int i = 0; i < SIZE; i++) {
            builder.append(list.get(i));
        }
        millis = stopwatch.elapsedMillis();
        System.out.printf("for loop took: %dms%n",millis);

        builder.delete(0,SIZE);
        stopwatch = stopwatch.reset().start();
        for (String v : list) {
            builder.append(v);
        }
        millis = stopwatch.elapsedMillis();
        System.out.printf("foreach took: %dms%n",millis);

        builder.delete(0,SIZE);
        stopwatch = stopwatch.reset().start();
        for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) {
            builder.append(iter.next());
        }
        millis = stopwatch.elapsedMillis();
        System.out.printf("iterator loop took: %dms%n",millis);
    }
}

Oracle JDK 7u1

Java code
java -Xmx512m  -cp .:guava-10.0.jar Benchmark
loop times: 67108863
init took: 1601ms
for loop took: 3688ms
foreach took: 4766ms
iterator loop took: 4546ms

Java code
java -server -Xmx512m  -cp .:guava-10.0.jar Benchmark
loop times: 67108863
init took: 1129ms
for loop took: 3876ms
foreach took: 3491ms
foreach loop took: 4318ms

大神如果你看到这代码是写,不好意思啊。希望不是版权盗用啊   后面是两种测试结果,
分享到:
评论

相关推荐

    实现数组复制常用的5种方式及组合类的深复制(深拷贝)

    接下来,我们看下这几种方法的效率和源码,以及如何使用序列化和反序列化实现组合类的深复制。 我们以百万级和千万级的数据作为测试集。测试源码如下: public static void main(String[] args) throws ...

    C语言程序设计标准教程

    从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其应用,使...

    一种快速收敛的自适应算法求解最小包围盒OBB

    一种快速收敛的自适应算法求解最小包围盒OBB 最小包围盒沿坐标轴向包围盒AABB(Axis-...博主几年前提出的一种求解OBB问题的自适应算法,并用UG NX二次开发Grip语言实现了此算法,经过测试,运算效率和精度都十分理想

    热管刀具的设计及散热性能测试 (2012年)

    为设计结构合理的热管刀具,研制了热管性能测试系统,模拟热管在车刀内的工作条件,通过正交试验优化热管使用参数....对这几种热管刀具的切削量热实验表明:嵌入式热管刀具中的热管传热效率最高,槽嵌式的次之,侧压式的最弱.

    SQL批量插入数据几种方案的性能详细对比

    公司技术背景:数据库访问类(xxx.DataBase.Dll)...有关这个的性能,很早之前我是亲自做过性能测试的,效率非常高。这也是我向公司同事推荐的技术方案。技术方案三:利用SQLServer2008的新特性–表值参数(Table-Value

    怎么提高记忆单词效率

    此外,笔者在多届学生中所做的定量、定性分析发现:除了各类学生有各自的差异外,带有普遍性的遗忘成因主要有以下几种。 1.在首次学习或后来的记忆过程中,没有把单词信息(音、形、义、词性、用法)准确地从句子...

    浅谈VIPA 200V和ED200PA在钢叠装系数测试仪上的应用

    测试仪的常用接口主要有如下几种:RJ-45接口RJ-45接口是以太网为常用的接口,RJ-45是一个常用名称,指的是由IEC(60)603-7标准化,使用由国际性的接插件标准定义的8个位置(8针)的模块化插孔或者插头。RS-232接口...

    工业电子中的浅谈VIPA 200V和ED200PA在钢叠装系数测试仪上的应用

    测试仪的常用接口主要有如下几种:RJ-45接口RJ-45接口是以太网最为常用的接口,RJ-45是一个常用名称,指的是由IEC(60)603-7标准化,使用由国际性的接插件标准定义的8个位置(8针)的模块化插孔或者插头。...

    优化JavaScript脚本的性能的几个注意事项

    随着网络的发展,网速和机器速度的提高,越来越多的网站用到了丰富客户端技术。而现在Ajax则是最为流行的一种方式。...),while(),for(in)三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,

    windows端批量生成大量文件的脚本

    适用于创造大量测试数据已达到性能测试的目的 批处理脚本是一种用于Windows操作系统的脚本语言,它可以用来自动化执行一系列的命令和任务。通过编写批处理脚本,可以简化重复性的操作,提高工作效率。 批处理脚本...

    iOS遍历集合(NSArray、NSDictionary、NSSet)的方法总结

    集合的遍历操作是开发中最常见的操作之一,从C语言经典的for循环到利用多核cpu的优势进行遍历,开发中ios有若干集合遍历方法,本文通过研究和测试比较了各个操作方法的效率和优略势,并总结几个使用集合遍历时的小...

    计算机二级C语言考试题预测

    (54) 在下列几种排序方法中,要求内存量最大的是(D) 注:要牢记,书中没有提到。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是(A) 注:和设计风格有关 A. 程序结构应有...

    C 程序指导书及实践指导

    2、 讨论参数的传递的几种形式。 实验八 数组(1) [实验目的] 掌握有关数组和字符串的程序设计方法。 [实验内容和步骤] 1 已知一组数据如下: 6,3,42,23,35,71,98,67,56,38 编写程序,把它们按从小到大的...

    计算机二级公共基础知识

    算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 (5)指令系统 所谓指令系统指的是一个计算机系统能执行...

    华为编程开发规范与案例

     从上面的测试过程中,我们可以看到:如此严重的问题,仅仅是一个简单的错误引起的。实际上,系统的不稳定往往是由这些看似很简单的小错误导致的。这个问题给我们教训的是:在直接对内存地址进行操作时,一定要保证...

    c语言编写单片机技巧

    UP测试,温度循环测试,高温贮存测试,湿度贮存测试等。 成测则是产品封装好后的测试,即PACKAGE测试。即是所有通过中测的产品封装后的测试,方法主要是机台自动测试,但测试项目仍与WAFER TEST相同。PACKAGE...

    CentOS.5系统管理-part1

    4.6.1 Vi及其3种运行模式 4.6.2 普通模式下的操作 4.6.3 命令行模式下的操作 4.7 sed和awk 4.7.1 sed 4.7.2 awk 4.8 进程管理和作业控制 4.8.1 进程概述 4.8.2 进程管理 4.8.3 作业控制 4.9 Shell变量和Shell环境 ...

    prime-ruby-online-web-prework

    实施Prime目标练习迭代和循环。练习定义方法和控制返回值。指示分叉并克隆此存储库。...查看Ruby中的基准测试,并介绍几种实现prime?()不同方法。资源-素查看在Learn.co上进行,并开始免费学习编码。

    prime-ruby-online-web-sp-000

    实施Prime目标练习迭代和循环。练习定义方法和控制返回值。指示分叉并克隆此存储库。...查看Ruby中的基准测试,并介绍几种实现prime?()不同方法。资源-素查看在Learn.co上进行,并开始免费学习编码。

Global site tag (gtag.js) - Google Analytics