Çözüldü Visual Studio Code Bellek İzleme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Musa B.

Kilopat
Katılım
1 Ekim 2017
Mesajlar
1.633
Makaleler
4
Çözümler
13
Daha fazla  
Cinsiyet
Erkek
Merhaba, veri yapıları dersi ödevimiz için bir recursive fonksiyon yazmamız ve bu kod çalışırken belleği izlememiz ve elde ettiğimiz verileri kayıt altına alıp değerlendirmemiz söylendi. Kodu C++ veya Python dilinde yazma hakkımız var. Benim sorunum belleği izleme konusunda. Elimde şu anda PyCharm 2021.2 ve Visual Studio Code var. Bu iki programdan hangisinde daha rahat ve kolay bir biçimde belleği izleyebilirim ve bu izleme işlemini nasıl yapabilirim? Google´da küçük bir araştırma yapmayı denedim lakin elle tutulur bir sonuca ulaşamadım, yönergesi olan bir sayfa falan varsa ona da bakabilirim Türkçe veya İngilizce fark etmez. Şimdiden teşekkürler.
 
Çözüm
Açıkçası izlenmesi gereken pek bir durum yok.

Özyinelemeli fonksiyonlarda kendini çağıran her fonksiyon belirtilen koşul sağlanana kadar return olmaz bu nedenle her fonksiyon çağrısında call stack şişer ve en sonunda stack overflow gerçekleşir.

Normal bir fonksiyon çağrısında fonksiyonun return adresi ve parametreleri callstack'e push edilir, çağrı gerçekleştiğin de ise bu değerler geriye pop edilerek stack temizlenir, recursive fonksiyonlarda ise bunun gerçekleşmesi koşula bağlı olduğu için her fonksiyon çağrısı stack'i işgal eder.

Bu bilgiler yeterli olur, ek olarak aşağıdaki örneği de incelersen kafanda soru işareti kalmaz.

stck.gif
Açıkçası izlenmesi gereken pek bir durum yok.

Özyinelemeli fonksiyonlarda kendini çağıran her fonksiyon belirtilen koşul sağlanana kadar return olmaz bu nedenle her fonksiyon çağrısında call stack şişer ve en sonunda stack overflow gerçekleşir.

Normal bir fonksiyon çağrısında fonksiyonun return adresi ve parametreleri callstack'e push edilir, çağrı gerçekleştiğin de ise bu değerler geriye pop edilerek stack temizlenir, recursive fonksiyonlarda ise bunun gerçekleşmesi koşula bağlı olduğu için her fonksiyon çağrısı stack'i işgal eder.

Bu bilgiler yeterli olur, ek olarak aşağıdaki örneği de incelersen kafanda soru işareti kalmaz.

stck.gif
 
Çözüm
Python ya da C++ dediğin için Assembly'den registryler üzerinden taramayı hariç tutarsak tek yapabileceğin şey stack trace fonksiyonları üzerinden bakabilmek olur, ufak bir ipucu vermek gerekirse Windows için CaptureStackBackTrace Linux için backtrace API'lerine göz at.
 

Yeni konular

Geri
Yukarı