Bilgisayar Bilimleri

Programların Kod Boyutu Nasıl Küçültülür?

Programların kod boyutları büyüdükçe performansları genellikle düşer. Büyük kod boyutunun zararları ve bu durumun önüne geçmek için uygulanabilecek özel yöntemler ve çeşitli taktikler işte bu yazımızda!

Programlarda işlevselliği arttırmak için eklenen fonksiyonlar ve kod blokları kodun dosya boyutunun ciddi şekilde büyümesine ve kimi zamanlarda da algoritma kompleksliğinin artmasına sebep olur. Bu durum da programın performansını önemli ölçüde düşürebildiği için de kullanıcı deneyimini olumsuz yönde etkileyebilir.

İşte bu sebeple programların kod boyutlarının küçültülmesi ve performans odaklı algoritma dizaynı yapmak gerekir. Tabi bunun da bir takım teknikleri vardır. İşte bu yazıda sizlere bu tekniklerden bahsedecek yani yaptığımız programların performansını düşürmeden kod boyutunu nasıl optimize edebileceğimizden bahsedeceğiz. Zira optimize edilmiş kod boyutu da yazılım & programlama standartları arasındadır. Bu konuda şu tarz çarpıcı bir örnek verebiliriz:

Büyük Kod Boyutunun Zararları Nelerdir?

Büyük kodların ve o kodlarda olan bağımlılık döngülerinin anlaşılması ve optimize edilmesi daha zordur.
Global değişken isimleri kirletilir. Bu sebeple önişlemci isimlerinde potansiyel bir uyumsuzluk doğurabilir.
Aynı zamanda fonksiyonların çalışma süreleri de uzar.
Programları güncellemek çok daha zor bir hal alır. Programlar & yazılımlar üzerinde güncellemeler yapılsa dahi kod mimarisinde ciddi bozulmalar meydana gelebilir. Mesela:

Yüksek Kod Boyutu Programın Güncellenmesini Zorlaştırır
Yüksek Kod Boyutu Programın Güncellenmesini Zorlaştırır

Görsel kirliliğe sebep olduğu için aranan kodun kişi tarafından bulunması zorlaşır.
Programın derleyici (compiler) tarafından derlenme süresinin artmasına sebep olur. Kod boyutu büyüdükçe bu ciddi bir sorun potansiyelini doğurur.
(Ayrıca Bakınız: İnterpreter, Assember ve Compiler Nedir?)

Yüksek kod boyutunun görüldüğü üzere doğrudan ve dolaylı olarak pek çok zararı olabilir. Peki bunun sebepleri nelerdir derseniz aslında bunun temelde iki tane sebebi vardır:
1- Program geliştiricilerinin işin püf noktalarını bilmemesi
2- Program geliştiricilerinin sıfırdan kod yazmaya üşenmeleri

Kod Boyutunun Büyüklüğünün Temel Sebebi Kodu Geliştirenlerin Üşengeçliğidir
Kod Boyutunun Büyüklüğünün Temel Sebebi Kodu Geliştirenlerin Üşengeçliğidir

Kod Boyutu Nasıl Küçültülür?

1- Kullanılmayan Bileşenleri Kaldırın

Programın işleyişi sırasında kullanılmayan bileşenler, hiçbir işlevleri olmamalarına rağmen sadece kod boyutunu büyütür ve bu sebeple derleyicide programın derlenme süresinin artmasına sebep olurlar. Kullanmayan bileşenlere şunlar örnek olarak verilebilir:

• Programın işleyişinde kullanılmayan fonksiyonlar
• Programın işleyişinde kullanılmayan veri ve değişkenler
• Programın işleyişinde kullanılmayan kütüphaneler
• Programın işleyişinde kullanılmayan aklınıza gelebilecek her şey… Mesela şu görselde kullanılmayan bileşen olarak nitelendirilebilecek pek çok bileşen çeşidi mevcuttur:

Kullanılmayan Bileşenler Program Kod Boyutunu Gereksiz Yere Büyütürler
Kullanılmayan Bileşenler Program Kod Boyutunu Gereksiz Yere Büyütürler

Programın kod boyutunu küçültmek için;
1- Programın işleyişinde kullanılmayan bileşenler kodun işleyişini bozmayacak şekilde kaldırılmalıdır.
2- Gereksiz yere işlem tekrarına veya fonksiyonların adım sayısının uzamasına sebep olan değişken ve işlemler de tespit edilmeli ve kaynak kodundan kaldırılmalıdır.

Gereksiz işlem tekrarına ve adım uzamasına sebep olan kodları, programın kaynak kodunu inceleyip sizin tespit etmeniz gerekir. Fakat güzel haber şu ki, programda hiç kullanılmayan bileşenleri program geliştirme ortamları (IDE’ler) genellikle size tıpkı şu örnekteki gibi altı çizili bir şekilde gösterirler:

