11. SınıfBilişim Teknolojileri

Hata Ayıklama ve Profil Analizi

Bilişim Teknolojileri · 11. Sınıf · JavaScript ve DOM

Konu Anlatımı

Hata Ayıklama Neden Önce Ölçüm İstiyor?

Bir program beklenenden farklı davrandığında ilk iş geriye dönüp sorunu kanıtla bulmaktır. Rastgele değişiklikler yapmak, hatayı gizleyebilir ya da yeni hatalar doğurabilir. Bu yüzden hata ayıklama bir süreçtir: belirti, kanıt, varsayım, deneme ve doğrulama adımları.

Belirti, davranışın gözlenmesidir. Kanıt, ölçümdür. Varsayım, kanıta dayanan açıklamadır. Her deneme sonrası ölçüm tekrarlanır; böylece ilerleme kanıtla gösterilir.

Konsol Araçları

Tarayıcı geliştirici araçlarındaki konsol, değerleri yazdırmanın yanı sıra nesne ağaçlarını, veri türlerini ve hata yığınlarını göstermek için kullanılır. Değerleri tablo hâlinde yazdırmak, iç içe dizileri okunur biçimde görmeyi sağlar.

Adım Adım İlerleme

Hata ayıklama noktası, kodun belirli bir satırında durulmasını sağlar. Durulduğunda çağrı yığını, kapsamdaki değişkenler ve o satırdaki değerler incelenebilir. Adım adım ilerleme, hatanın hangi satırda başladığını bulmanın en güvenilir yoludur.

Devam et komutu bir sonraki satıra geçer, adım atla ise o satırdaki fonksiyonu çalıştırıp bir sonraki ifadeye geçer. İç içe çağrılarda çağrı yığını en üstteki çerçeve, hatanın doğduğu yeri gösterir.

Yeniden Üretme ve İzolasyon

Bir hatayı düzeltmek için önce güvenilir biçimde yeniden üretilebilir hâle getirmek gerekir. Veri, adım sayısı ve ortam sabitlendikçe hata izolasyonu kolaylaşır.

İzolasyon, sorunun hangi parçada olduğunu bulma çalışmasıdır. Kodun yarısını geçici olarak devre dışı bırakmak ya da yorum satırına çevirmek, darboğazı hızla işaret eder. Bulunan parça yeniden etkinleştirildikçe sorumluluk daralar.

Profil Analizi

Performans profillemesi, kodun hangi bölümünün zaman harcayıp hangisinin azaldığını gösterir. Kayıt alındıktan sonra en pahalı çağrılar sıralanır ve darboğaz üzerinde çalışılır.

Bellek profillemesi ise ayrılan nesnelerin neden toplanmadığını gösterir. Olay dinleyicileri kaldırılmadan çalışan uygulamada ayırma işlemi hiç gerçekleşmeyebilir; bu, uzun süreli kullanımda yavaşlamaya yol açar.

Düzeltmeyi Doğrulama

Düzeltme bittiğinde yalnızca hatanın kaybolduğu değil, başka bir yolun bozulmadığı da denetlenmelidir. Aynı senaryo düzeltme öncesi ve sonrası ölçülüp karşılaştırılır. Değer beklenenden iyiye giderse düzeltme kalıcıdır; yalnızca belirti kaybolduysa sorun başka bir yere taşınmış olabilir.

──YAMA── hata-turleri-ve-izolasyon

Hata Türlerini Sınıflandırmak

Hata ayıklamaya başlamadan önce hatayı türüne göre sınıflandırmak, arama alanını baştan daraltır. Üç temel tür vardır.

Hata TürüNe Zaman Ortaya ÇıkarNasıl Anlaşılırİlk Yapılacak
Sözdizimi hatasıKod derlenmeden önceKonsolda parse hatası, satır numarası verilirHatalı satırda parantez, virgül veya noktalama denetimi
Çalışma zamanı hatasıKod çalışırkenİşlem durur, hata türü ve yığın izi (stack trace) yazılırYığın izindeki ilk satırı okumak
Mantık hatasıKod çalışır, sonuç yanlıştırHata mesajı yoktur; çıktı beklenenden farklıdırGirdi ve çıktıyı el ile doğrulamak

