· kaynak dev.to (home feed)
Python 3.15 benchmarkları 3.14'e göre 135 kata kadar kodlama hızlanması gösteriyor, ancak Base16 yavaşladı
Windows'taki benchmarklar, Python 3.15'in Base32, Base64, Ascii85 ve Base85 kodlama sürelerini 3.14'e kıyasla ciddi biçimde düşürdüğünü, Base16'nın ise %22,3 daha yavaş kaldığını gösteriyor.

dev.to'da yayımlanan benchmark sonuçlarına göre Python 3.15, standart ikili-metin biçimlerinin çoğunda veriyi 3.14'ten çok daha hızlı kodluyor — ancak bir biçim geriye gitti. Base32, Ascii85, Base85 ve Base64'nün tümü büyük kazançlar elde etti; en belirgin vakalarda iyileşme iki büyüklük mertebesine ulaşırken, Base16 önceki sürüme göre yaklaşık %22 daha yavaş çıktı.
Ölçümler tek bir makinede yapılan bir pyperformance 1.14.0 çalışmasından geliyor: DDR5 RAM, PCIe Gen4 NVMe disk ve Windows 11 kullanan AMD Ryzen 9 7900 masaüstü bilgisayar; Python 3.10'dan 3.15'e kadar 64-bit sürümler kullanıldı.
Rakamlar
Tüm değerler milisaniye cinsindendir; düşük olan daha iyidir.
| Benchmark | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10 |
|---|---|---|---|---|---|---|
| ascii85_large | 11.62 | 797.9 | 709.0 | 772.3 | 643.8 | 759.2 |
| base32_large | 2.431 | 327.6 | 300.7 | 296.4 | 265.7 | 292.1 |
| base85_large | 4.293 | 272.4 | 252.9 | 258.8 | 230.1 | 259.2 |
| base64_large | 1.852 | 6.746 | 6.187 | 6.095 | 6.116 | 6.071 |
| base16_large | 5.767 | 4.714 | 22.52 | 23.08 | 23.89 | 23.71 |
Öne çıkan base32_large: 3.15, işi 3.14'ün süresinin kabaca 1/135'inde tamamlıyor (327,6 ms'ya karşı 2,431 ms). Ascii85 büyük iş yüklerinde yaklaşık 69 kat, Base85 ise yaklaşık 63 kat iyileşti. Base64'nün kazancı göreli olarak daha mütevazı — 6,746 ms'den 1,852 ms'ye, kabaca 3,6 kat — ancak zaten önceki sürümlerde grubun en hızlısıydı.
Yeni kodlamalar neden hızlandı
dev.to analizine göre hızlanmalar, Base32, Base64, Ascii85 ve Base85 kodlayıcılarının C ile yeniden yazılmasından geliyor. Yerleşik (native) uygulamalar bytecode yorumlayıcısının dispatch ve tip denetimi yükünü ortadan kaldırıyor, ara değerleri CPU register'larında tutuyor ve belleğe daha öngörülebilir desenlerle erişiyor — bunların tümü, bu algoritmaların dayandığı shift-and-mask aritmetiği için önemli. Yazar, 135 katlık Base32 sonucunu doğrudan o döngünün yorumlanan Python'dan çıkarılmasına bağlıyor.
Base16 istisnası
Base16 aykırı örnek: base16_large, 3.15'te 4,714 ms'lik 3.14 süresine karşı 5,767 ms sürdü; %22,3'lük bir gerileme. Tabloyu yumuşatan iki ayrıntı var. Birincisi, Python 3.13 ve öncesi aynı benchmark için kabaca 22,5–23,9 ms gerektiriyordu; dolayısıyla 3.15 o sürümlerden hâlâ yaklaşık dört kat hızlı — 3.14 sadece zirve noktaydı. İkincisi, kaynak nedeni çözülememiş olarak ele alıyor. Geçerli teori, Base16'nın C ile yeniden yazılmadığı ve hâlâ Python katmanından çalıştığı; yavaşlamanın 3.15'teki allocator veya nesne düzeni (object layout) değişikliklerine ya da 3.14'ün daha verimli bayt düzeyinde işlemler kullanmış olmasına bağlanabileceği yönünde. Bunlar doğrulanmış nedenler değil, hipotezler.
Yükseltmeden önce uyarılar
Sonuçlar tek bir donanım ve işletim sistemi kombinasyonunu yansıtıyor. dev.to yazısı, C runtime'ındaki Windows'a özgü davranışların Linux veya macOS'a aktarılamayabileceğine ve daha küçük önbellekli CPU'ların Python tarafındaki Base16 yolu için farkı büyütebileceğine dikkat çekiyor. Tavsiyesi iş yüküne bağlı: hex kodlaması iş yükünüzün ağır basıyorsa — blok zinciri araçlarında veya gömülü sistemlerde olduğu gibi — şimdilik 3.14'te kalmak mantıklı olabilir. Aksi halde, başka biçimlerdeki kazanımlar 3.15'i değerlendirmeyi hak edecek kadar büyük; yeter ki önce kendi kodunuzu ölçün.
Neden önemli
İkili-metin kodlamaları her yerdeki kritik yollarda yer alıyor: veri hatları, ek işleme, token üretimi ve depolama biçimleri. 327 ms'lik bir Base32 işlemini 2,4 ms'ye dönüştürmek, native extension'lar veya üçüncü taraf kütüphaneler olmadan saf Python'da nelerin pratik olduğunu değiştiriyor ve birçok veri işleme iş yükünde kodlamayı fiilen darboğaz olmaktan çıkarıyor. Base16 gerilemesi de karşı örnek: toplu hızlanmalar biçim bazında kazanç garantisi vermez ve bir sürüm yükseltmesi ancak, gerçekte dağıtım yaptığınız platformda gerçekte çalıştırdığınız iş yükünü benchmark'layarak doğrulanabilir.
- #python
- #cpython
- #benchmarks
- #performance
- #encoding
İlgili yazılar
- DeepSeek V4.1 Flash 1017 point release, kodlama ve agent benchmarklarını yükseltirken çıktıları da kısaltıyor
- Llmspeed, alıcıların GPU'lar, Mac'ler ve bulut donanımındaki yerel LLM hızlarını önceden görmesini sağlıyor
- Paper Instruments, Fable sınıfı işleri 60 kat daha düşük maliyetle sunduğunu iddia eden açık model Ultramarine 1 Flash'ı yayınladı