小编Jon*_*Jon的帖子

对Java HashMap Get进行基准测试(JMH vs循环)

我的最终目标是使用标准Java集合作为基线,为几个Java原始集合库创建一套全面的基准.在过去,我使用了编写这些微基准的循环方法.我把我在基准测试中的函数放在循环中并迭代100万次以上,这样jit就有机会进行预热.我获取循环的总时间,然后除以迭代次数,以估计单次调用我正在进行基准测试的函数所花费的时间.在最近阅读了关于JMH项目,特别是这个例子之后:JMHSample_11_Loops我看到了这种方法的问题.

我的机器:

Windows 7 64-bit
Core i7-2760QM @ 2.40 GHz
8.00 GB Ram
jdk1.7.0_45 64-bit
Run Code Online (Sandbox Code Playgroud)

这是上面描述的循环方法代码的简单示例:

    public static void main(String[] args) {
    HashMap<Long, Long> hmap = new HashMap<Long, Long>();
    long val = 0;

    //populating the hashmap
    for (long idx = 0; idx < 10000000; idx++) {
        hmap.put(idx, idx);
    }


    Stopwatch s = Stopwatch.createStarted();
    long x = 0;
    for (long idx = 0; idx < 10000000; idx++) {
       x =  hmap.get(idx);
    }
    s.stop();
    System.out.println(s); //5.522 s
    System.out.println(x); …
Run Code Online (Sandbox Code Playgroud)

java benchmarking jmh

8
推荐指数
1
解决办法
2227
查看次数

Java的哪些特性允许它比同类C++程序更快地构建?

可能重复:
为什么C++编译需要这么长时间?

我正在处理两个大小相同(loc)的不同项目.使用Ant的Java构建过程以分钟为单位进行测量.使用CMAKE工具的C++构建处理以小时为单位进行测量.

Java的哪些特性允许它比同类C++程序更快地构建?

java build-process

5
推荐指数
1
解决办法
740
查看次数

如何在SQL中实现此算法?

我试图在SQL(transact sql)中实现一个算法,并且鉴于我目前的能力,发现它很困难.我试图将问题排除在问题之外.这个算法背后的基本思想是用户计划一个月的预算.他们很清楚金钱来来往往多少钱.现在是月中.问题是:根据目前的义务,在本月剩余时间里,账户的最差位置是什么?

例如,看看下面的时间线吧

Today = 15th
Util  = 17th
B-day = 19th
Cable = 22nd
Wages = 25th
Run Code Online (Sandbox Code Playgroud)

在17日,该帐户将比今天少150美元.在19号,帐户将比今天多100美元.在22日,该帐户将比今天少25美元.在25日,该帐户将比今天多975美元.

所以在这个例子中,查询将返回 - $ 150.

注意:我只关心返回的负值.如果它是否定的,则表示您有义务,不应该花费该金额.如果是积极的,那也没关系.您还不能在帐户中花钱.

|                                   |                                             |
|          ^            ^           |    ^            ^                           |
|          |Rent(-500)  |Phone(-50) |    |Util(-150)  |Cable(-125)                |
-----------------------------------------------------------------------------------
|        ^                          |       ^                     ^               |
|        |Wages(+1000)              |       |B-day(+250)          |Wages(+1000)   |
|                                   |                                             |
Past                                Today                                         Future
Run Code Online (Sandbox Code Playgroud)

我们可以用于此问题的简单表:

create table MoneyFlow
(
    fiscalEventID int not null, 
    value money,
    transactionDate date
)
Run Code Online (Sandbox Code Playgroud)

还有一种看待它的方法.你如何在SQL中执行以下算法?

Algorithm
  Input:  Start date, End …
Run Code Online (Sandbox Code Playgroud)

sql sybase

1
推荐指数
1
解决办法
508
查看次数

标签 统计

java ×2

benchmarking ×1

build-process ×1

jmh ×1

sql ×1

sybase ×1