SlideShare a Scribd company logo
jStanley: Placing a Green Thumb on
Java Collections
Rui Pereira*‡, Pedro Simão§†, Jácome Cunha§‡, João Saraiva*‡
http://greenlab.di.uminho.pt* HASLab/INESC Tec
§ NOVA LINCS
‡ Universidade do Minho
† DI, FCT, Universidade NOVA de Lisboa
Portugal
{ruipereira, jacome, jas}@di.uminho.pt, p.simao@campus.fct.unl.pt
ASE 2018 @ Montpellier, France, September 3-7
Going Green 2
+ =
greenlab.di.uminho.pt
Global energy system is unsustainable 3
greenlab.di.uminho.pt
Green Computing
 Caught the attention of many companies allowing them to save:
greenlab.di.uminho.pt
4
“close to 50% of the energy costs of an organization can be
attributed to the IT departments”
- [PICMET, 2009]
“up to 90% of energy used by ICT hardware can be attributed to
software”
- [The Greenhouse Gas Protocol Report, 2013]
Green Software
 Problems (extend to programmers):
 How to analyze
 How to interpret
 How to improve
greenlab.di.uminho.pt
5
Mining questions about software energy consumption
- [MSR’14]
Integrated energy-directed test suite optimization
- [ISTA’14]
Can we save energy by refactoring Java
programs to use different data structure
implementations?
greenlab.di.uminho.pt
6
greenlab.di.uminho.pt
7
 Java Collections Framework (JCF) library
ConcurrentSkipListSet ArrayList ConcurrentHashMap
CopyOnWriteArraySet AttributeList ConcurrentSkipListMap
HashSet CopyOnWriteArrayList HashMap
LinkedHashSet LinkedList Hashtable
TreeSet RoleList IdentityHashMap
RoleUnresolvedList LinkedHashMap
Stack Properties
Vector SimpleBindings
TreeMap
UIDefaults
WeakHashMap
Sets Lists Maps
Towards a Ranking of Java data structures
Design – Data Structures
greenlab.di.uminho.pt
8
add add clear
addAll addAll containsKey
clear add(index) containsValue
contains addAll(index) entrySet
containsAll clear get
iterateAll contains iterateAll
iterator containsAll keySet
remove get put
removeAll indexOf putAll
retainAll iterator remove
toArray lastIndexOf values
listIterator
Continues…
Sets Lists Maps
Towards a Ranking of Java data structures
Design - Methods
greenlab.di.uminho.pt
9
Towards a Ranking of Java data structures
Results (25k pop)
greenlab.di.uminho.pt
10
Towards a Ranking of Java data structures
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
11
Methodology
1. Compute which collections/methods are used in the programs
2. Look up the appropriate energy tables for the used collections/methods
3. Choose the most energy efficient alternative
Automatically with jStanley
greenlab.di.uminho.pt
12
Validation
greenlab.di.uminho.pt
13
Results
greenlab.di.uminho.pt
14
Conclusion
greenlab.di.uminho.pt
15
 We have presented a tool, jStanley, that can automatically improve Java code
 Improvements include less energy consumption, time, or a combination of both
 It’s a plug-in for Eclipse
 Static analysis, giving results in seconds
 Quick fix suggestions will display how much is the improvement expected to be
 We are working on memory consumption to include in the jStanley
 We will run a broader study
 Measure improvements
 Measure execution time
jStanley: Placing a Green Thumb on
Java Collections
Rui Pereira*‡, Pedro Simão§†, Jácome Cunha§‡, João Saraiva*‡
http://greenlab.di.uminho.pt* HASLab/INESC Tec
§ NOVA LINCS
‡ Universidade do Minho
† DI, FCT, Universidade NOVA de Lisboa
Portugal
{ruipereira, jacome, jas}@di.uminho.pt, p.simao@campus.fct.unl.pt
ASE 2018 @ Montpellier, France, September 3-7
greenlab.di.uminho.pt
17

More Related Content

What's hot

