SlideShare a Scribd company logo
What Are Your Programming Language’s
Energy-Delay Implications?
Mining Software Repositories 2018
Gothenburg, Sweden
Stefanos Maria Panos Diomidis
Georgiou Kechagia Louridas Spinellis
Introduction
2
15%
2.3%
Motivation
3
Research Gap
4
Existing Work
• Energy/Performance investigation
• Examination of running applications
• Experiments on a single platform
Ours
• Energy Delay Product measurements
• Comparison of 14 languages
• Analysis of small programming tasks
• Experiments on 3 platforms
Energy Delay Product
5
Research Questions
6
RQ1: Which programming languages are the
most EDP efficient and inefficient for particular
task?
RQ2: Which type of programming languages are,
on average, more EDP efficient and inefficient for
each of our selected platforms?
RQ3: How much does the EDP of each
programming language differ among the selected
platforms?
Programming Languages
• Monthly index rating based on languages
popularity
• Data retrieved from 25 search engines
using search query
• Programming Languages criteria:
1. The least, 5000 hits on Google
2. Turing complete
3. Wikipedia page
7
Selected Programming Languages
Categories Programming Compilers & Interpreters Optimization
Languages Embedded Laptop Server Flags
Compiled C 6.3.0 6.4.1 6.4.1 -O3
C++ 6.3.0 6.4.1 6.4.1 -O3
Go 1.4.3 1.7.6 1.7.6 --
Rust 1.20.0 1.18.0 1.21.0 -O
Swift 3.1.1 3.0.2 3.0.2 -O
Semi-Compiled C# 4.6.2 4.6.2 4.6.2 -optimize+
VB.NET 4.6.2 4.6.2 4.6.2 -optimize+
Java 1.8.0 1.8.0 1.8.0 --
Interpreted JavaScript 9.0.4 8.9.3 8.9.3 --
Perl 5.24.1 5.24.1 5.24.1 --
PHP 5.6.30 7.0.25 7.0.25 --
Python 2.7.23 2.7.13 2.7.13 --
R 3.3.3 3.4.2 3.4.2 --
Ruby 2.4.2 2.4.1 2.4.1 -- 8
Rosetta Code Repository
9
Data Set
Categories Tasks
Arithmetic exponentiation-operator and numerical-integration
Compression huffman-coding and lzw-compression
Concurrent concurrency-computing and synchronous-concurrency
Data structures array-concatenation and json
File handling file-input-output
Recursion Factorial, ackermann-function and palindrome-detection
Regular Expression regular expression
Sorting algorithms selection, insertion, merge, bubble, and quick
String manipulation url-encoding/decoding
Object-Oriented inheritance single/multiple, class, and call-an-object-method
Functional function-composition
10
Amendments
✓ Wrapped tasks in a loop (more than a sec.)
✓ Wrote from scratch missing implementations
✓ Removed multiple implementations of the same
languages
✓ Made tasks execution loop dependent and added
volatile variables
✓ 2000 approx. BASH script to manage data set
11
Automated Script for the experiment
Experimental Platform
13
Execution Process
14
1
2
3
4
5
6
15
16
RQ1. Which programming languages are the most EDP
efficient and inefficient for particular tasks?
17
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
OpenMP + libco
Sys Calls + I/O buffers
V8 engine + RegEx
Memory + Speed
Meta-programming
Computation speed
Possible Applications
18
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
RQ2. Which types of programming languages are, on average,
more EDP efficient and inefficient for each of the selected
platforms?
19
Rank Embedded Laptop Server
1 C C C
2 C++ Go Go
3 Go C++ C++
4 Rust JavaScript C#
5 JavaScript Rust JavaScript
6 C# C# Rust
7 VB.NET VB.NET VB.NET
8 PHP PHP PHP
9 Ruby Ruby Python
10 Python Swift Ruby
11 Perl Python Swift
12 Java Perl Perl
13 Swift Java Java
14 R R R
RQ3. How much does the EDP of each programming language
differ among the selected platforms?
• Hypothesis H0: A programming language’s average EDP, does not
have a statistically important difference between the measurement
platforms.
20
There is a significant difference between the average EDP, in
some case, of the embedded and laptop platforms.
Conclusions
• Proper selection of programming languages
implementation offer EDP efficiency.
• Compiled are more EDP efficient than semi-compiled and
interpreted, in most of cases.
• There is no statistical difference among the same
implementations on different platforms.
21
Future work
• More and more realistic test inputs
• More categories e.g., networking
• Different CPU clock frequencies
22
Take-aways
• a customized and extended data set that can be used
as a benchmark for similar studies
• a set of tools for measuring the EDP of various
programming languages and tasks
• an empirical study on programming language EDP
implications,
• a programming language-based ranking catalogue, in
the form of heat maps, where developers can find which
programming language to pick for particular tasks
Contact details: sgeorgiou@aueb.gr
sgeorgiou@singularlogic.eu
https://github.com/stefanos1316
Thank you!
References
• https://mashable.com/2017/12/12/qualcomm-s
napdragon-845-phone-innovations/
• http://emsys-design.com/data-centers.php
• https://www.ziprecruiter.com/blog/software-de
veloper-job-description-sample-template/
• http://www.lincoder.com/using-strace-to-trace-
system-calls-and-signals-in-linux/
• https://en.wikipedia.org/wiki/Npm_(software)
EDP how it works
Consider the following case where we have
applications A1 and A2.
A1 has 2 seconds of execution time and 5 joules
of energy consumption.
A2 has 3 seconds of execution time and 2 joules
of energy consumption.
By increasing their weights (E x T^w where w =
1,2,3) we can see the following:
w = 1: A1 2s 5j => 10 EDP
A2 3s 2j => 6 EDP
w = 2: A1 4s 5j => 20 EDP
A2 9s 2j => 18 EDP
w = 3: A1 8s 5j => 40 EDP
A2 27s 2j => 54 EDP
Get ready, questions are coming!!!
Which are the different venues for measuring
software’s energy consumption?
What are their pitfalls of each approach?
What are your Programming Language's Energy-Delay Implications?

