Главная
Study mode:
on
1
Intro
2
RVALUE structure
3
Ruby Object Structure
4
Heap page structure
5
Building the freelist
6
Allocating Ruby objects
7
Ruby's garbage collector
8
Marking phase
9
Marking example
10
Sweeping phase
11
Sweeping example
12
Compact phase
13
Compaction algorithm
14
Compaction example
15
Two different categories of Strings
16
Allocating an embedded string
17
Allocating a heap allocated string
18
CPU caches
19
CPU cache properties
20
Ruby cache performance
21
Overhead of malloc
22
The Variable Width Allocation project
23
Variable Width cache performance
24
RClass Allocation
25
Size pools
26
Types of String allocation
27
Allocating a short string
28
Allocating a longer string
29
Resizing a string
30
Shopify production
31
Methodology
32
railsbench
33
rdoc generation
34
Microbenchmarks
35
Proposal to enable VWA
36
Resizing objects
37
Shrinking RVALUE
Description:
Explore the intricacies of Ruby's memory optimization in this RubyConf 2021 talk by Peter Zhu and Matt Valentine-House. Delve into Ruby's current memory model, its limitations, and the proposed Variable Width Allocation project. Learn about RVALUE structure, heap page organization, object allocation, garbage collection processes, and CPU cache performance. Discover how moving system heap memory into Ruby heap memory can reduce allocations and improve control over memory layout. Examine different string allocation techniques, size pools, and the impact on Shopify's production environment. Gain insights into methodologies for benchmarking and testing, including railsbench and rdoc generation. Understand the potential benefits and challenges of implementing Variable Width Allocation in Ruby, including object resizing capabilities and RVALUE shrinking.

Railsbench - Rdoc Generation - Microbenchmarks - Proposal to Enable VWare Resizing Objects - Shrinking RVALUE

Ruby Central
Add to list
00:00
-00:47