Mantık hatası en zor bulunanıdır, çünkü program hatasız çalışır. Bu tür hatalarda varsayım üretip hemen test etmek yerine, önce beklenen sonucu kâğıda yazmak gerekir.

Profil Kaydını Okumak

Profil kaydı, programın hangi bölümünün ne kadar süre harcandığını gösteren ölçümdür. Kayıtta iki süre özellikle önemlidir.

Darboğaz aranırken yüksek toplam süre tek başına yeterli kanıt değildir; aynı fonksiyon kendi süresi yüksek olan adaylara bakılır. Kendi süresi yüksek olan bölüm, veri boyutu veya döngü sayısı gibi somut bir nedenle açıklanabiliyorsa düzeltme hedefi olur.

Ölçümü tekrarlamak da önemlidir: tek koşuya güvenmek yerine aynı senaryoyu birkaç kez çalıştırıp ortalamayı almak gürültüyü azaltır.

Ne Öğreneceğiz

Konsol araçları, hata ayıklama noktaları, çağrı yığını incelemesi, performans ve bellek profilleme yöntemleriyle uygulamadaki hataları bulup gidermeyi kapsar. Bu konuda ögrenme çıktıları:

Ön Bilgi

Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:

Basit Örnek ve Günlük Yaşam

Günlük yaşamda ve mesleki bağlamda bir uygulama:

Soru: Sayfadaki bir düğmeye tıklandığında hiçbir işlev çalışmıyor. Hata ayıklama noktaları yerleştirilerek darboğaz nasıl bulunur?

  1. Tıklanan hedef öğeyi konsolda yaz ve doğru mu diye bak.
  2. Dinleyicinin bağlanıp bağlanmadığını adım adım izle.
  3. Bağlanmamışsa sıralamayı düzelt ve yeniden dene.

Sonuç/cevap: Dinleyici, öğe oluşturulduktan sonra bağlanmadıysa hiçbir zaman tetiklenmez. Doğru öğe seçilip bağlantı kurulduğunda işlev çalışır. Bu, hatanın mantıkta değil sıralamada olduğunu kanıtlar.

İleri Örnek

Daha ileri bir uygulama:

Soru: Bir kod parçasında değişken adı yanlış yazıldığı için çalışma zamanı hatası oluşuyor. Hangi hata türü beklenir?

  1. Hatanın oluşma anını belirle.
  2. Hatanın iletisindeki ipuc incele.
  3. Değişken tanımıyla kullanımını karşılaştır.

Sonuç/cevap: Tanımsız bir değişken okunduğunda referans hatası oluşur. Yazım kuralına aykırı yapıda ise söz dizimi hatası görülür; ikisi farklı nedenlerle oluşur.

Karşılaştırma Tablosu

KavramAçıklama
Hata ayıklama, değişiklik yapmadan önce Hata ayıklama, değişiklik yapmadan önce belirtiyi ölçmeyle başlar.
Hata ayıklama noktası durulduğunda çağrıHata ayıklama noktası durulduğunda çağrı yığını, hatanın doğduğu yeri gösterir.
Değişkenleri yazdırmak, sorunun varlığınDeğişkenleri yazdırmak, sorunun varlığını kanıtlamanın en hızlı yoludur.
Rastgele değişiklik, hata kaynağını gizlRastgele değişiklik, hata kaynağını gizleyebilir ve yeni hatalar doğurabilir.
Darboğazı ölçmeden yapılan optimizasyon Darboğazı ölçmeden yapılan optimizasyon çoğu zaman hiçbir kazandırmaz.
Düzeltme sonrası aynı senaryo yeniden ölDüzeltme sonrası aynı senaryo yeniden ölçülerek karşılaştırılmalıdır.

Sık Yapılan Hatalar

Gözlem yapmadan değişiklik yapmak: Hata kaynağı bilinmeden yapılan düzeltmeler bazen işe yarar ama çoğu zaman sorunu gizleyip başka bir yere taşır.

Yalnızca konsol çıktısına güvenmek: Yazdırılan değer doğru görünse bile nesnenin gerçek tipi ya da referansı farklı olabilir; tip bilgisi de incelenmelidir.