Steve- Fall 2015 Research Poster revision4
Steve- Fall 2015 Research Poster revision4Steve- Fall 2015 Research Poster revision4
Steve- Fall 2015 Research Poster revision4
Jeehwan Steve Lee
 
Electrical Audit of Computer Labs on Campus
Electrical Audit of Computer Labs on CampusElectrical Audit of Computer Labs on Campus
Electrical Audit of Computer Labs on Campus
Michael Pérez
 
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
IJERA Editor
 
Scheduling techniques for reducing processor energy use in MacOS
Scheduling techniques for reducing processor energy use in MacOSScheduling techniques for reducing processor energy use in MacOS
Scheduling techniques for reducing processor energy use in MacOS
bane5isp
 
Can the Cloud Be Green?
Can the Cloud Be Green?Can the Cloud Be Green?
Can the Cloud Be Green?
Peter May-Ostendorp
 
ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
 ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO... ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
Abhishek Panda
 
solar air heater Using ANN
solar air heater Using ANNsolar air heater Using ANN
solar air heater Using ANN
RAJBALA PURNIMA PRIYA
 
environmental scivis via dynamic and thematc mapping
environmental scivis via dynamic and thematc mappingenvironmental scivis via dynamic and thematc mapping
environmental scivis via dynamic and thematc mapping
Neale Misquitta
 
Towards a Green Ranking for Programming Languages
Towards a Green Ranking for Programming LanguagesTowards a Green Ranking for Programming Languages
Towards a Green Ranking for Programming Languages
GreenLabAtDI
 
Distributed system
Distributed systemDistributed system
Distributed system
MD Redaan
 
Poster_Final
Poster_FinalPoster_Final
Poster_Final
Nikos Anastasiadis
 
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Association of Scientists, Developers and Faculties
 
Présentation PowerPoint - Diapositive 1
Présentation PowerPoint - Diapositive 1Présentation PowerPoint - Diapositive 1
Présentation PowerPoint - Diapositive 1
butest
 
Energy Wasting Rate as a Metrics for Green Computing and Static Analysis
Energy Wasting Rate as a Metrics for Green Computing and Static AnalysisEnergy Wasting Rate as a Metrics for Green Computing and Static Analysis
Energy Wasting Rate as a Metrics for Green Computing and Static Analysis
Jérôme Rocheteau
 
Rhushikesh Ghotkar Mechanical Engineer
Rhushikesh Ghotkar Mechanical EngineerRhushikesh Ghotkar Mechanical Engineer
Rhushikesh Ghotkar Mechanical Engineer
Rhushikesh Ghotkar
 
Design of Power and Area Efficient Approximate Multipliers
Design of Power and Area Efficient Approximate MultipliersDesign of Power and Area Efficient Approximate Multipliers
Design of Power and Area Efficient Approximate Multipliers
JAYAPRAKASH JPINFOTECH
 

What's hot (16)

Steve- Fall 2015 Research Poster revision4
Steve- Fall 2015 Research Poster revision4Steve- Fall 2015 Research Poster revision4
Steve- Fall 2015 Research Poster revision4
 
Electrical Audit of Computer Labs on Campus
Electrical Audit of Computer Labs on CampusElectrical Audit of Computer Labs on Campus
Electrical Audit of Computer Labs on Campus
 
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
Implementing Workload Postponing In Cloudsim to Maximize Renewable Energy Uti...
 
Scheduling techniques for reducing processor energy use in MacOS
Scheduling techniques for reducing processor energy use in MacOSScheduling techniques for reducing processor energy use in MacOS
Scheduling techniques for reducing processor energy use in MacOS
 
Can the Cloud Be Green?
Can the Cloud Be Green?Can the Cloud Be Green?
Can the Cloud Be Green?
 
ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
 ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO... ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
ENERGY-EFFICIENT SCHEDULING OF VIRTUAL MACHINES USING ANT COLONY OPTIMIZATIO...
 
solar air heater Using ANN
solar air heater Using ANNsolar air heater Using ANN
solar air heater Using ANN
 
