Memory allocation in OCaml and beyond

preview_player
Показать описание
In this video I look into how memory allocation works in OCaml 4, how it is different from OCaml 5 (aka multi-core). I browse the source-code of OCaml runtime and do a bunch of experiments to demonstrate the behaviour of the allocator depending on the size of allocated objects. Finally, I show how the allocator behaviour on MacOS is different from that on Linux with an extra sprinkle of C++.

Contents:
00:00 Intro
00:21 Context - Infer
01:11 Context - OCaml
02:19 Multi-core OCaml
03:11 Context - increased memory consumption with OCaml 5
04:23 Plan for the video
05:06 Memory allocation behaviour in OCaml 4
06:54 Memory allocation behaviour with OCaml 5
08:10 Disclaimer
08:41 Exploring OCaml 4 memory allocation
10:07 OCaml 4: allocating on minor vs major heaps
11:10 OCaml 4: continuing with the major heap allocation
12:18 Note on mmap vs malloc
13:51 OCaml 4: allocate + strace
14:39 glibc memory allocator
16:03 OCaml 5 and GC compaction patch
16:33 OCaml 5 memory allocation code
17:57 OCaml 5: pool vs large allocations on shared heap
20:02 OCaml 5: mmap vs malloc threshold
21:05 Setting up an opam switch with a custom OCaml compiler
23:01 Segfault happens
25:29 Running on MacOS... and nothing makes sense anymore
28:25 Dissecting the weirdness
29:36 C++ to rescue
31:24 MacOS memory under pressure
36:25 Outro

Рекомендации по теме
Комментарии
Автор

my name is Артём 😁
u have nice english and thanks for the video

snatvb
Автор

This was super interesting as Im in the process pf learning OCaml!

kallekula
Автор

Awesome video! Quick, very important, question what emacs color scheme is that?

johncartergonzalez