Kod Editörleri (IDE) Kullanılmayan İmportları Gösterip Kod Boyutunun Küçültülmesine Yardımcı Olurlar
Kod Editörleri (IDE) Kullanılmayan İmportları Gösterip Kod Boyutunun Küçültülmesine Yardımcı Olurlar

💡 Profesyonel İpucu: Programlarda kütüphanelerin tamamı değil, sadece ihtiyaç duyulan kadarı dahil (import) edilmeli veya kişi kendi özgün fonksiyonlarını geliştirmelidir. Zira koda kütüphanelerin (kullanılmayan kısımları dahil) tamamı dahil edilirse kod boyutu anormal şekilde büyür.

Kütüphaneler komple bir bileşen olarak değerlendirildiği için, gereksiz dahil etme durumlarında IDE’lerde (mesela üstteki örnekteki gibi altı işaretlenmiş kod satırı) gibi kullanılmayan bileşen hatası almazsınız. Bu durum özellikle büyük olmayan projelerde, tıpkı şu örnekte görüldüğü gibi kod boyutunda ciddi büyümeye sebep olmaktadır:

Kullanılmayan Kütüphanelerin Kaldırılması Program Kod Boyutunu Önemli Ölçüde Azaltır
Kullanılmayan Kütüphanelerin Kaldırılması Program Kod Boyutunu Önemli Ölçüde Azaltır

Örnek: Mesela basit bir hesap makinesine Matematik kütüphanesinde önceden kodlanmış olan standart sapma özelliği eklemek istiyoruz diyelim. Bu durumda, tüm matematik kütüphanesini koda dahil etmek yerine sadece standart sapma kodunu koda dahil etmeliyiz. Tıpkı şuradaki gibi:

import Matematik (Hiç Tasarruf Yok)
import Matematik.Özelİşlemler (~%90 Tasarruf)
import Matematik.Özelİşlemler.StandartSapma (~%100 Tasarruf)
Programda Sadece Kullandığınız Kütüphaneleri İmport Edin
Programda Sadece Kullandığınız Kütüphaneleri İmport Edin

2- Kodu Sıkıştırarak Küçültün (Minify)

Minify Nedir: Programın işlevini değiştirmeden hem gereksiz bir takım bileşenlerin kaldırılarak hem de kaynak kodunun sıkıştırılarak kaynak kod boyutunun küçültülmesidir.

Minify işleminde programın kaynak kodundan şu bileşenler kaldırılır:
• Boşluk karakterleri (” “)
• Alt satıra geçme karakterleri (“\n”)
• Yorum satırları

Örnek: İnternet siteleri bünyelerinde pek çok programlama dilinden pek çok dosyayı barındırırlar. Eğer bu dosyalar verimli bir şekilde yönetilmez ve optimize edilmezlerse hız konusunda ciddi bir sıkıntı yaşanılır. Mesela bir internet sitesine ait JavaScript kodunun orijinal ve sıkıştırılarak küçültülmüş halleri aşağıdaki gibidir:

Minify İşlemi İle Dosya Boyutu Nasıl Küçültülür?
Minify İşlemi İle Dosya Boyutu Nasıl Küçültülür?

💡 Profesyonel İpucu: Yaptığımız programların orijinal kaynak kodları bir köşede saklanmalı, bu kodların minify işlemi ile sıkıştırılıp optimize edilmiş hali ise derlenerek kullanıma sunulmalıdır.

Bu sayede hem veri (yorum satırı vs.) kaybı yaşanmayacağı için programı ilerleyen dönemlerde güncellemek kolaylaşır, hem de derlenen programın çalışma verimi arttırılır. Mesela örnek bir kullanım şu şekildedir:

Orijinal Dosyaların Saklanıp Optimize Edilmiş Dosyaların Program Derlenirken Kullanılması Performans ve Verimlilik Sağlar
Orijinal Dosyaların Saklanıp Optimize Edilmiş Dosyaların Program Derlenirken Kullanılması Performans ve Verimlilik Sağlar

Minify işlemi ile orijinal dosyanın kodlanma biçimine göre değişiklik göstermekle beraber bu işlemle dosya boyutunda ciddi küçülmeler elde edebilirsiniz. Minify işlemi özellikle internet sitelerini hızlandırmak ve hız skorlarını iyileştirmek amacıyla yapılır.
(Ayrıca Bakınız: Google Pagespeed İle Site Hızlandırma Rehberi)

Uyarı: Yorum satırlarının kaldırılması hemen hemen her dile uyarlanabilir fakat alt satıra geçme karakterlerinin (“\n”) kaldırılıp kodun yan yana eklenerek az önceki örnekteki gibi sıkıştırılması girinti düzenine (indentasyon) önem veren Python gibi programlama dillerinde derleyici hatasına sebep olacağı için kullanıma uygun değildir.
(Ayrıca Bakınız: Python Nedir? Nerelerde Kullanılır?)

