1 poin oleh darjeeling 1 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp

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 (-a option)
  • 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.

Belum ada komentar.