post Image
高エネルギー効率プログラミング言語C

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も大盛況ですから、興味を持った方は覗いてみるのはいかがでしょう。

一方、C言語 Advent Calendar


警告: 本投稿で紹介したプログラミング言語は、あくまでソフトウェア実行時効率という評価軸で高スコアを取ったにすぎません。現実のプログラミング言語選定では、実行時効率以外のさまざまな要因も考慮にいれるべきですから、このデータを短絡的に解釈・利用しないようご注意ください。


  1. ブロント様言行録 一般的に言ってナイトが最強か >> 39 より 


『 Go 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。