<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q" -->

---
title: Tachyon, Python 3.15&#x27;s Built-in Sampling Profiler
description: Python 3.15 (due October 2026) ships Tachyon, a built-in sampling profiler exposed as profiling.sampling, built by CPython core developer Pablo Galindo Salgado...
canonical: https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Tachyon, Python 3.15&#x27;s Built-in Sampling Profiler | daily.dev
og:description: Python 3.15 (due October 2026) ships Tachyon, a built-in sampling profiler exposed as profiling.sampling, built by CPython core developer Pablo Galindo Salgado...
og:url: https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q
og:image: https://api.daily.dev/og/posts/lmZhTbz6Q.png
og:image:alt: Tachyon, Python 3.15&#x27;s Built-in Sampling Profiler
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Tachyon, Python 3.15's Built-in Sampling Profiler

**[Planet Python](https://daily.dev/sources/planetpython)** · [@mkennedy](https://daily.dev/mkennedy) · 124 min read · 0 upvotes · 0 comments

## Summary

Python 3.15 (due October 2026) ships Tachyon, a built-in sampling profiler exposed as profiling.sampling, built by CPython core developer Pablo Galindo Salgado and Bloomberg's László Kiss Kollár. Unlike tracing profilers (profile, cProfile) that slow code 2-20x, Tachyon attaches to live processes from outside with near-zero overhead, going from an initial 2 samples/second prototype to over a million samples/second. It offers flame graphs, line heat maps, differential flame graphs, async-aware modes, GIL/CPU/exception filtering, and dump mode for hung processes, all built atop PEP 768's remote debugging interface (3.14) and reorganized under PEP 799's new profiling package. A HRT production story describes catching an accidentally quadratic algorithm burning a full core. The episode also covers explicit lazy imports, another Pablo-authored 3.15 feature, plus a preview of Cronon, an upcoming open-source profiler that sees Python, C, and kernel code together.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://talkpython.fm/episodes/show/565/tachyon-python-3.15s-built-in-sampling-profiler>

## Questions this post answers

### What is Tachyon in Python 3.15 and how is it different from cProfile?

Tachyon is a sampling profiler shipped in Python 3.15's standard library as the profiling.sampling module. Unlike cProfile, a tracing profiler that intercepts every function call and slows programs 2x to 3x, Tachyon reads a running process's stack from outside at a fixed frequency with near-zero overhead, making it safe to attach to live production applications. It reached over a million samples per second.

_Developers deciding how to profile production Python apps can follow new tooling changes like this on daily.dev._

### How much overhead does Tachyon add when profiling a live Python process?

By default Tachyon adds essentially no overhead since it only reads memory from outside the process without pausing it. If consistent reads are required, the --blocking flag pauses the target briefly per sample, costing about 1% to 2% at normal rates (100-10,000 Hz), 20% to 80% at 100,000 samples per second, and around 2x at a million samples per second. The recommended production rate is 100 to 1,000 Hz.

_Teams planning production profiling strategies can track overhead benchmarks like these on daily.dev._

### Why can't Python 3.15's Tachyon profiler attach to Python 3.14 processes?

Tachyon relies on interpreter changes introduced specifically in Python 3.15, so it can only profile 3.15 processes when run from 3.15, unlike py-spy which can attach to 3.12, 3.13, or 3.14 with varying performance. A community project called pythonbackport/python-profiling vendors the underlying _remotedebugging code to support 3.14, but CPython's core team declined to officially maintain a backport due to ongoing maintenance burden.

_Developers tracking version-specific tooling limitations can follow Python upgrade details on daily.dev._

## Similar posts on daily.dev

- [profiling.sampling — Statistical profiler ¶](https://daily.dev/posts/profiling-sampling-statistical-profiler--bd9rldcma) · Hacker News · 1 upvotes · 0 comments
- [Python 3.15 Has a Production Profiler. Python 3.15 Is Not Production-Ready.](https://daily.dev/posts/python-3-15-has-a-production-profiler-python-3-15-is-not-production-ready--wgbuvk9t9) · Medium · 1 upvotes · 0 comments
- [\#497: Faster than light profiling](https://daily.dev/posts/497-faster-than-light-profiling-iqkcdikzo) · Planet Python · 0 upvotes · 0 comments
- [What’s new in Python 3.15 ¶](https://daily.dev/posts/what-s-new-in-python-3-15--0wvfayvfu) · Hacker News · 1 upvotes · 0 comments
- [Python 3.15 Preview: Sampling Profiler Quiz – Real Python](https://daily.dev/posts/python-3-15-preview-sampling-profiler-quiz-real-python-eetgfhwut) · Real Python · 1 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#performance](https://daily.dev/tags/performance), [#cpython](https://daily.dev/tags/cpython)

[View this post on daily.dev](https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Tachyon, Python 3.15's Built-in Sampling Profiler","url":"https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q"},"datePublished":"2026-10-02T01:50:56.764Z","dateModified":"2026-10-02T22:00:13.357Z","description":"Python 3.15 (due October 2026) ships Tachyon, a built-in sampling profiler exposed as profiling.sampling, built by CPython core developer Pablo Galindo Salgado...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5920f1aaec0464562248dc98410eef8e?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5920f1aaec0464562248dc98410eef8e?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Planet Python","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Person","name":"Michael Kennedy","url":"https://daily.dev/mkennedy","image":"https://media.daily.dev/image/upload/s--CAIUuwxP--/f_auto,q_auto/v1701901463/avatars/avatar_5Q1yteeM08cxesQG2actL","description":"Python enthusiast. Host of @talkpython and @pythonbytes podcasts, founder of Talk Python Training.","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":30}},"commentCount":0,"discussionUrl":"https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,performance,cpython","timeRequired":"PT124M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet Python","item":"https://daily.dev/sources/planetpython"},{"@type":"ListItem","position":3,"name":"Tachyon, Python 3.15's Built-in Sampling Profiler"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/tachyon-python-3-15-s-built-in-sampling-profiler-lmzhtbz6q#faq","mainEntity":[{"@type":"Question","name":"What is Tachyon in Python 3.15 and how is it different from cProfile?","acceptedAnswer":{"@type":"Answer","text":"Tachyon is a sampling profiler shipped in Python 3.15's standard library as the profiling.sampling module. Unlike cProfile, a tracing profiler that intercepts every function call and slows programs 2x to 3x, Tachyon reads a running process's stack from outside at a fixed frequency with near-zero overhead, making it safe to attach to live production applications. It reached over a million samples per second. Developers deciding how to profile production Python apps can follow new tooling changes like this on daily.dev."}},{"@type":"Question","name":"How much overhead does Tachyon add when profiling a live Python process?","acceptedAnswer":{"@type":"Answer","text":"By default Tachyon adds essentially no overhead since it only reads memory from outside the process without pausing it. If consistent reads are required, the --blocking flag pauses the target briefly per sample, costing about 1% to 2% at normal rates (100-10,000 Hz), 20% to 80% at 100,000 samples per second, and around 2x at a million samples per second. The recommended production rate is 100 to 1,000 Hz. Teams planning production profiling strategies can track overhead benchmarks like these on daily.dev."}},{"@type":"Question","name":"Why can't Python 3.15's Tachyon profiler attach to Python 3.14 processes?","acceptedAnswer":{"@type":"Answer","text":"Tachyon relies on interpreter changes introduced specifically in Python 3.15, so it can only profile 3.15 processes when run from 3.15, unlike py-spy which can attach to 3.12, 3.13, or 3.14 with varying performance. A community project called pythonbackport/python-profiling vendors the underlying _remotedebugging code to support 3.14, but CPython's core team declined to officially maintain a backport due to ongoing maintenance burden. Developers tracking version-specific tooling limitations can follow Python upgrade details on daily.dev."}}]}
```