More Related Content

PPTX
Go programming language
PPTX
Ch1 language design issue
PDF
Principles Of Programing Languages
PDF
Principles of programming languages. Detail notes
PPTX
C c#
PDF
Compiler Design Quiz
PDF
Coherent SDN Forwarding Plane Programming
Go programming language
Ch1 language design issue
Principles Of Programing Languages
Principles of programming languages. Detail notes
C c#
Compiler Design Quiz
Coherent SDN Forwarding Plane Programming

What's hot (19)

PPTX
Parallel language and compiler
DOC
CV_reuven_shefer
PPTX
Embedded c c++ programming fundamentals master
PPTX
introduction to programming languages
DOCX
VenkateshPenta_Thunderhead_6.7Yrs
PDF
Ppl for students unit 1,2 and 3
PDF
Compiler design tutorial
PPTX
Introduction to programming
PPT
Compiler design
PDF
Julia Computing - an alternative to Hadoop
PPTX
Principles of programming
PPT
Introduction to course
DOC
subbu_resume
PPTX
Introduction to matlab for medical doctors and biologists (call slides)
DOCX
kapil_2_3years
DOC
Dhiraj_Resume
PPTX
Managing multilingual webcontent
PDF
Specification of a Visual Programming Language by Example
PDF
KRITI_BHOLA_CV
Parallel language and compiler
CV_reuven_shefer
Embedded c c++ programming fundamentals master
introduction to programming languages
VenkateshPenta_Thunderhead_6.7Yrs
Ppl for students unit 1,2 and 3
Compiler design tutorial
Introduction to programming
Compiler design
Julia Computing - an alternative to Hadoop
Principles of programming
Introduction to course
subbu_resume
Introduction to matlab for medical doctors and biologists (call slides)
kapil_2_3years
Dhiraj_Resume
Managing multilingual webcontent
Specification of a Visual Programming Language by Example
KRITI_BHOLA_CV
Ad

Similar to What are your Programming Language's Energy-Delay Implications? (20)

