Python GC Settings - Change This and Go 20% Faster!

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 พ.ย. 2024

ความคิดเห็น • 18

  • @daincrawford8439
    @daincrawford8439 2 ปีที่แล้ว +3

    Just ran this on one of my scripts with the three lines added. 5 min .3 sec before and 4 min 17.9 sec after. That is amazing.

    • @mikeckennedy
      @mikeckennedy  2 ปีที่แล้ว

      Dain, that is awesome. Thanks for sharing your findings.

  • @mrmagnetic927
    @mrmagnetic927 2 ปีที่แล้ว +1

    Always a big fan of Mike and these amazing videos. I learn so much in this space

  • @christophertyler1882
    @christophertyler1882 2 ปีที่แล้ว +2

    I have to give this a try. A lot of my data does come from a database but I tend to put into a Pandas dataframe.

    • @mikeckennedy
      @mikeckennedy  2 ปีที่แล้ว

      Excellent. Please report back on whether it makes a difference for you (positive or negative). It's one of those your milage may vary things. With Pandas, the data is in C and outside the GC's purview so it might matter less.

  • @r-tierney
    @r-tierney 2 ปีที่แล้ว +2

    Nice one! I'll definitely be trying this out. One small thing I'd probably recommend using time.monotonic() to avoid time drift due to NTP / daylight savings etc. when measuring this kind of stuff.

  • @jeanchristophe15
    @jeanchristophe15 2 ปีที่แล้ว

    Awesome video Michael! Thank you!

  • @MakeDataUseful
    @MakeDataUseful 2 ปีที่แล้ว

    Thanks for the share Michael, I have some very long running data pipelines that I think could benefit from this.

    • @mikeckennedy
      @mikeckennedy  2 ปีที่แล้ว

      You're welcome! Let us know how it turns out.

  • @elev007
    @elev007 2 ปีที่แล้ว +1

    Thanks Michael!

  • @blazkowicz666
    @blazkowicz666 9 หลายเดือนก่อน

    Is this valid for python 3.11+?

  • @topcivilian
    @topcivilian ปีที่แล้ว

    Why aren't the memory settings optimized by default?

  • @qozia1370
    @qozia1370 ปีที่แล้ว

    thank you

  • @jamesfitzpatrick9607
    @jamesfitzpatrick9607 2 ปีที่แล้ว +1

    A question I need to ask is why are those numbers so low?

    • @mikeckennedy
      @mikeckennedy  2 ปีที่แล้ว

      What numbers are you talking about specifically? And what are you comparing them to?

    • @jamesfitzpatrick9607
      @jamesfitzpatrick9607 2 ปีที่แล้ว +1

      @@mikeckennedy kinda all the numbers but mainly the 700. With thinking about this a bit sense I guess this could be a bit of a historical number. On older machines with lower memory, higher numbers could cause problems. So using a 50,000 could be costly. I am now wondering if those numbers will be changed by default in the future as python is trying to make performance improvements.

    • @mikeckennedy
      @mikeckennedy  2 ปีที่แล้ว +1

      @@jamesfitzpatrick9607 I see. It's interesting that it's 700. That seems insanely low to me. I bet you're right that in 1991 that made sense. It doesn't now. Plus, the thing to keep in mind is that it *only* applies to cycles that are missed by ref counting. Ref counting runs first, then if there are cycles that would have leaked, then the GC kicks in. For 95% of apps, that almost never happens. I'm glad they make it configurable.