C++ Java Go Scala 的环状认证

[原文] Loop Recognition in C++ Java Go Scala

【摘要】C++ Java Go Scala 的环状认证

在该经验性的报告中我们对四种编程语言,即C++, Java, Go, 以及Scala定义了一个良好编码的,精致紧密的衡量准则。各个实现使用了其语言惯用的容器类(idiomatic container classes),循环构造(looping constructs), 以及内存/对象分配模式。它并不试图开发特定语言以及运行时特性以达到最大性能。该方法允许一个较公平的关于“语言特性,代码复杂度, 编译器以及编译时间, 二分大小, 运行时,以及内存足迹(memory footprint)”的比较。准则本身是简单以及紧密的,运用了许多语言特性, 特别的还是高层的数据结构(链表,映射, 列表,以及关于集合和链表的数组),少数的算法(联合/查找 union/find ,深度优先遍历 dfs / 深度递归 deep recursion, 以及基于Tarjan的环状认证),在集合类型上的迭代,一些面向对象特性,以及一些感兴趣的内存分配模式。我们不会对任何多线程的方面进行探索,或者由于语言的不同而有巨大差异的高层类型机制。基准点在所有被测试的语言实现范围内都有非常大的不同。在经过谷歌内部发行的该基准后,多个工程师产出了该基准的高度优化版本。我们描述了许多已经执行了的优化,大多针对运行时性能以及代码复杂性。该努力仅是轶闻趣事式的比较,该基准,以及后来的调优努力, 是各个语言典型的性能痛点的一个指示。

 

你可能感兴趣的:(C++,c,scala,C#,Go)