PDF
Programming Languages Energy Consumption: An Empirical Study
PPTX
Towards a Green Ranking for Programming Languages
PPTX
Putting Compilers to Work
PPTX
Heterogeneous programming
PDF
The Concurrency Challenge : Notes
PDF
Automate and customise application services and deployment
PDF
Automate and customise application services and deployment
PDF
Tracking the Solutions Powering the Next Generation of Embedded Systems in Q4...
PDF
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
PDF
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
PDF
Learn more about the tremendous value Open Data Plane brings to NFV
PDF
ODP Presentation LinuxCon NA 2014
PDF
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
PDF
7 Predictions about Software Development trends in 2021
PDF
Programming Language Platform Growth: Table Stakes or Deal Makes?
PDF
ewili13_submission_14
PDF
In-Demand Programming Languages_ A Comprehensive Guide.pdf
PPTX
Face recognization is useful in today world.pptx
PDF
The Impact of Compiler Auto-Optimisation on Arm-based HPC Microarchitectures
PDF
Programming Languages Energy Consumption: An Empirical Study
Towards a Green Ranking for Programming Languages
Putting Compilers to Work
Heterogeneous programming
The Concurrency Challenge : Notes
Automate and customise application services and deployment
Automate and customise application services and deployment
Tracking the Solutions Powering the Next Generation of Embedded Systems in Q4...
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
Learn more about the tremendous value Open Data Plane brings to NFV
ODP Presentation LinuxCon NA 2014
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
7 Predictions about Software Development trends in 2021
Programming Language Platform Growth: Table Stakes or Deal Makes?
ewili13_submission_14
In-Demand Programming Languages_ A Comprehensive Guide.pdf
Face recognization is useful in today world.pptx
The Impact of Compiler Auto-Optimisation on Arm-based HPC Microarchitectures
Ad

Recently uploaded (20)

PDF
. Radiology Case Scenariosssssssssssssss
PPTX
2Systematics of Living Organisms t-.pptx
PPTX
Comparative Structure of Integument in Vertebrates.pptx
PDF
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
PPT
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
PPTX
TOTAL hIP ARTHROPLASTY Presentation.pptx
PPTX
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
PDF
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
PPTX
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
PDF
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
PDF
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
PPTX
The KM-GBF monitoring framework – status & key messages.pptx
PDF
An interstellar mission to test astrophysical black holes
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PDF
Formation of Supersonic Turbulence in the Primordial Star-forming Cloud
PPTX
Introduction to Cardiovascular system_structure and functions-1
PDF
Sciences of Europe No 170 (2025)
PPTX
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
PPTX
7. General Toxicologyfor clinical phrmacy.pptx
PDF
Placing the Near-Earth Object Impact Probability in Context
. Radiology Case Scenariosssssssssssssss
2Systematics of Living Organisms t-.pptx
Comparative Structure of Integument in Vertebrates.pptx
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
The World of Physical Science, • Labs: Safety Simulation, Measurement Practice
TOTAL hIP ARTHROPLASTY Presentation.pptx
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
ognitive-behavioral therapy, mindfulness-based approaches, coping skills trai...
CAPERS-LRD-z9:AGas-enshroudedLittleRedDotHostingaBroad-lineActive GalacticNuc...
SEHH2274 Organic Chemistry Notes 1 Structure and Bonding.pdf
The KM-GBF monitoring framework – status & key messages.pptx
An interstellar mission to test astrophysical black holes
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
Formation of Supersonic Turbulence in the Primordial Star-forming Cloud
Introduction to Cardiovascular system_structure and functions-1
Sciences of Europe No 170 (2025)
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
7. General Toxicologyfor clinical phrmacy.pptx
Placing the Near-Earth Object Impact Probability in Context

