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

Recomendados

Real World Application Performance with MongoDB von
Real World Application Performance with MongoDBReal World Application Performance with MongoDB
Real World Application Performance with MongoDBMongoDB
2.3K views19 Folien
Data Automation at Light Sources von
Data Automation at Light SourcesData Automation at Light Sources
Data Automation at Light SourcesIan Foster
525 views35 Folien
Computing Outside The Box June 2009 von
Computing Outside The Box June 2009Computing Outside The Box June 2009
Computing Outside The Box June 2009Ian Foster
766 views68 Folien
Big data at experimental facilities von
Big data at experimental facilitiesBig data at experimental facilities
Big data at experimental facilitiesIan Foster
923 views27 Folien
Micrometrics to forecast performance tsunamis von
Micrometrics to forecast performance tsunamisMicrometrics to forecast performance tsunamis
Micrometrics to forecast performance tsunamisTier1app
455 views22 Folien
Computing Outside The Box September 2009 von
Computing Outside The Box September 2009Computing Outside The Box September 2009
Computing Outside The Box September 2009Ian Foster
624 views69 Folien

Más contenido relacionado

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

DA 592 - Term Project Report - Berker Kozan Can Koklu von
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 views23 Folien
kanimozhi2019.pdf von
kanimozhi2019.pdfkanimozhi2019.pdf
kanimozhi2019.pdfAshrafDabbas1
71 views5 Folien
Fast object re-detection and localization in video for spatio-temporal fragme... von
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 views18 Folien
Performance Optimization of CGYRO for Multiscale Turbulence Simulations von
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 views28 Folien
ADS Team 8 Final Presentation von
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final PresentationPranay Mankad
89 views19 Folien
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems von
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 views24 Folien

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

DA 592 - Term Project Report - Berker Kozan Can Koklu von 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 views
Fast object re-detection and localization in video for spatio-temporal fragme... von 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 views
Performance Optimization of CGYRO for Multiscale Turbulence Simulations von 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 views
ADS Team 8 Final Presentation von Pranay Mankad
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final Presentation
Pranay Mankad89 views
The next generation of the Montage image mosaic engine von 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 views
GlobusWorld 2020 Keynote von Globus
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 Keynote
Globus 434 views
Druid at naver.com - part 1 von Jungsu Heo
Druid at naver.com - part 1Druid at naver.com - part 1
Druid at naver.com - part 1
Jungsu Heo908 views
Object extraction from satellite imagery using deep learning von 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 views
YOLOv4: optimal speed and accuracy of object detection review von 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 views
PhD Thesis Proposal von Ziqiang Feng
PhD Thesis Proposal PhD Thesis Proposal
PhD Thesis Proposal
Ziqiang Feng474 views
"Optimizing SSD Object Detection for Low-power Devices," a Presentation from ... von 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 von thetfoot
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
thetfoot437 views
MOMENT: Temporal Meta-Fact Generation and Propagation in Knowledge Graphs von 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 von 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 views

Más de ESUG

Workshop: Identifying concept inventories in agile programming von
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
9 views16 Folien
Technical documentation support in Pharo von
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
27 views39 Folien
The Pharo Debugger and Debugging tools: Advances and Roadmap von
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 views44 Folien
Sequence: Pipeline modelling in Pharo von
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 views22 Folien
Migration process from monolithic to micro frontend architecture in mobile ap... von
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
19 views35 Folien
Analyzing Dart Language with Pharo: Report and early results von
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
106 views30 Folien

Más de ESUG(20)

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

Último

Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ... von
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...marksimpsongw
76 views34 Folien
Copilot Prompting Toolkit_All Resources.pdf von
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
6 views4 Folien
Software evolution understanding: Automatic extraction of software identifier... von
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
7 views33 Folien
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker von
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - ParkerDSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - ParkerDeltares
9 views16 Folien
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... von
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...Deltares
9 views34 Folien
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... von
.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üller
38 views62 Folien

Último(20)

Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ... von marksimpsongw
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
Mark Simpson - UKOUG23 - Refactoring Monolithic Oracle Database Applications ...
marksimpsongw76 views
Copilot Prompting Toolkit_All Resources.pdf von Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana6 views
Software evolution understanding: Automatic extraction of software identifier... von Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker von Deltares
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - ParkerDSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
Deltares9 views
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... von Deltares
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
Deltares9 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... von 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üller38 views
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit... von Deltares
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
Deltares13 views
What Can Employee Monitoring Software Do?​ von wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere21 views
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon von Deltares
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - AfternoonDSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
Deltares13 views
MariaDB stored procedures and why they should be improved von Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved
El Arte de lo Possible von Neo4j
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo Possible
Neo4j38 views
SUGCON ANZ Presentation V2.1 Final.pptx von Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor22 views
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea... von Safe Software
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Safe Software412 views
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... von Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
Deltares16 views
Neo4j y GenAI von Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j42 views
Fleet Management Software in India von Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 views

Improving Performance Through Object Lifetime Profiling: the DataFrame Case