关于性能

最后更新于:2022-04-01 23:05:43

                        这里有一个[性能测试](http://benchmarksgame.alioth.debian.org/u64/performance.php?test=binarytrees&sort=elapsed)网站

我对于网站测试的结果,我总结的情况就是两点. 1. 排在后面的基本都是动态类型语言,静态类型语言相对容易优化到性能差不多的结果. 2. 同一个语言代码写得好差产生的性能差异,远远比各种语言最好的代码性能差异大.

总的来说,程序员越自由,程序性能就越差

不过也有反例,我们之前那个程序就是.

//java版本
public static void main(String[] args) {
    List<string> paramsList = new LinkedList<string>() {{
        add("&gt;= 3");
        add("&lt; 7");
    }};
    JavaRangeMatcher matcher = new JavaRangeMatcher(paramsList);
    Random random = new Random();
    long timeBegin = System.currentTimeMillis();
    for (int i = 0; i &lt; 100000000; i++) {
        int input = random.nextInt() % 10;
        matcher.check(input);
    }
    long timeEnd = System.currentTimeMillis();
    System.out.println("java 消耗时间: " + (timeEnd - timeBegin) + " 毫秒");
    //java 消耗时间: 3263 毫秒
}
//scala版本
def main(args: Array[String]) {
  val requirements = Seq("&gt;= 3", "&lt; 7")
  val rangeMatcher = RangeMatcher(requirements)
  val timeBegin = System.currentTimeMillis()
  0 until 100000000 foreach {
    case _ =&gt;
      rangeMatcher.check(Random.nextInt(10))
  }
  val timeEnd = System.currentTimeMillis()
  println(s"scala 消耗时间 ${timeEnd - timeBegin} 毫秒")
  //scala 消耗时间 2617 毫秒
}

想想这是为什么?

';