---
title: "Saf Fonksiyonel Programlama C Performansına Ne Kadar Yaklaşabilir?"
url: https://blog.edumints.com/saf-fonksiyonel-programlama-c-performansina-ne-kadar-yaklasabilir
category: "Yazılım"
date: 2026-10-25T09:04:47.685Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://rtfeldman.com/fp-vs-c
---

# Saf Fonksiyonel Programlama C Performansına Ne Kadar Yaklaşabilir?

Fonksiyonel programlama (FP) dilleri genellikle yüksek soyutlama yetenekleri ve güvenli yapılarıyla bilinirken, saf çalışma zamanı performansı söz konusu olduğunda C ve Rust gibi sistem dillerinin gerisinde kaldıkları düşünülür. Ancak güncel derleyici teknolojileri ve dil tasarımları bu algıyı kökten değiştiriyor.

 Yakın zamanda yayımlanan **"Why Lean is Faster Than Rust"** başlıklı makalede etkileyici bir sonuç paylaşıldı: Bir fonksiyonel programlama dili ve kanıt asistanı olan **Lean 4** ile yazılmış bir DEFLATE sıkıştırma kütüphanesi (`lean-zip`), crates.io üzerinde bir milyardan fazla kez indirilen eşdeğer Rust paketini (`miniz_oxide`) geride bıraktı. Makaledeki verilere göre `lean-zip`, `miniz_oxide`'ın sunduğu her sıkıştırma seviyesini aşarak aynı sıkıştırmayı daha yüksek verimle sağlıyor; en hızlı ayarda **%15 daha hızlı** çalışıyor ve **%8,8 daha küçük** çıktı üretiyor.

Buna rağmen `lean-zip`, DEFLATE performansının zirvesi kabul edilen ve C ile yazılmış olan **libdeflate** karşısında aynı üstünlüğü gösteremedi. Mimariye özgü SIMD komutlarıyla son derece dikkatli optimize edilmiş olan `libdeflate`, Lean'in erişemediği düşük seviyeli optimizasyonlar sayesinde farkını korudu.

Tam bu noktada devreye **Roc** giriyor. Roc, bir teorem kanıtlayıcı olmayan ancak çalışma zamanı (runtime) performansına açıkça odaklanan saf bir fonksiyonel programlama dilidir. Sloganı **"Hızlı, Kullanıcı Dostu, Fonksiyonel"** (Fast, Friendly, Functional) olan dilde hem hızlı çalışmak hem de hızlı derlenmek temel hedeftir. Henüz ilk numaralı sürümü olan `0.1.0`'dan haftalar uzakta olmasına ve yeni filizlenen paket ekosisteminde neredeyse hiç optimizasyon çalışması yapılmamış olmasına rağmen; dil tasarımı, köklü optimizasyonları ve yepyeni derleyici uygulaması sayesinde C dünyasının şampiyonu `libdeflate`'e meydan okuyabilecek bir temele sahip.

Yazar, Niclas Ahden tarafından geliştirilen ve üretim ortamında kullanılan `roc-deflate` paketi üzerinde yoğun performans optimizasyonları gerçekleştirdi. Klasik **Silesia korpusu** kullanılarak yapılan ve birebir aynı çıktıların üretildiğini doğrulayan akışsız (non-streaming) API testlerinde amaç, `libdeflate` performansına ne kadar yaklaşılabileceğini görmekti.

## %10'dan Daha Az Yavaş

2021 M1 MacBook Pro ve x64 karşılaştırması için AMD Ryzen 9 3900X Ubuntu makinede L1'den L12'ye kadar olan sıkıştırma seviyelerinde yapılan **144 kıyaslama (benchmark)** sonucunda ortaya çıkan tablo oldukça çarpıcıdır:

- **M1 MacBook Pro:** `roc-deflate`, ortanca (median) durumda `libdeflate`'ten yalnızca **%2,6 daha yavaş** çalıştı.
- **AMD Ryzen 9 3900X (Ubuntu):** Ortanca durumda `libdeflate`'ten sadece **%8,9 daha yavaş** bir performans sergiledi.
- **Silesia Korpusu L1 Performans Örnekleri:** `libdeflate`, 15 çalıştırmanın ortancasına göre L1 seviyesinde `dickens` dosyasında **230.57 MB/s**, `mozilla`'da **248.31 MB/s**, `mr`'da **312.26 MB/s**, `nci`'da **601.03 MB/s**, `ooffice`'de **169.98 MB/s**, `osdb`'de **284.01 MB/s**, `reymont`'ta **281.14 MB/s**, `samba`'da **344.00 MB/s**, `sao`'da **160.21 MB/s** ve `webster`'da **268.58 MB/s** hızlarına ulaşırken, `roc-deflate` bu değerleri çok yakın bir marjla takip etmeyi başardı.

## Yazılım Geliştiriciler İçin Pratik Çıkarımlar

- **Soyutlama ve Performans İkilemi Azalıyor:** Doğru derleyici mimarisi ve bellek yönetimiyle, saf fonksiyonel diller C seviyesindeki performansa tek haneli yüzdeler kadar yaklaşabilmektedir.
- **Erken Aşama Potansiyeli:** Henüz `0.1.0` sürümüne bile ulaşmamış bir dilin, yıllarca SIMD ile ince ayar yapılmış bir C kütüphanesine %2,6 ila %8,9 kadar yaklaşması, modern derleyici tasarımının gücünü kanıtlar.
- **Doğrulama Odaklı Optimizasyon:** Performans iyileştirmeleri yapılırken standart veri setleri (Silesia korpusu gibi) kullanmak ve çıktıların birebir aynı olduğunu doğrulamak, güvenilir yazılım mühendisliğinin temelidir.

---

**Kaynak:** Hacker News (https://rtfeldman.com/fp-vs-c)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/saf-fonksiyonel-programlama-c-performansina-ne-kadar-yaklasabilir