Ölçmeden optimizasyon yapmak: En pahalı görünen satır, toplam sürenin büyük bölümünü oluşturmayabilir; kayıt alınmadan karar verilmemelidir.

Düzeltmeyi test etmemek: Hata kaybolması, düzeltmenin kalıcı olduğunu göstermez; aynı senaryo farklı girdilerle yeniden ölçülmelidir.

Kaldırılan öğelerin dinleyicilerini unutmak: Öğe DOM'dan silinse bile bağlı dinleyiciler bellekte kalır ve uzun oturumlarda yavaşlama yaratır.

Özet

Hata ayıklama ölçümle başlar ve kanıtla ilerler: konsol çıktısı değerin o anki hâlini gösterir, hata ayıklama noktası kodu durdurup çağrı yığını ve kapsam değişkenlerini inceletir, adım adım ilerleme hatanın hangi satırda başladığını bulur. Yeniden üretilebilir bir senaryo kurmak ve kodu yarıya indirerek izolasyon yapmak, sorumlu bölgeyi daraltır. Profil analizinde en pahalı çağrı ölçülür: 800 ms süren bir işlemde 700 ms alan tek bir çağrı için darboğaz oranı 700 ÷ 800 = 0,875 yani yüzde 87,5 olur. Düzeltmeden sonra aynı senaryo yeniden ölçülür; 800 ms yerine 250 ms alınması 550 ÷ 800 = 0,6875 ile yüzde 68,75 kazanç sağlar. Bellek profillemesi ise toplanmayan ayırma işlemlerini, yani dinleyici temizliği yapılmayan noktaları ortaya çıkarır.

Kendini Dene

Soru: Yönerge: Bir web uygulamasında kayıt düğmesine tıklandığında hiçbir şey olmuyor ve konsolda hata da görünmüyor. Bu sorunu gidermek için bir hata ayıklama planı yaz: (I) ilk ölçümü, (II) olası nedenleri sıralamayı, (III) izolasyon adımlarını, (IV) düzeltme sonrası doğrulamayı, (V) benzer hataları önleyen bir düzen maddesini yaz.

Örnek cevap: Puanlama anahtarı: İlk ölçümün konsol ve ağ paneliyle tanımlanması 5 puan; en az dört olası nedenin sıralanması 5 puan; izolasyon adımlarının ikili arama mantığıyla açıklanması 6 puan; düzeltme sonrası doğrulama ölçümünün yazılması 5 puan; önleyici düzen maddenin yazılması 4 puan. Toplam 25 puan. Model cevap: Önce tıklamanın DOM'a ulaşıp ulaşmadığı ölçülür, sonra dinleyicinin bağlı olup olmadığına bakılır. Olası nedenler: seçicinin boş dönmesi, bağlantının öğe oluşturulmadan önce yapılması, dinleyicinin birden çok kez bağlanması, hatalı olay adı kullanılması. İzolasyonda kodun yarısı devre dışı bırakılır ve sorumlu bölge bulunur. Düzeltme sonrası aynı senaryo yeniden ölçülür. Ayrıca dinleyici bağlanması tek bir noktada toplanır.

Hata Ayıklama ve Profil Analizi — Sık Sorulan Sorular

Hata Ayıklama Neden Önce Ölçüm İstiyor?

Bir program beklenenden farklı davrandığında ilk iş geriye dönüp sorunu kanıtla bulmaktır. Rastgele değişiklikler yapmak, hatayı gizleyebilir ya da yeni hatalar doğurabilir. Bu yüzden hata ayıklama bir süreçtir: belirti, kanıt, varsayım, deneme ve doğrulama adımları.

Hata Ayıklama ve Profil Analizi nedir?

Bir program beklenenden farklı davrandığında ilk iş geriye dönüp sorunu kanıtla bulmaktır. Rastgele değişiklikler yapmak, hatayı gizleyebilir ya da yeni hatalar doğurabilir. Bu yüzden hata ayıklama bir süreçtir: belirti, kanıt, varsayım, deneme ve doğrulama adımları. Belirti, davranışın gözlenmesidir. Kanıt, ölçümdür…