environmental scivis via dynamic and thematc mapping
environmental scivis via dynamic and thematc mappingenvironmental scivis via dynamic and thematc mapping
environmental scivis via dynamic and thematc mapping
 
Towards a Green Ranking for Programming Languages
Towards a Green Ranking for Programming LanguagesTowards a Green Ranking for Programming Languages
Towards a Green Ranking for Programming Languages
 
Distributed system
Distributed systemDistributed system
Distributed system
 
Poster_Final
Poster_FinalPoster_Final
Poster_Final
 
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
 
Présentation PowerPoint - Diapositive 1
Présentation PowerPoint - Diapositive 1Présentation PowerPoint - Diapositive 1
Présentation PowerPoint - Diapositive 1
 
Energy Wasting Rate as a Metrics for Green Computing and Static Analysis
Energy Wasting Rate as a Metrics for Green Computing and Static AnalysisEnergy Wasting Rate as a Metrics for Green Computing and Static Analysis
Energy Wasting Rate as a Metrics for Green Computing and Static Analysis
 
Rhushikesh Ghotkar Mechanical Engineer
Rhushikesh Ghotkar Mechanical EngineerRhushikesh Ghotkar Mechanical Engineer
Rhushikesh Ghotkar Mechanical Engineer
 
Design of Power and Area Efficient Approximate Multipliers
Design of Power and Area Efficient Approximate MultipliersDesign of Power and Area Efficient Approximate Multipliers
Design of Power and Area Efficient Approximate Multipliers
 

Similar to jStanley: Placing a Green Thumb on Java Collections

The Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy ConsumptionThe Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy Consumption
GreenLabAtDI
 
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android EcosystemGreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenLabAtDI
 
Green Computing as an Engineering Discipline
Green Computing as an Engineering DisciplineGreen Computing as an Engineering Discipline
Green Computing as an Engineering Discipline
GreenLabAtDI
 
Automation Enhanced Green Campus Initiative
Automation Enhanced Green Campus InitiativeAutomation Enhanced Green Campus Initiative
Automation Enhanced Green Campus Initiative
IRJET Journal
 
Application of-computational-intelligence-techniques-for-economic-load-dispatch
Application of-computational-intelligence-techniques-for-economic-load-dispatchApplication of-computational-intelligence-techniques-for-economic-load-dispatch
Application of-computational-intelligence-techniques-for-economic-load-dispatch
Cemal Ardil
 
Green it
Green itGreen it
Green Computing Seminar
Green Computing SeminarGreen Computing Seminar
Green Computing Seminar
Nikunj_Agrawal
 
An Improvement in Power Management in green Computing using Neural Networks
An Improvement in Power Management in green Computing using Neural NetworksAn Improvement in Power Management in green Computing using Neural Networks
An Improvement in Power Management in green Computing using Neural Networks
IOSR Journals
 
FINAL
FINALFINAL
Greencomputing
GreencomputingGreencomputing
Greencomputing
Melaku Bayih Demessie
 
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
IJERA Editor
 
Self-adaptation Approaches for Energy Efficiency
Self-adaptation Approaches for Energy EfficiencySelf-adaptation Approaches for Energy Efficiency
Self-adaptation Approaches for Energy Efficiency
Patricia Lago
 
sustainable computing
sustainable computingsustainable computing
sustainable computing
saimashahab1
 
5 6
5 65 6
GurminderBharani_Masters_Thesis
GurminderBharani_Masters_ThesisGurminderBharani_Masters_Thesis
GurminderBharani_Masters_Thesis
bharanigurminder
 
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
TELKOMNIKA JOURNAL
 
Datacenter ISO50001 and CoC
Datacenter ISO50001 and CoCDatacenter ISO50001 and CoC
Datacenter ISO50001 and CoC
Didier Monestes
 
CS8078-Green Computing Question Bank
CS8078-Green Computing Question BankCS8078-Green Computing Question Bank
CS8078-Green Computing Question Bank
Gobinath Subramaniam
 
