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 visualizações19 slides
Data Automation at Light Sources por
Data Automation at Light SourcesData Automation at Light Sources
Data Automation at Light SourcesIan Foster
524 visualizações35 slides
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 visualizações68 slides
Big data at experimental facilities por
Big data at experimental facilitiesBig data at experimental facilities
Big data at experimental facilitiesIan Foster
923 visualizações27 slides
Micrometrics to forecast performance tsunamis por
Micrometrics to forecast performance tsunamisMicrometrics to forecast performance tsunamis
Micrometrics to forecast performance tsunamisTier1app
455 visualizações22 slides
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 visualizações69 slides

Mais conteúdo 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 visualizações23 slides
kanimozhi2019.pdf por
kanimozhi2019.pdfkanimozhi2019.pdf
kanimozhi2019.pdfAshrafDabbas1
71 visualizações5 slides
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 visualizações18 slides
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 visualizações28 slides
ADS Team 8 Final Presentation por
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final PresentationPranay Mankad
89 visualizações19 slides
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 visualizações24 slides

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 visualizações
kanimozhi2019.pdf por AshrafDabbas1
kanimozhi2019.pdfkanimozhi2019.pdf
kanimozhi2019.pdf
AshrafDabbas171 visualizações
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 visualizações
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 visualizações
ADS Team 8 Final Presentation por Pranay Mankad
ADS Team 8 Final PresentationADS Team 8 Final Presentation
ADS Team 8 Final Presentation
Pranay Mankad89 visualizações
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems por NECST Lab @ Politecnico di Milano
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 Systems
NECST Lab @ Politecnico di Milano362 visualizações
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 visualizações
GlobusWorld 2020 Keynote por Globus
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 Keynote
Globus 434 visualizações
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 visualizações
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 visualizações
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 visualizações
PhD Thesis Proposal por Ziqiang Feng
PhD Thesis Proposal PhD Thesis Proposal
PhD Thesis Proposal
Ziqiang Feng474 visualizações
"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 ...
Edge AI and Vision Alliance1.1K visualizações
Chronix Poster for the Poster Session FAST 2017 por Florian Lautenschlager
Chronix Poster for the Poster Session FAST 2017Chronix Poster for the Poster Session FAST 2017
Chronix Poster for the Poster Session FAST 2017
Florian Lautenschlager1.3K visualizações
Virtual Science in the Cloud por thetfoot
Virtual Science in the CloudVirtual Science in the Cloud
Virtual Science in the Cloud
thetfoot437 visualizações
Optimizing Observability Spend: Metrics por Eric D. Schabell
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: Metrics
Eric D. Schabell52 visualizações
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
Paris Sud University44 visualizações
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 Jain380 visualizações
Telemetry Updates - Juno Edition por OpenStack Foundation
Telemetry Updates - Juno Edition Telemetry Updates - Juno Edition
Telemetry Updates - Juno Edition
OpenStack Foundation1.1K visualizações

Mais 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
9 visualizações16 slides
Technical documentation support in Pharo por
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
16 visualizações39 slides
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 visualizações44 slides
Sequence: Pipeline modelling in Pharo por
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
86 visualizações22 slides
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
19 visualizações35 slides
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
106 visualizações30 slides

Mais 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
ESUG9 visualizações
Technical documentation support in Pharo por ESUG
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG16 visualizações
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 visualizações
Sequence: Pipeline modelling in Pharo por ESUG
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG86 visualizações
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...
ESUG19 visualizações
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
ESUG106 visualizações
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
ESUG37 visualizações
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
ESUG49 visualizações
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
ESUG46 visualizações
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 visualizações
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 visualizações
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
ESUG57 visualizações
Garbage Collector Tuning por ESUG
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG20 visualizações
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 visualizações
thisContext in the Debugger por ESUG
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG36 visualizações
Websockets for Fencing Score por ESUG
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG18 visualizações
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 visualizações
Advanced Object- Oriented Design Mooc por ESUG
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG85 visualizações
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 visualizações
BioSmalltalk por ESUG
BioSmalltalkBioSmalltalk
BioSmalltalk
ESUG415 visualizações

Último

Les nouveautés produit Neo4j por
 Les nouveautés produit Neo4j Les nouveautés produit Neo4j
Les nouveautés produit Neo4jNeo4j
27 visualizações46 slides
LAVADORA ROLO.docx por
LAVADORA ROLO.docxLAVADORA ROLO.docx
LAVADORA ROLO.docxSamuelRamirez83524
7 visualizações1 slide
Software evolution understanding: Automatic extraction of software identifier... por
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 visualizações33 slides
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...HCLSoftware
6 visualizações2 slides
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove... por
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...Deltares
15 visualizações17 slides
HarshithAkkapelli_Presentation.pdf por
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdfharshithakkapelli
11 visualizações16 slides

Último(20)

Les nouveautés produit Neo4j por Neo4j
 Les nouveautés produit Neo4j Les nouveautés produit Neo4j
Les nouveautés produit Neo4j
Neo4j27 visualizações
Software evolution understanding: Automatic extraction of software identifier... por 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...
Ra'Fat Al-Msie'deen7 visualizações
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 visualizações
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove... por Deltares
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
Deltares15 visualizações
HarshithAkkapelli_Presentation.pdf por harshithakkapelli
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdf
harshithakkapelli11 visualizações
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... por Flexsin
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Flexsin 15 visualizações
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... por Deltares
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
Deltares6 visualizações
El Arte de lo Possible por Neo4j
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo Possible
Neo4j34 visualizações
Tridens DevOps por Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 visualizações
How to Make the Most of Regression and Unit Testing.pdf por Abhay Kumar
How to Make the Most of Regression and Unit Testing.pdfHow to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdf
Abhay Kumar10 visualizações
WebAssembly por Jens Siebert
WebAssemblyWebAssembly
WebAssembly
Jens Siebert32 visualizações
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... por Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 visualizações
MariaDB stored procedures and why they should be improved por 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
Federico Razzoli8 visualizações
Best Mics For Your Live Streaming por ontheflystream
Best Mics For Your Live StreamingBest Mics For Your Live Streaming
Best Mics For Your Live Streaming
ontheflystream6 visualizações
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... por 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...
Deltares10 visualizações
Neo4j y GenAI por Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j35 visualizações
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan... por Deltares
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
Deltares10 visualizações
Unleash The Monkeys por Jacob Duijzer
Unleash The MonkeysUnleash The Monkeys
Unleash The Monkeys
Jacob Duijzer7 visualizações
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... por Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares7 visualizações

Improving Performance Through Object Lifetime Profiling: the DataFrame Case