Hata Ayıklama ve Profil Analizi konusunda ne öğrenilir?

Hata ayıklama, değişiklik yapmadan önce belirtiyi ölçmeyle başlar.

Hata Ayıklama ve Profil Analizi konusunda sık yapılan hatalar nelerdir?

Gözlem yapmadan değişiklik yapmak: Hata kaynağı bilinmeden yapılan düzeltmeler bazen işe yarar ama çoğu zaman sorunu gizleyip başka bir yere taşır. Yalnızca konsol çıktısına güvenmek: Yazdırılan değer doğru görünse bile nesnenin gerçek tipi ya da referansı farklı olabilir; tip bilgisi de incelenmelidir.

Hata Ayıklama ve Profil Analizi için hangi formüller ve kurallar kullanılır?

Hata ayıklama süresi = belirti anından düzeltme anına geçen süre · Darboğaz oranı = en pahalı çağrının süresi / toplam çalışma süresi · Kapsam daraltma = önceki iş adedi - sonraki iş adedi · Ortalama çağrı süresi = toplam ölçülen süre / çağrı sayısı

Hata Ayıklama ve Profil Analizi Kazanımları

Örnek Sorular ve Çözümleri

Örnek Soru 1 kolay

Kodun belirli bir satırında durup o satırdaki değerleri incelemeyi sağlayan araç nedir?

  1. A) Hata ayıklama noktası
  2. B) Konsol temizleme
  3. C) Kaynak haritası
  4. D) Biçim denetleyici
Cevabı göster

Doğru cevap: A) Hata ayıklama noktası

Hata ayıklama noktası kavramı Hata Ayıklama ve Profil Analizi konusunun temel bir kavramıdır. Detaylar konu anlatımında verilmiştir.

Örnek Soru 2 orta

Hata ayıklama sırasında adım atla komutu ne yapar?

  1. A) Bir sonraki satıra geçer
  2. B) O satırdaki işlevi çalıştırıp bir sonraki ifadeye geçer
  3. C) Pratikte programı durdurur
  4. D) Değişkenleri siler tanımlar.
Cevabı göster

Doğru cevap: B) O satırdaki işlevi çalıştırıp bir sonraki ifadeye geçer

Adım atla, içinde bulunulan işlevi olduğu gibi çalıştırıp yürütmeyi bir sonraki ifadeye taşır. Devam et ise satır satır ilerler ve ara değerleri gösterir.

Örnek Soru 3 zor

5 saniyelik bir toplam süre 1000 çağrıya bölündüğünde ortalama çağrı süresi kaç ms'dir?

  1. A) 0,5 ms
  2. B) 0,005 ms
  3. C) 5 ms
  4. D) 500 ms
Cevabı göster

Doğru cevap: C) 5 ms

Ortalama süre, toplam sürenin çağrı sayısına bölünmesiyle bulunur. Beş saniye 5000 ms kabul edildiğinde 5000 ÷ 1000 işlemi ortalama çağrı süresi = 5 ms sonucunu verir.

Sıradaki adım

Konu anlatımları hesapsız okunur. Quiz, slayt ve deneme için hesap gerekir.

DersTeders ile devam et

Bilişim Teknolojileri için çalışma yolu

  1. OkuKonu anlatımını bu sayfada bitir.
  2. Soru çözÖrnekleri çöz, cevabı açıklamayla karşılaştır.
  3. Quiz ile pekiştirHesapla kendini ölç.

Slaytla adım adım öğren · Tüm dersler · Ana sayfa

Hesap açTüm dersleri keşfet

Konu anlatımları hesapsız okunur; quiz, slayt ve deneme için hesap gerekir.

Bu sayfa Hata Ayıklama ve Profil Analizi konusunun anlatımını, kazanımlarını ve örnek sorularını içerir. Konuyla ilgili tüm sorular için testi çöz, diğer konular için DersTeders ana sayfasına geçebilirsin.

Bu konunun öğretmen materyallerini (ders planı, çalışma kâğıdı, çözümlü soru bankası, rubrik) yazdırabilirsin: Yazıcı çıktısı modülünü aç