International Conference on Software Language Engineering(SLE) 2017年採択ペーパー "Energy Efficiency across Programming Languages -- How Do Energy, Time, and Memory Relate?" の雑な紹介。
(要旨/Abstractより抄訳)
本稿では、良く知られた27種類のプログラミング言語毎のメモリ使用やエネルギー消費といった、実行時における調査結果を示す。10種類の異なる問題をそれぞれのプログラミング言語によって実装し、それらのパフォーマンスを測定する。結果は興味深いものであり、遅い/速い言語ほど少ない/多いエネルギーを消費し、またメモリ使用量がエネルギー消費に影響を及ぼすことが明らかとなった。エネルギー消費量が重要な状況において、ソフトウェア技術者がプログラミング言語を選定する手助けとして、この調査結果の活用方法を示す。
簡単に言ってしまえば、「実行時効率が良いプログラミング言語はどれ?」への回答(の一つ)です。評価の観点は3つ:
- エネルギー(Energy): 低消費電力ほど望ましい。地球に優しく。
- 時間(Time): 短時間ほど望ましい。"速さ"は正義。
- メモリ(Memory): 低使用量ほど望ましい。メモリは有限資源。
詳細はペーパー本文や補足サイトに譲り、ここでは各観点でベスト3を取ったプログラミング言語を見てみましょう:
順位 | エネルギー | 時間 | メモリ |
---|---|---|---|
1st | C | C | Pascal |
2nd | Rust | Rust | Go |
3rd | C++ | C++ | C |
やはり C言語 は強い。3部門全てで入賞しています。
??「C言語最強とあまりいうと他の一般プログラマ言語が嫉妬するのであまり連呼すべきではない マシンを支配する能力はすばらしいがそれも他のプログラマの人がやさしくフォローしているおかげ おれの知っているC言語そうやっていつも謙虚にUB(未定義動作)でも実行していたので人望もすばらしかった」1
絶対王者 C を除くと、古参のプログラミング言語(C++とかね)を抑えて Rust言語 や Go言語 が2位になった点は注目に値すると思います。2つとも今まさに“ホット”なプログラミング言語ですね!今年(2017)のAdvent Calendarも大盛況ですから、興味を持った方は覗いてみるのはいかがでしょう。
- Rust関連のAdvent Calendar
- Go関連のAdvent Calendar (無印GoとGo2~Go4が該当します)
警告: 本投稿で紹介したプログラミング言語は、あくまでソフトウェア実行時効率という評価軸で高スコアを取ったにすぎません。現実のプログラミング言語選定では、実行時効率以外のさまざまな要因も考慮にいれるべきですから、このデータを短絡的に解釈・利用しないようご注意ください。
-
ブロント様言行録 一般的に言ってナイトが最強か >> 39 より ↩