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

Поделиться
HTML-код
  • Опубликовано: 6 июл 2024
  • 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 RUclips videos to help with discoverability? Find out more here: github.com/JuliaCommunity/You...
    Interested in improving the auto generated captions? Get involved here: github.com/JuliaCommunity/You... you. Timestamps were added to the video, we will close this issue, when we get access rights to this GitHub repository.
  • НаукаНаука

Комментарии • 13

  • @kamilziemian995
    @kamilziemian995 6 месяцев назад +11

    I always enjoy Jeff Bezanson's talks.

  • @conradwiebe7919
    @conradwiebe7919 6 месяцев назад +10

    00:00 - intro
    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 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 - Nobody like reflection (ok, actually, this segment is that reflection makes inspection difficult)
    23:23 - Roadmap
    28:10 - That's it for the slides
    28:30 Q&A starts and I'm too lazy to segment them

    • @kamilziemian995
      @kamilziemian995 5 месяцев назад +3

      Thank you. We tweak your timestamps a bit and add the to the video description.

    • @kamilziemian995
      @kamilziemian995 4 месяца назад

      @@gregandark8571 To qute Jeff Bezanson "Yikes!".

  • @piratepartyftw
    @piratepartyftw 6 месяцев назад +11

    This is the most compelling reason I see for Julia 2.0. Shrink Base. Refactor it to minimize the core language, and put other features in packages. It would also help with maintainability and technical debt. I hope eventually we get there. May take several years, though.

    • @gregandark8571
      @gregandark8571 4 месяца назад

      +/- how much?

    • @gregandark8571
      @gregandark8571 4 месяца назад

      I mean - In how many years do you think we'll get Julia 2.0 with all the native compilation candy's?

  • @LiorAssouline
    @LiorAssouline 6 месяцев назад +2

    Great talk! Can you please detail how to remove LLVM from the geneerated lib ?

    • @LiorAssouline
      @LiorAssouline 6 месяцев назад +2

      OK, I just realized it's just deleting it from the lib directory... 🤦

  • @kamilziemian995
    @kamilziemian995 6 месяцев назад +4

    21:50 😂

  • @davidgustavsson4000
    @davidgustavsson4000 6 месяцев назад

    If nothing useful is exported from the toy example, shouldn't the compiler just be able to make it all a noop?

  • @Ptr-NG
    @Ptr-NG 6 месяцев назад

    Merci d'avoir fourni un, Matlab like, riche outil gratuit..

  • @androth1502
    @androth1502 4 месяца назад +1

    so you went from "omg, that's bananas!" to "oh nelly, that's bloated!"