Memperkenalkan Tachyon, profiler sampling baru di Python 3.15
(blog.changs.co.uk)Pengenalan kasus penggunaan Tachyon, profiler sampling yang diperkenalkan di Python 3.15, untuk memvisualisasikan bottleneck multithreading dan menemukan jebakan performa dalam abstraksi OOP
Apa itu Tachyon?
Profiler berbasis sampling yang akan ditambahkan ke standard library di Python 3.15.
Inti utamanya adalah dukungan native untuk lingkungan free-threading (tanpa GIL), yang selama ini diabaikan oleh profiler yang ada.
Fitur utama
- Overhead rendah berkat metode sampling
- Mendukung profiling semua thread secara bersamaan (
-aoption) - Dapat melakukan attach jarak jauh ke proses yang sedang berjalan
- Mendukung berbagai format output, termasuk flamegraph
- Mengenali async — dapat diterapkan juga pada program asyncio
Cara menjalankan
sudo -E uv run -p 3.15.0a6t python -m profiling.sampling run \
-a --flamegraph -o profile.html -r 20khz your_script.py
# -a : memprofilkan semua thread selain thread utama
# -r 20khz : sampling 20.000 kali per detik (tingkat presisi dapat disesuaikan)
# hasil : HTML flamegraph — kolom merah adalah hot path
Contoh penerapan nyata — mendeteksi bottleneck free-threading
Sebelum optimasi — akses Grid melalui __getitem__ memakan 75% dari total waktu eksekusi
https://blog.changs.co.uk/images/unoptimised-bench.png
Setelah optimasi — setelah diubah menjadi akses langsung ke tuple internal, turun menjadi 5.32%
https://blog.changs.co.uk/images/optimised-bench.png
Mengapa ini penting
- Selama ini, masalah performa free-threading praktis hanya bisa dicari "berdasarkan intuisi"
- Tachyon adalah alat resmi pertama yang secara visual menunjukkan di mana thread tersendat
- Terbuka jalan bagi developer Python biasa untuk mengukur dan meningkatkan performa free-threading secara langsung
Belum ada komentar.