European Green IT Webinar 2014 - Kaliterre (France)
European Green IT Webinar 2014 - Kaliterre (France)European Green IT Webinar 2014 - Kaliterre (France)
European Green IT Webinar 2014 - Kaliterre (France)
GreenLabCenter
 
Presentation
PresentationPresentation
Presentation
Amar Dhillon
 

Similar to jStanley: Placing a Green Thumb on Java Collections (20)

The Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy ConsumptionThe Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy Consumption
 
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android EcosystemGreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
 
Green Computing as an Engineering Discipline
Green Computing as an Engineering DisciplineGreen Computing as an Engineering Discipline
Green Computing as an Engineering Discipline
 
Automation Enhanced Green Campus Initiative
Automation Enhanced Green Campus InitiativeAutomation Enhanced Green Campus Initiative
Automation Enhanced Green Campus Initiative
 
Application of-computational-intelligence-techniques-for-economic-load-dispatch
Application of-computational-intelligence-techniques-for-economic-load-dispatchApplication of-computational-intelligence-techniques-for-economic-load-dispatch
Application of-computational-intelligence-techniques-for-economic-load-dispatch
 
Green it
Green itGreen it
Green it
 
Green Computing Seminar
Green Computing SeminarGreen Computing Seminar
Green Computing Seminar
 
An Improvement in Power Management in green Computing using Neural Networks
An Improvement in Power Management in green Computing using Neural NetworksAn Improvement in Power Management in green Computing using Neural Networks
An Improvement in Power Management in green Computing using Neural Networks
 
FINAL
FINALFINAL
FINAL
 
Greencomputing
GreencomputingGreencomputing
Greencomputing
 
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
Technologies, Strategies And Algorithm In Green Computing – Solution To Energ...
 
Self-adaptation Approaches for Energy Efficiency
Self-adaptation Approaches for Energy EfficiencySelf-adaptation Approaches for Energy Efficiency
Self-adaptation Approaches for Energy Efficiency
 
sustainable computing
sustainable computingsustainable computing
sustainable computing
 
5 6
5 65 6
5 6
 
GurminderBharani_Masters_Thesis
GurminderBharani_Masters_ThesisGurminderBharani_Masters_Thesis
GurminderBharani_Masters_Thesis
 
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
HSO: A Hybrid Swarm Optimization Algorithm for Reducing Energy Consumption in...
 
Datacenter ISO50001 and CoC
Datacenter ISO50001 and CoCDatacenter ISO50001 and CoC
Datacenter ISO50001 and CoC
 
CS8078-Green Computing Question Bank
CS8078-Green Computing Question BankCS8078-Green Computing Question Bank
CS8078-Green Computing Question Bank
 
European Green IT Webinar 2014 - Kaliterre (France)
European Green IT Webinar 2014 - Kaliterre (France)European Green IT Webinar 2014 - Kaliterre (France)
European Green IT Webinar 2014 - Kaliterre (France)
 
Presentation
PresentationPresentation
Presentation
 

More from Jácome Cunha

Spreadsheet Engineering
Spreadsheet EngineeringSpreadsheet Engineering
Spreadsheet Engineering
Jácome Cunha
 
Model-driven Spreadsheets
Model-driven SpreadsheetsModel-driven Spreadsheets
Model-driven Spreadsheets
Jácome Cunha
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet Development
Jácome Cunha
 
Energy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming LanguagesEnergy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming Languages
Jácome Cunha
 
LMCC - 30 Anos
LMCC - 30 AnosLMCC - 30 Anos
LMCC - 30 Anos
Jácome Cunha
 
Explaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with SpreadsheetsExplaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with Spreadsheets
Jácome Cunha
 
Automatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from SpreadsheetsAutomatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from Spreadsheets
Jácome Cunha
 
On Understanding Data Scientists
On Understanding  Data ScientistsOn Understanding  Data Scientists
On Understanding Data Scientists
Jácome Cunha
 
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Jácome Cunha
 
Type-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web ServicesType-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web Services
Jácome Cunha
 
MDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven SpreadsheetsMDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven Spreadsheets
Jácome Cunha
 
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Jácome Cunha
 
Summer School DSL 2013 - SpreadSheet Engineering
Summer School DSL 2013 - SpreadSheet EngineeringSummer School DSL 2013 - SpreadSheet Engineering
Summer School DSL 2013 - SpreadSheet Engineering
Jácome Cunha
 
Talk at VL/HCC '12
Talk at VL/HCC '12Talk at VL/HCC '12
Talk at VL/HCC '12
Jácome Cunha
 
Talk at QUATIC '12
Talk at QUATIC '12Talk at QUATIC '12
Talk at QUATIC '12
Jácome Cunha
 
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 WorkshopTalk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
Jácome Cunha
 
Talk
TalkTalk
Talk at IS-EUD '11
Talk at IS-EUD '11Talk at IS-EUD '11
Talk at IS-EUD '11
Jácome Cunha
 
Talk at EUSPRIG '11
Talk at EUSPRIG '11Talk at EUSPRIG '11
Talk at EUSPRIG '11
Jácome Cunha
 
Talk at VL/HCC '11
Talk at VL/HCC '11Talk at VL/HCC '11
Talk at VL/HCC '11
Jácome Cunha
 

More from Jácome Cunha (20)

Spreadsheet Engineering
Spreadsheet EngineeringSpreadsheet Engineering
Spreadsheet Engineering
 
Model-driven Spreadsheets
Model-driven SpreadsheetsModel-driven Spreadsheets
Model-driven Spreadsheets
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet Development
 
Energy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming LanguagesEnergy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming Languages
 
LMCC - 30 Anos
LMCC - 30 AnosLMCC - 30 Anos
LMCC - 30 Anos
 
Explaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with SpreadsheetsExplaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with Spreadsheets
 
Automatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from SpreadsheetsAutomatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from Spreadsheets
 
On Understanding Data Scientists
On Understanding  Data ScientistsOn Understanding  Data Scientists
On Understanding Data Scientists
 
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
 
Type-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web ServicesType-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web Services
 
MDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven SpreadsheetsMDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven Spreadsheets
 
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
 
Summer School DSL 2013 - SpreadSheet Engineering
Summer School DSL 2013 - SpreadSheet EngineeringSummer School DSL 2013 - SpreadSheet Engineering
Summer School DSL 2013 - SpreadSheet Engineering
 
Talk at VL/HCC '12
Talk at VL/HCC '12Talk at VL/HCC '12
Talk at VL/HCC '12
 
Talk at QUATIC '12
Talk at QUATIC '12Talk at QUATIC '12
Talk at QUATIC '12
 
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 WorkshopTalk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
 
Talk
TalkTalk
Talk
 
Talk at IS-EUD '11
Talk at IS-EUD '11Talk at IS-EUD '11
Talk at IS-EUD '11
 
Talk at EUSPRIG '11
Talk at EUSPRIG '11Talk at EUSPRIG '11
Talk at EUSPRIG '11
 
Talk at VL/HCC '11
Talk at VL/HCC '11Talk at VL/HCC '11
Talk at VL/HCC '11
 

Recently uploaded

YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 

Recently uploaded (20)

YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 

