Profiling.sampling – Statistical Profiler

(docs.python.org)

41 points | by djoldman 2 days ago

4 comments

  • wongarsu 49 minutes ago
    What I like about profiling.tracing is how you can control it in the same code base that you are profiling. That turns tracing into a feature you can ship, not just a tool you can attach. Profiling.sampling doesn't seem to provide anything similar, it has to run as a separate process
    • boguscoder 4 minutes ago
      It’s not a downside perhaps but a tradeoff. Implementing internal sampling profiler is not impossible in general (though it will depend on exact python implementation) but it would impose different overhead on the target and might skew results a lot more than external one.
  • thomasmg 19 minutes ago
    I'm not trying to criticize, but Python is known to be much slower than eg. Java or Go etc. So for performance-critcal code, why use Python? I find Python to be very good because it is concise and simple, but I have not used it for production so far.
    • boguscoder 12 minutes ago
      Even when performance is not critical it’s possible to write (or vibe?) disastrously slow code, so having profiler handy is always a plus. It might be a deciding factor between “we must rewrite it all in Rust” and “oh we added exponential complexity by accident” and save a ton of time
    • spenczar5 12 minutes ago
      Sometimes you get there by accident. You make a thing, it grows or is used in unexpected ways, now suddenly performance matters.

      Sometimes Python is just the language used in the domain. Lots of sciences live on Python because it is easy to teach to grad students and the package ecosystem is strong.

  • modeless 30 minutes ago
    This sounds a lot like py-spy. How does it compare?
  • krystalgamer 56 minutes ago
    wiwm i'd imagine it has a 3rd party tool. very nice to get it out of the box in 3.15