|
|
|
|
|
by dbdr
24 days ago
|
|
This paper is relevant: Energy Efficiency across Programming Languages:
How Does Energy, Time, and Memory Relate? https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/pap... This is the main summary table: Energy Time Memory
(c) C 1.00 (c) C 1.00 (c) Pascal 1.00
(c) Rust 1.03 (c) Rust 1.04 (c) Go 1.05
(c) C++ 1.34 (c) C++ 1.56 (c) C 1.17
(c) Ada 1.70 (c) Ada 1.85 (c) Fortran 1.24
(v) Java 1.98 (v) Java 1.89 (c) C++ 1.34
(c) Pascal 2.14 (c) Chapel 2.14 (c) Ada 1.47
(c) Chapel 2.18 (c) Go 2.83 (c) Rust 1.54
(v) Lisp 2.27 (c) Pascal 3.02 (v) Lisp 1.92
(c) Ocaml 2.40 (c) Ocaml 3.09 (c) Haskell 2.45
(c) Fortran 2.52 (v) C# 3.14 (i) PHP 2.57
(c) Swift 2.79 (v) Lisp 3.40 (c) Swift 2.71
(c) Haskell 3.10 (c) Haskell 3.55 (i) Python 2.80
(v) C# 3.14 (c) Swift 4.20 (c) Ocaml 2.82
(c) Go 3.23 (c) Fortran 4.20 (v) C# 2.85
(i) Dart 3.83 (v) F# 6.30 (i) Hack 3.34
(v) F# 4.13 (i) JavaScript 6.52 (v) Racket 3.52
(i) JavaScript 4.45 (i) Dart 6.67 (i) Ruby 3.97
(v) Racket 7.91 (v) Racket 11.27 (c) Chapel 4.00
(i) TypeScript 21.50 (i) Hack 26.99 (v) F# 4.25
(i) Hack 24.02 (i) PHP 27.64 (i) JavaScript 4.59
(i) PHP 29.30 (v) Erlang 36.71 (i) TypeScript 4.69
(v) Erlang 42.23 (i) Jruby 43.44 (v) Java 6.01
(i) Lua 45.98 (i) TypeScript 46.20 (i) Perl 6.62
(i) Jruby 46.54 (i) Ruby 59.34 (i) Lua 6.72
(i) Ruby 69.91 (i) Perl 65.79 (v) Erlang 7.20
(i) Python 75.88 (i) Python 71.90 (i) Dart 8.64
(i) Perl 79.58 (i) Lua 82.91 (i) Jruby 19.84
|
|
(C, C++) and (JS, TS) are almost source-compatible, chances are you can rename test.c to test.cpp and test.js to test.ts and you're done. Yet they're showing massive differences?
Also most of the compiled languages with no runtime should get results that are very close to each other: good compilers should produce similar object-code for this type of microbenchmark.
Not to mention this is really measuring the implementation, you can't measure a language. Mike Pall wouldn't be down there, and JS/TS wouldn't be up there without V8 and friends.