jStanley: Placing a Green Thumb on Java Collections

  • 1. jStanley: Placing a Green Thumb on Java Collections Rui Pereira*‡, Pedro Simão§†, Jácome Cunha§‡, João Saraiva*‡ http://greenlab.di.uminho.pt* HASLab/INESC Tec § NOVA LINCS ‡ Universidade do Minho † DI, FCT, Universidade NOVA de Lisboa Portugal {ruipereira, jacome, jas}@di.uminho.pt, p.simao@campus.fct.unl.pt ASE 2018 @ Montpellier, France, September 3-7
  • 2. Going Green 2 + = greenlab.di.uminho.pt
  • 3. Global energy system is unsustainable 3 greenlab.di.uminho.pt
  • 4. Green Computing  Caught the attention of many companies allowing them to save: greenlab.di.uminho.pt 4 “close to 50% of the energy costs of an organization can be attributed to the IT departments” - [PICMET, 2009] “up to 90% of energy used by ICT hardware can be attributed to software” - [The Greenhouse Gas Protocol Report, 2013]
  • 5. Green Software  Problems (extend to programmers):  How to analyze  How to interpret  How to improve greenlab.di.uminho.pt 5 Mining questions about software energy consumption - [MSR’14] Integrated energy-directed test suite optimization - [ISTA’14]
  • 6. Can we save energy by refactoring Java programs to use different data structure implementations? greenlab.di.uminho.pt 6
  • 7. greenlab.di.uminho.pt 7  Java Collections Framework (JCF) library ConcurrentSkipListSet ArrayList ConcurrentHashMap CopyOnWriteArraySet AttributeList ConcurrentSkipListMap HashSet CopyOnWriteArrayList HashMap LinkedHashSet LinkedList Hashtable TreeSet RoleList IdentityHashMap RoleUnresolvedList LinkedHashMap Stack Properties Vector SimpleBindings TreeMap UIDefaults WeakHashMap Sets Lists Maps Towards a Ranking of Java data structures Design – Data Structures
  • 8. greenlab.di.uminho.pt 8 add add clear addAll addAll containsKey clear add(index) containsValue contains addAll(index) entrySet containsAll clear get iterateAll contains iterateAll iterator containsAll keySet remove get put removeAll indexOf putAll retainAll iterator remove toArray lastIndexOf values listIterator Continues… Sets Lists Maps Towards a Ranking of Java data structures Design - Methods
  • 9. greenlab.di.uminho.pt 9 Towards a Ranking of Java data structures Results (25k pop)
  • 11. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 11 Methodology 1. Compute which collections/methods are used in the programs 2. Look up the appropriate energy tables for the used collections/methods 3. Choose the most energy efficient alternative
  • 15. Conclusion greenlab.di.uminho.pt 15  We have presented a tool, jStanley, that can automatically improve Java code  Improvements include less energy consumption, time, or a combination of both  It’s a plug-in for Eclipse  Static analysis, giving results in seconds  Quick fix suggestions will display how much is the improvement expected to be  We are working on memory consumption to include in the jStanley  We will run a broader study  Measure improvements  Measure execution time
  • 16. jStanley: Placing a Green Thumb on Java Collections Rui Pereira*‡, Pedro Simão§†, Jácome Cunha§‡, João Saraiva*‡ http://greenlab.di.uminho.pt* HASLab/INESC Tec § NOVA LINCS ‡ Universidade do Minho † DI, FCT, Universidade NOVA de Lisboa Portugal {ruipereira, jacome, jas}@di.uminho.pt, p.simao@campus.fct.unl.pt ASE 2018 @ Montpellier, France, September 3-7

Editor's Notes

  1. Aware of the energy consumption problem, many times seeking help in resolving this, misconceptions within the programming community as to what causes highenergy consumption, how to solve them a heavy lack of support and knowledge for energy-aware development Even in software testing Image from [http://thevunderkind.com/new-to-coding-dont-know-how-to-pick-your-first-language-let-udacitys-infographic-help-you/]
  2. The most classical way is to separate Implement the interfaces Separation makes sense as each interface is used for distinct properties Elimiated: Job State Reasons (SET) IdentityHashMap (MAP)
  3. CopyOnWriteArraySet was discarded. Did not finish in reasonable amount of time.
  4. LinkedHashSet includes most of the efficient methods But we can also note it has the two most inefficient methods (addAll and containsAll)
  5. Provides analysis with multiple orders of magnituted. Learn how it scales also
  6. RoleUnresolved and AttributeList are the best. Interesting they both extend ArrayList which has less efficient methods, and quite different consumption values. LinkedList is by far the worse
  7. HashTable, LinkedHashMap, Properties contain the most efficient methods, with no red. Once again concurrent fails. Properties is generally used to store project configuration data/settings, yet produced very good results for this simple string value scenario