3- Kod Boyutu Küçültme Yöntemleri

Başarılı programlar genellikle temiz bir şekilde kodlanmışlardır. Bu sayede de aynı işlemleri daha kısa sürede çok daha yüksek bir performans ile gerçekleştirme kapasitesine sahiplerdir.

Bir programın algoritma dizaynındaki düzensizlik ve karmakarışıklık arttıkça hız önemli ölçüde düşer. Bunu tıpkı şu görseldeki gibi ifade edebiliriz:

Neden Programlarımızı Temiz Şekilde Kodlamalıyız
Neden Programlarımızı Temiz Şekilde Kodlamalıyız?

Bu sebeple hem kaynak kod boyutu, hem de derlenmiş kod boyutunu küçültmek amacıyla şunlar yapılabilir: (Yazının devamındaki maddelerden size uygun olanlar kullandığınız programlama diline ve yaptığınız programa göre farklılık gösterebilir.)

✅ Kalıtım (inheritance), arayüz (interface), çok biçimlilik (polymorphism), decorator dizaynı gibi performans temelli uygulamaları verimli bir şekilde kullanın.
✅ Anında oluşturulamayan verileri sıkıştırın ve daha sonra hızlı erişim için onları başlangıçta RAM’de açın.
✅ Görüntü kaynakları (bitmap), yazı tipleri (font) gibi dosya boyutunu büyütebilecek kaynakları verimli bir şekilde kullanın.
✅ Kodları performans odaklı optimize edin.

Peki programlarımızı temiz kodlama ile performans odaklı nasıl optimize edebiliriz? İşte bu konuda detaylı bilgi almak, işin püf noktalarını ve bir takım özel teknikler öğrenmek için şu yazımıza göz atabilirsiniz:
(Ayrıca Bakınız: Kodlama & Programlama Standartları Nelerdir?)

Verimli Hafıza Kullanımı ve Maksimum Performans İçin Temiz Kodlama Yapılmalıdır
Verimli Hafıza Kullanımı ve Maksimum Performans İçin Temiz Kodlama Yapılmalıdır

✅ Mikro küçük bir talimat setine sahipse derleyicide etkinleştirin.
✅ Sıkça kullanılan makroları fonksiyonlara dönüştürün.
✅ Hem kod boyutunu hem de kod performansını arttırmak için algoritma kompleksliğini azaltın.
✅ Yerel makine boyutundan daha büyük çözünürlüğe sahip değişkenler için çözünürlüğü azaltın.
Örnek: Mesela 8 bit mikro için, 16 ve 32 bitlik değişkenlerden kurtulmak bazı kod dizilerinin boyutlarının 2-4 kat artmasına engel olur.

✅ Eğer varsa optimize ederek derleme özelliğini kullanın.
✅ Veri tabloları yerine olabildiğince generator fonksiyonları kullanın.
✅ Satır içi (inline) fonksiyon özelliğini, sadece küçük boyuttaki ve sıkça çağrılan fonksiyonlar için kullanın.
✅ Programın kaynak kodlarını hata ayıklama (debugging) modu kapalı bir şekilde derlediğinize emin olun.
(Ayrıca Bakınız: Bug Nedir? Debugging Nasıl Yapılır? [Rehber])

Son Not: Programları sadece kod boyutlarını küçülterek optimize edemezsiniz. Temiz ve programlama standartlarına uygun bir şekilde kodlanmış olmaları ve programların çalışacağı teknik altyapının sağlam olması da en az kod boyutunu küçültmek kadar önemlidir.

Technogezgin.com Bilgi
Programların kod boyutu nasıl küçültülür” konulu yazımız hakkında eklemek istediklerinizi, sorularınızı ve (eğer varsa) yazıdaki yanlışları yorumlarda belirtebilirsiniz.

Bilgi güçtür, paylaştıkça büyür. Bu sebeple bu yazıyı da gönül rahatlığı ile paylaşarak bize büyük bir iyilik yapabilirsiniz.

Ana Sayfa: 
https://www.technogezgin.com/
Hayata Dair Özgün ve Kaliteli Yazılarımız: 
https://www.technogezgin.com/blog/

MrKaptanTR

Bilgisayar mühendisiyim ve boş zamanlarımda kurucusu olduğum bu platformda yazarlık yapıyorum. Özellikle yazılım ve profesyonel içerik üreticiliği alanlarında çalışıyorum. Spor yapmaktan ve gizemli konuları araştırmaktan keyif alıyorum.

1 Yorum

  1. Programların kod boyutunu küçültünce hem derlenme süresi gözle görülür bir biçimde kısalıyor hem de ilginç bir şekilde çalışma hızı artıyor. Bu konuyu çok güzel bir şekilde ele almışsınız, bu sebeple faydalı içerik +rep 🙂

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu