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 sur 25

Recommandé

Real World Application Performance with MongoDB par
Real World Application Performance with MongoDBReal World Application Performance with MongoDB
Real World Application Performance with MongoDBMongoDB
2.3K vues19 diapositives
Data Automation at Light Sources par
Data Automation at Light SourcesData Automation at Light Sources
Data Automation at Light SourcesIan Foster
525 vues35 diapositives
Computing Outside The Box June 2009 par
Computing Outside The Box June 2009Computing Outside The Box June 2009
Computing Outside The Box June 2009Ian Foster
766 vues68 diapositives
Big data at experimental facilities par
Big data at experimental facilitiesBig data at experimental facilities
Big data at experimental facilitiesIan Foster
923 vues27 diapositives
Micrometrics to forecast performance tsunamis par
Micrometrics to forecast performance tsunamisMicrometrics to forecast performance tsunamis
Micrometrics to forecast performance tsunamisTier1app
455 vues22 diapositives
Computing Outside The Box September 2009 par
Computing Outside The Box September 2009Computing Outside The Box September 2009
Computing Outside The Box September 2009Ian Foster
624 vues69 diapositives

Contenu connexe

Similaire à Improving Performance Through Object Lifetime Profiling: the DataFrame Case

DA 592 - Term Project Report - Berker Kozan Can Koklu par
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 vues23 diapositives
kanimozhi2019.pdf par
kanimozhi2019.pdfkanimozhi2019.pdf
kanimozhi2019.pdfAshrafDabbas1
71 vues5 diapositives
Fast object re-detection and localization in video for spatio-temporal fragme... par
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 vues18 diapositives
Performance Optimization of CGYRO for Multiscale Turbulence Simulations par
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 vues28 diapositives
ADS Team 8 Final Presentation par
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final PresentationPranay Mankad
89 vues19 diapositives
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems par
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 vues24 diapositives

Similaire à Improving Performance Through Object Lifetime Profiling: the DataFrame Case(20)

DA 592 - Term Project Report - Berker Kozan Can Koklu par 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 vues
Fast object re-detection and localization in video for spatio-temporal fragme... par 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 vues
Performance Optimization of CGYRO for Multiscale Turbulence Simulations par 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 vues
The next generation of the Montage image mosaic engine par 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
GlobusWorld 2020 Keynote par Globus
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 Keynote
Globus 434 vues
Druid at naver.com - part 1 par Jungsu Heo
Druid at naver.com - part 1Druid at naver.com - part 1
Druid at naver.com - part 1
Jungsu Heo908 vues
Object extraction from satellite imagery using deep learning par 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 vues
YOLOv4: optimal speed and accuracy of object detection review par 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 vues
Virtual Science in the Cloud par thetfoot
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
thetfoot437 vues
MOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge Graphs par 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 par 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 Jain380 vues

Plus de ESUG

Workshop: Identifying concept inventories in agile programming par
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
12 vues16 diapositives
Technical documentation support in Pharo par
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
31 vues39 diapositives
The Pharo Debugger and Debugging tools: Advances and Roadmap par
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 vues44 diapositives
Sequence: Pipeline modelling in Pharo par
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 vues22 diapositives
Migration process from monolithic to micro frontend architecture in mobile ap... par
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
22 vues35 diapositives
Analyzing Dart Language with Pharo: Report and early results par
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
107 vues30 diapositives

Plus de ESUG(20)

Workshop: Identifying concept inventories in agile programming par ESUG
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG12 vues
Technical documentation support in Pharo par ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG31 vues
The Pharo Debugger and Debugging tools: Advances and Roadmap par 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 vues
Sequence: Pipeline modelling in Pharo par ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG86 vues
Migration process from monolithic to micro frontend architecture in mobile ap... par 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...
ESUG22 vues
Analyzing Dart Language with Pharo: Report and early results par 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
ESUG107 vues
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6 par 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
ESUG37 vues
A Unit Test Metamodel for Test Generation par ESUG
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG53 vues
Creating Unit Tests Using Genetic Programming par ESUG
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG46 vues
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes par 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 vues
Exploring GitHub Actions through EGAD: An Experience Report par 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 vues
Pharo: a reflective language A first systematic analysis of reflective APIs par 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
ESUG57 vues
Garbage Collector Tuning par ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 vues
Pharo DataFrame: Past, Present, and Future par ESUG
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG43 vues
thisContext in the Debugger par ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 vues
Websockets for Fencing Score par ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 vues
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript par 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 vues
Advanced Object- Oriented Design Mooc par ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 vues
A New Architecture Reconciling Refactorings and Transformations par ESUG
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG28 vues
BioSmalltalk par ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 vues

Dernier

Headless JS UG Presentation.pptx par
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptxJack Spektor
8 vues24 diapositives
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... par
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...Deltares
7 vues18 diapositives
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... par
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
12 vues17 diapositives
SUGCON ANZ Presentation V2.1 Final.pptx par
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptxJack Spektor
23 vues34 diapositives
FIMA 2023 Neo4j & FS - Entity Resolution.pptx par
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
8 vues26 diapositives
nintendo_64.pptx par
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 vues7 diapositives

Dernier(20)

Headless JS UG Presentation.pptx par Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor8 vues
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... par Deltares
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
Deltares7 vues
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... par NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi212 vues
SUGCON ANZ Presentation V2.1 Final.pptx par Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor23 vues
FIMA 2023 Neo4j & FS - Entity Resolution.pptx par Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j8 vues
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... par Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 vues
360 graden fabriek par info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492122 vues
Dapr Unleashed: Accelerating Microservice Development par Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... par Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller40 vues
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports par Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... par Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller41 vues
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols par Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares9 vues
Fleet Management Software in India par Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 vues

Improving Performance Through Object Lifetime Profiling: the DataFrame Case