Slide 1

Slide 1 text

© 2022 Bloomberg Finance L.P. All rights reserved. Finding Penguins with a Snake PyCon US 2022 April 29, 2022 Mario Corchero Senior Software Engineer & Team Lead, Python Infrastructure

Slide 2

Slide 2 text

© 2022 Bloomberg Finance L.P. All rights reserved. Talk to me! Open source

Slide 3

Slide 3 text

© 2022 Bloomberg Finance L.P. All rights reserved. Outline • Linux & Python • Processes • Signals • Files • IPC • Q&A

Slide 4

Slide 4 text

© 2022 Bloomberg Finance L.P. All rights reserved. Linux & Python What distributions does CPython build against?  https://buildbot.python.org/all/#/builders  https://peps.python.org/pep-0011/ CPython release managers only release a pre-built interpreter for macOS and Windows.

Slide 5

Slide 5 text

© 2022 Bloomberg Finance L.P. All rights reserved. Linux & Python How are Linux APIs exposed?

Slide 6

Slide 6 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes

Slide 7

Slide 7 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes – fork

Slide 8

Slide 8 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes – exec

Slide 9

Slide 9 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes – atfork handler

Slide 10

Slide 10 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes – subprocess

Slide 11

Slide 11 text

© 2022 Bloomberg Finance L.P. All rights reserved. Processes – subprocess

Slide 12

Slide 12 text

© 2022 Bloomberg Finance L.P. All rights reserved. Files “everything is a file descriptor or a process”

Slide 13

Slide 13 text

© 2022 Bloomberg Finance L.P. All rights reserved. Files File metadata

Slide 14

Slide 14 text

© 2022 Bloomberg Finance L.P. All rights reserved. locale

Slide 15

Slide 15 text

© 2022 Bloomberg Finance L.P. All rights reserved. time

Slide 16

Slide 16 text

© 2022 Bloomberg Finance L.P. All rights reserved. time

Slide 17

Slide 17 text

© 2022 Bloomberg Finance L.P. All rights reserved. Signals What are signals and how do they work in Unix?

Slide 18

Slide 18 text

© 2022 Bloomberg Finance L.P. All rights reserved. Signals What are signals and how they are handled in Python?

Slide 19

Slide 19 text

© 2022 Bloomberg Finance L.P. All rights reserved. Named pipes

Slide 20

Slide 20 text

© 2022 Bloomberg Finance L.P. All rights reserved. Unix domain sockets

Slide 21

Slide 21 text

© 2022 Bloomberg Finance L.P. All rights reserved. Unix domain sockets

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

© 2022 Bloomberg Finance L.P. All rights reserved. ● New open source memory profiler for Python applications. ● Traces every function call so it can accurately represent the call stack, unlike sampling profilers. ● Handles native calls in C/C++ libraries so the entire call stack is present in the results. ● Blazing fast! Profiling causes minimal slowdown in your applications. ● Generates various reports about collected memory usage data, like flame graphs. ● Works with Python threads and C++ threads in extensions. www.github.com/bloomberg/memray

Slide 24

Slide 24 text

© 2022 Bloomberg Finance L.P. All rights reserved.

Slide 25

Slide 25 text

© 2022 Bloomberg Finance L.P. All rights reserved. Thank you! We are hiring: bloomberg.com/engineering Learn more: TechAtBloomberg.com/python