What are your Programming Language's Energy-Delay Implications?

  • 1. What Are Your Programming Language’s Energy-Delay Implications? Mining Software Repositories 2018 Gothenburg, Sweden Stefanos Maria Panos Diomidis Georgiou Kechagia Louridas Spinellis
  • 4. Research Gap 4 Existing Work • Energy/Performance investigation • Examination of running applications • Experiments on a single platform Ours • Energy Delay Product measurements • Comparison of 14 languages • Analysis of small programming tasks • Experiments on 3 platforms
  • 6. Research Questions 6 RQ1: Which programming languages are the most EDP efficient and inefficient for particular task? RQ2: Which type of programming languages are, on average, more EDP efficient and inefficient for each of our selected platforms? RQ3: How much does the EDP of each programming language differ among the selected platforms?
  • 7. Programming Languages • Monthly index rating based on languages popularity • Data retrieved from 25 search engines using search query • Programming Languages criteria: 1. The least, 5000 hits on Google 2. Turing complete 3. Wikipedia page 7
  • 8. Selected Programming Languages Categories Programming Compilers & Interpreters Optimization Languages Embedded Laptop Server Flags Compiled C 6.3.0 6.4.1 6.4.1 -O3 C++ 6.3.0 6.4.1 6.4.1 -O3 Go 1.4.3 1.7.6 1.7.6 -- Rust 1.20.0 1.18.0 1.21.0 -O Swift 3.1.1 3.0.2 3.0.2 -O Semi-Compiled C# 4.6.2 4.6.2 4.6.2 -optimize+ VB.NET 4.6.2 4.6.2 4.6.2 -optimize+ Java 1.8.0 1.8.0 1.8.0 -- Interpreted JavaScript 9.0.4 8.9.3 8.9.3 -- Perl 5.24.1 5.24.1 5.24.1 -- PHP 5.6.30 7.0.25 7.0.25 -- Python 2.7.23 2.7.13 2.7.13 -- R 3.3.3 3.4.2 3.4.2 -- Ruby 2.4.2 2.4.1 2.4.1 -- 8
  • 10. Data Set Categories Tasks Arithmetic exponentiation-operator and numerical-integration Compression huffman-coding and lzw-compression Concurrent concurrency-computing and synchronous-concurrency Data structures array-concatenation and json File handling file-input-output Recursion Factorial, ackermann-function and palindrome-detection Regular Expression regular expression Sorting algorithms selection, insertion, merge, bubble, and quick String manipulation url-encoding/decoding Object-Oriented inheritance single/multiple, class, and call-an-object-method Functional function-composition 10
  • 11. Amendments ✓ Wrapped tasks in a loop (more than a sec.) ✓ Wrote from scratch missing implementations ✓ Removed multiple implementations of the same languages ✓ Made tasks execution loop dependent and added volatile variables ✓ 2000 approx. BASH script to manage data set 11
  • 12. Automated Script for the experiment
  • 15. 15
  • 16. 16
  • 17. RQ1. Which programming languages are the most EDP efficient and inefficient for particular tasks? 17 Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl OpenMP + libco Sys Calls + I/O buffers V8 engine + RegEx Memory + Speed Meta-programming Computation speed
  • 18. Possible Applications 18 Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl
  • 19. RQ2. Which types of programming languages are, on average, more EDP efficient and inefficient for each of the selected platforms? 19 Rank Embedded Laptop Server 1 C C C 2 C++ Go Go 3 Go C++ C++ 4 Rust JavaScript C# 5 JavaScript Rust JavaScript 6 C# C# Rust 7 VB.NET VB.NET VB.NET 8 PHP PHP PHP 9 Ruby Ruby Python 10 Python Swift Ruby 11 Perl Python Swift 12 Java Perl Perl 13 Swift Java Java 14 R R R
  • 20. RQ3. How much does the EDP of each programming language differ among the selected platforms? • Hypothesis H0: A programming language’s average EDP, does not have a statistically important difference between the measurement platforms. 20 There is a significant difference between the average EDP, in some case, of the embedded and laptop platforms.
  • 21. Conclusions • Proper selection of programming languages implementation offer EDP efficiency. • Compiled are more EDP efficient than semi-compiled and interpreted, in most of cases. • There is no statistical difference among the same implementations on different platforms. 21
  • 22. Future work • More and more realistic test inputs • More categories e.g., networking • Different CPU clock frequencies 22
  • 23. Take-aways • a customized and extended data set that can be used as a benchmark for similar studies • a set of tools for measuring the EDP of various programming languages and tasks • an empirical study on programming language EDP implications, • a programming language-based ranking catalogue, in the form of heat maps, where developers can find which programming language to pick for particular tasks Contact details: sgeorgiou@aueb.gr sgeorgiou@singularlogic.eu https://github.com/stefanos1316 Thank you!
  • 24. References • https://mashable.com/2017/12/12/qualcomm-s napdragon-845-phone-innovations/ • http://emsys-design.com/data-centers.php • https://www.ziprecruiter.com/blog/software-de veloper-job-description-sample-template/ • http://www.lincoder.com/using-strace-to-trace- system-calls-and-signals-in-linux/ • https://en.wikipedia.org/wiki/Npm_(software)
  • 25. EDP how it works Consider the following case where we have applications A1 and A2. A1 has 2 seconds of execution time and 5 joules of energy consumption. A2 has 3 seconds of execution time and 2 joules of energy consumption. By increasing their weights (E x T^w where w = 1,2,3) we can see the following: w = 1: A1 2s 5j => 10 EDP A2 3s 2j => 6 EDP w = 2: A1 4s 5j => 20 EDP A2 9s 2j => 18 EDP w = 3: A1 8s 5j => 40 EDP A2 27s 2j => 54 EDP
  • 26. Get ready, questions are coming!!!
  • 27. Which are the different venues for measuring software’s energy consumption?
  • 28. What are their pitfalls of each approach?