SlideShare a Scribd company logo
1 of 29
Download to read offline
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

What's hot

VenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7YrsVenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7Yrs
Venkatesh Penta
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3
Akshay Nagpurkar
 
Dhiraj_Resume
Dhiraj_ResumeDhiraj_Resume
Dhiraj_Resume
dhirajsi
 

What's hot (20)

Parallel language and compiler
Parallel language and compilerParallel language and compiler
Parallel language and compiler
 
CV_reuven_shefer
CV_reuven_sheferCV_reuven_shefer
CV_reuven_shefer
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
VenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7YrsVenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7Yrs
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3
 
Compiler design tutorial
Compiler design tutorialCompiler design tutorial
Compiler design tutorial
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
Compiler design
Compiler designCompiler design
Compiler design
 
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to HadoopJulia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
 
The ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation serverThe ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation server
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
 
subbu_resume
subbu_resumesubbu_resume
subbu_resume
 
Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)
 
kapil_2_3years
kapil_2_3yearskapil_2_3years
kapil_2_3years
 
Dhiraj_Resume
Dhiraj_ResumeDhiraj_Resume
Dhiraj_Resume
 
Managing multilingual webcontent
Managing multilingual webcontentManaging multilingual webcontent
Managing multilingual webcontent
 
Specification of a Visual Programming Language by Example
Specification of a Visual Programming Language by ExampleSpecification of a Visual Programming Language by Example
Specification of a Visual Programming Language by Example
 
KRITI_BHOLA_CV
KRITI_BHOLA_CVKRITI_BHOLA_CV
KRITI_BHOLA_CV
 

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

C Course material
C Course materialC Course material
C Course material
Fareed Khan
 
Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 

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

Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
C Course material
C Course materialC Course material
C Course material
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 LanguagesA Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
 
Unit 1
Unit 1Unit 1
Unit 1
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
DMA113 Chap1
DMA113 Chap1DMA113 Chap1
DMA113 Chap1
 
Comparative study of programming languages
Comparative study of programming languagesComparative study of programming languages
Comparative study of programming languages
 
Programming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwaresProgramming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwares
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 

Recently uploaded

Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
PirithiRaju
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
Lokesh Kothari
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Lokesh Kothari
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
ssuser79fe74
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Sérgio Sacani
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
Areesha Ahmad
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
Sérgio Sacani
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
RizalinePalanog2
 

Recently uploaded (20)

High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
High Class Escorts in Hyderabad ₹7.5k Pick Up & Drop With Cash Payment 969456...
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
GUIDELINES ON SIMILAR BIOLOGICS Regulatory Requirements for Marketing Authori...
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 

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?