Improving Performance Through Object Lifetime Profiling: the DataFrame Case

E
ESUGESUG
Improving Performance Through
Object Lifetime Pro
fi
ling: the
DataFrame Case
Sebastian JORDAN MONTAÑO, Nahuel PALUMBO, Guillermo POLITO,
Stéphane DUCASSE and Pablo TESONE
Inria, Univ. Lille, CNRS, Centrale Lille, UMR 9189 - CRIStAL
August 2023 Evref
fervE
Memory management in software
int* ptr = (int*) malloc(sizeof(int));
free(ptr);
2
Pharo’s garbage collector
Eden S1 S2 Tenured
+
Young generation Old generation
3
GC parameters
4
Time spent on garbage collecting
5
Research question
How does approximate object lifetimes lead to GC performance
improvements?
6
An object’s lifetime
Object’s allocation
Object becomes
unreachable
GC collects
the object
Actual lifetime
Lifetime that we capture?
7
An object’s approximated lifetime
Object’s allocation
Object becomes
unreachable
GC prepares
the object
Actual lifetime
Lifetime that we capture
Object is
fi
nalized
(we take the measurement)
8
Capturing the allocations
Array new: 7
9
Capturing the allocations
Array new: 7
10
Capture the allocation
Register the
fi
nalization
MethodProxies [1]
Ephemerons [2]
[1] github.com/pharo-contributions/MethodProxies
[2] github.com/pharo-project/pheps/blob/main/phep-0003.md
An object’s finalization at a time m
11
Ephemeron
#111
Object: Array
#123
Model
allocationTime: n
finalizationTime: m
m
o
u
r
n
finalize
E
p
h
e
m
e
r
o
n
i
s
c
o
n
s
u
m
e
d
1 2
3
key
Finalization Queue
Object #123 is
garbage collected
4
An object’s allocation at a time n
12
OrderedCollection class >> new: anInteger
^ self basicNew setCollection:
(self arrayType new: anInteger)
Behavior >> basicNew
<primitive: 70>
Array class >> basicNew: size
lines := OrderedCollection new
...
Paper’s contributions
Challenges of lifetime pro
fi
ling
Illimani: a lifetime pro
fi
ler on stock Pharo VM
13
Methodology
14
Application’s Lifetime Profile
P
Application to Profile
3. Chose GC tuned
parameters based on
object lifetimes and
benchmark information
5. Did the performance improved?
GC tuned
parameters
2. Benchmark it with the
default GC parameters
4. Benchmark the application
again with the tuned GC parameters
1. Profile the application
Default GC parameters
benchmark
Tuned GC parameters
benchmark
The target application
https://github.com/PolyMathOrg/DataFrame
15
Benchmark the loading of DataFrame
16
Benchmark the loading of DataFrame
17
Object lifetimes for a 500MB DataFrame (memory)
-500 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0 B
9 B
116 B
1 KB
13 KB
145 KB
1 MB
16 MB
180 MB
1 GB
Lifetime in seconds
Memory
(log
scale)
60%
18
-500 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0
5
35
217
1,311
7,900
47,557
286,265
1,723,096
10,371,664
Lifetime in seconds
Number
of
objects
(log
scale)
75%
Object lifetimes for a 500MB DataFrame (# objects)
19
Common object lifetime distribution
20
Source: oracle.com
GC custom parameters
21
Pharo’s garbage collector
Eden S1 S2 Tenured
+
Young generation Old generation
22
Benchmarks results
23
Future work
Measure the precision of our approximate object lifetimes
Pro
fi
ling at VM level to reduce the overhead
Pre-tenuring
24
Summary
We developed a lifetime profiler
We profiled the object lifetimes and we validated our solution by
observing how lifetimes relate to performance improvements when
tuning the GC.
25
github.com/jordanmontt/illimani-memory-pro
fi
ler
Sebastian JORDAN MONTAÑO
sebastian.jordan@inria.fr
1 de 25

Recomendados

Real World Application Performance with MongoDB por
Real World Application Performance with MongoDBReal World Application Performance with MongoDB
Real World Application Performance with MongoDBMongoDB
2.3K vistas19 diapositivas
Data Automation at Light Sources por
Data Automation at Light SourcesData Automation at Light Sources
Data Automation at Light SourcesIan Foster
526 vistas35 diapositivas
Computing Outside The Box June 2009 por
Computing Outside The Box June 2009Computing Outside The Box June 2009
Computing Outside The Box June 2009Ian Foster
766 vistas68 diapositivas
Big data at experimental facilities por
Big data at experimental facilitiesBig data at experimental facilities
Big data at experimental facilitiesIan Foster
923 vistas27 diapositivas
Micrometrics to forecast performance tsunamis por
Micrometrics to forecast performance tsunamisMicrometrics to forecast performance tsunamis
Micrometrics to forecast performance tsunamisTier1app
455 vistas22 diapositivas
Computing Outside The Box September 2009 por
Computing Outside The Box September 2009Computing Outside The Box September 2009
Computing Outside The Box September 2009Ian Foster
624 vistas69 diapositivas

Más contenido relacionado

Similar a Improving Performance Through Object Lifetime Profiling: the DataFrame Case

DA 592 - Term Project Report - Berker Kozan Can Koklu por
DA 592 - Term Project Report - Berker Kozan Can KokluDA 592 - Term Project Report - Berker Kozan Can Koklu
DA 592 - Term Project Report - Berker Kozan Can KokluCan Köklü
346 vistas23 diapositivas
kanimozhi2019.pdf por
kanimozhi2019.pdfkanimozhi2019.pdf
kanimozhi2019.pdfAshrafDabbas1
71 vistas5 diapositivas
Fast object re-detection and localization in video for spatio-temporal fragme... por
Fast object re-detection and localization in video for spatio-temporal fragme...Fast object re-detection and localization in video for spatio-temporal fragme...
Fast object re-detection and localization in video for spatio-temporal fragme...LinkedTV
1.5K vistas18 diapositivas
Performance Optimization of CGYRO for Multiscale Turbulence Simulations por
Performance Optimization of CGYRO for Multiscale Turbulence SimulationsPerformance Optimization of CGYRO for Multiscale Turbulence Simulations
Performance Optimization of CGYRO for Multiscale Turbulence SimulationsIgor Sfiligoi
92 vistas28 diapositivas
ADS Team 8 Final Presentation por
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final PresentationPranay Mankad
89 vistas19 diapositivas
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems por
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving SystemsPRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving SystemsNECST Lab @ Politecnico di Milano
362 vistas24 diapositivas

Similar a Improving Performance Through Object Lifetime Profiling: the DataFrame Case(20)

DA 592 - Term Project Report - Berker Kozan Can Koklu por Can Köklü
DA 592 - Term Project Report - Berker Kozan Can KokluDA 592 - Term Project Report - Berker Kozan Can Koklu
DA 592 - Term Project Report - Berker Kozan Can Koklu
Can Köklü346 vistas
Fast object re-detection and localization in video for spatio-temporal fragme... por LinkedTV
Fast object re-detection and localization in video for spatio-temporal fragme...Fast object re-detection and localization in video for spatio-temporal fragme...
Fast object re-detection and localization in video for spatio-temporal fragme...
LinkedTV 1.5K vistas
Performance Optimization of CGYRO for Multiscale Turbulence Simulations por Igor Sfiligoi
Performance Optimization of CGYRO for Multiscale Turbulence SimulationsPerformance Optimization of CGYRO for Multiscale Turbulence Simulations
Performance Optimization of CGYRO for Multiscale Turbulence Simulations
Igor Sfiligoi92 vistas
ADS Team 8 Final Presentation por Pranay Mankad
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final Presentation
Pranay Mankad89 vistas
The next generation of the Montage image mosaic engine por G. Bruce Berriman
The next generation of the Montage image mosaic engineThe next generation of the Montage image mosaic engine
The next generation of the Montage image mosaic engine
G. Bruce Berriman682 vistas
GlobusWorld 2020 Keynote por Globus
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 Keynote
Globus 434 vistas
Druid at naver.com - part 1 por Jungsu Heo
Druid at naver.com - part 1Druid at naver.com - part 1
Druid at naver.com - part 1
Jungsu Heo908 vistas
Object extraction from satellite imagery using deep learning por Aly Abdelkareem
Object extraction from satellite imagery using deep learningObject extraction from satellite imagery using deep learning
Object extraction from satellite imagery using deep learning
Aly Abdelkareem5.1K vistas
YOLOv4: optimal speed and accuracy of object detection review por LEE HOSEONG
YOLOv4: optimal speed and accuracy of object detection reviewYOLOv4: optimal speed and accuracy of object detection review
YOLOv4: optimal speed and accuracy of object detection review
LEE HOSEONG3.5K vistas
PhD Thesis Proposal por Ziqiang Feng
PhD Thesis Proposal PhD Thesis Proposal
PhD Thesis Proposal
Ziqiang Feng476 vistas
"Optimizing SSD Object Detection for Low-power Devices," a Presentation from ... por Edge AI and Vision Alliance
"Optimizing SSD Object Detection for Low-power Devices," a Presentation from ..."Optimizing SSD Object Detection for Low-power Devices," a Presentation from ...
"Optimizing SSD Object Detection for Low-power Devices," a Presentation from ...
Virtual Science in the Cloud por thetfoot
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
thetfoot437 vistas
Optimizing Observability Spend: Metrics por Eric D. Schabell
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: Metrics
Eric D. Schabell52 vistas
MOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge Graphs por Paris Sud University
MOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge GraphsMOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge Graphs
MOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge Graphs
Software tools for high-throughput materials data generation and data mining por Anubhav Jain
Software tools for high-throughput materials data generation and data miningSoftware tools for high-throughput materials data generation and data mining
Software tools for high-throughput materials data generation and data mining
Anubhav Jain381 vistas

Más de ESUG

Workshop: Identifying concept inventories in agile programming por
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
12 vistas16 diapositivas
Technical documentation support in Pharo por
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
45 vistas39 diapositivas
The Pharo Debugger and Debugging tools: Advances and Roadmap por
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
56 vistas44 diapositivas
Sequence: Pipeline modelling in Pharo por
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
87 vistas22 diapositivas
Migration process from monolithic to micro frontend architecture in mobile ap... por
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
23 vistas35 diapositivas
Analyzing Dart Language with Pharo: Report and early results por
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
108 vistas30 diapositivas

Más de ESUG(20)

Workshop: Identifying concept inventories in agile programming por ESUG
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG12 vistas
Technical documentation support in Pharo por ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG45 vistas
The Pharo Debugger and Debugging tools: Advances and Roadmap por ESUG
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG56 vistas
Sequence: Pipeline modelling in Pharo por ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG87 vistas
Migration process from monolithic to micro frontend architecture in mobile ap... por ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG23 vistas
Analyzing Dart Language with Pharo: Report and early results por ESUG
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG108 vistas
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6 por ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG39 vistas
A Unit Test Metamodel for Test Generation por ESUG
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG54 vistas
Creating Unit Tests Using Genetic Programming por ESUG
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG49 vistas
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes por ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG52 vistas
Exploring GitHub Actions through EGAD: An Experience Report por ESUG
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG17 vistas
Pharo: a reflective language A first systematic analysis of reflective APIs por ESUG
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG58 vistas
Garbage Collector Tuning por ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 vistas
Pharo DataFrame: Past, Present, and Future por ESUG
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG43 vistas
thisContext in the Debugger por ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 vistas
Websockets for Fencing Score por ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 vistas
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript por ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG46 vistas
Advanced Object- Oriented Design Mooc por ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 vistas
A New Architecture Reconciling Refactorings and Transformations por ESUG
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG28 vistas
BioSmalltalk por ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 vistas

Último

Generic or specific? Making sensible software design decisions por
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
7 vistas60 diapositivas
The Path to DevOps por
The Path to DevOpsThe Path to DevOps
The Path to DevOpsJohn Valentino
5 vistas6 diapositivas
tecnologia18.docx por
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 vistas5 diapositivas
ADDO_2022_CICID_Tom_Halpin.pdf por
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdfTomHalpin9
5 vistas33 diapositivas
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation por
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationHCLSoftware
6 vistas8 diapositivas
Page Object Model por
Page Object ModelPage Object Model
Page Object Modelartembondar5
6 vistas5 diapositivas

Último(20)

Generic or specific? Making sensible software design decisions por Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
tecnologia18.docx por nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 vistas
ADDO_2022_CICID_Tom_Halpin.pdf por TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 vistas
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation por HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 vistas
Automated Testing of Microsoft Power BI Reports por RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS10 vistas
AI and Ml presentation .pptx por FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8714 vistas
Airline Booking Software por SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta9 vistas
Bootstrapping vs Venture Capital.pptx por Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic15 vistas
Ports-and-Adapters Architecture for Embedded HMI por Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert33 vistas
predicting-m3-devopsconMunich-2023.pptx por Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 vistas
Top-5-production-devconMunich-2023-v2.pptx por Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app8 vistas
360 graden fabriek por info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492165 vistas
Transport Management System - Shipment & Container Tracking por Freightoscope
Transport Management System - Shipment & Container TrackingTransport Management System - Shipment & Container Tracking
Transport Management System - Shipment & Container Tracking
Freightoscope 5 vistas
Dapr Unleashed: Accelerating Microservice Development por Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski15 vistas

Improving Performance Through Object Lifetime Profiling: the DataFrame Case