MENU

Fun & Interesting

Jeff Bezanson - What's the deal with Julia binary sizes?

Video Not Working? Fix It Now

Abstract: If you have tried to produce a compiled library or application with PackageCompiler.jl, you may have been disappointed by the size of the resulting artifact. In this talk I will explain where all the bytes come from, and what we have done and continue to do to remove as many as possible. Fortunately sizes have been going down over time, and we have added some tools you can use now to reduce sizes further. I will briefly show how to use them. Contents 00:00 Introduction 00:21 The function we'll compile with package compiler 01:23 Fora function that just does addition, the size is 901 MB (with Julia 1.6 based PkgCompiler) 02:43 Quick aside, sometimes binaries are just big cause they include a lot of things (hint, our binary has a lot too) 04:00 Specialization means big binaries 05:23 Exactly why is our package (sys image) so big? 06:42 Shrink ray time 11:22 Summary of our journey to get to 50MB from 900 16:14 The guide on how to shrink your thingamajig the same way 17:21 What's left in our sys image? 18:46 The Julia base library is kinda big 20:45 Reflection creates obstacles for reducing size of the binary 21:50 Oh, c'mon! 23:23 Roadmap 28:10 That's it for the slides 28:30 Q&A starts S/O to @conradwiebe7919 for the video timestamps! Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: https://github.com/JuliaCommunity/YouTubeVideoTimestamps Interested in improving the auto generated captions? Get involved here: https://github.com/JuliaCommunity/YouTubeVideoSubtitlesThank you. Timestamps were added to the video, we will close this issue, when we get access rights to this GitHub repository.

Comment