Delphi Can
(Çözüldü)Memory aşımı - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: (Çözüldü)Memory aşımı (/showthread.php?tid=5062)

Sayfalar: 1 2


(Çözüldü)Memory aşımı - powerghost - 08-07-2020

Merhaba Arkadaşlar,

Uygulamada file server üzerindeki permissonları tararken ram sürekli artıyor. Ram'i belirli bir sınırda tutmanaın bir yolu varmı?


Memory aşımı - shooterman - 08-07-2020

Selamlar
Sanırım memoryleak vardı Aşağıdaki linki inceleyebilirsiniz.

https://www.thoughtco.com/memory-leak-notification-in-delphi-1057613


Cvp: Memory aşımı - uparlayan - 08-07-2020

(08-07-2020, Saat: 11:52)powerghost Adlı Kullanıcıdan Alıntı: Merhaba Arkadaşlar,

Uygulamada file server üzerindeki permissonları tararken ram sürekli artıyor. Ram'i belirli bir sınırda tutmanaın bir yolu varmı?

Permission'ları kontrol ettiğiniz kısmı kontrol edin.


Cvp: Memory aşımı - kadrikaya - 10-07-2020

(08-07-2020, Saat: 11:52)powerghost Adlı Kullanıcıdan Alıntı: Merhaba Arkadaşlar,

Uygulamada file server üzerindeki permissonları tararken ram sürekli artıyor. Ram'i belirli bir sınırda tutmanaın bir yolu varmı?

Merhaba,
Bir aralıkta tutmanın yolu değil ama iş bittikten sonra ayrılmış hafızayı serbest bırakma konusunda işe yarar sanırım.

Ben de servis yazmakla uğraşmak yerine ufak bir uygulama çözüm ürettiğim ve sürekli çalışan bir uygulamam var. Memory problemleri yaşadım. 
İlk çalıştığında 50 MB ile başlardı bitince 40 a düşerdi sonrakinde 90 olur işi bitince 70 olurdu ve sürekli artardı.

Uygulama içinde sürekli kontrol yaptığım aralıkta farklı başka prosedürlerde çağırıyorum her biri bittikten sonra bu prosedürü çağırıyorum.
Taktiğim bu şimdilik ve işe yarıyor, denemekten zarar gelmez.

procedure TfrmAnaEkran.TrimAppMemorySize;
var
 MainHandle : THandle;
begin
 try
   MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID) ;
   SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF) ;
   CloseHandle(MainHandle) ;
 except
 end;
 Application.ProcessMessages;
end;



Memory aşımı - powerghost - 11-07-2020

hım deneyelim bakalım. Bizimki web servis gerçi.


Cvp: Memory aşımı - kadrikaya - 11-07-2020

(11-07-2020, Saat: 00:17)powerghost Adlı Kullanıcıdan Alıntı: hım deneyelim bakalım.  Bizimki web servis gerçi.

Konu Delphi altında ve Genel programlama olunca, delphi uygulaması olduğunu düşündüm.


Memory aşımı - mrmarman - 11-07-2020

Kod örneği olsa gözle de anlaşılırdı ancak problemin kaynağını bulmak üzere klasör permissionları baktığınız kodun, dıştan dışa remark içine alıp (süslü parantezler içinde yani devre dışı bırakıp) sonra bu aynı parantezleri sırasıyla dıştan içe doğru bloğu daraltarak hangi aşamada memory leak oluştuğuna ulaşabilirsiniz.

Başlangıçta bu işlem doğası gereği yanlış sonuç gelecek onu önemsemeyin, maksat odağı bulmak. 

WebServices detayını da görünce belki sorun daha başka yerde dahi olası. Bunu da yakalamış olursunuz.


Memory aşımı - powerghost - 13-07-2020

Merhaba Arkadaşlar,

Bir processing ne kadar ram kullandığını Delphide nasıl bulabiliriz. Aktif çalışan uygulamanın ne kadar ram tükettiğini bulaiblirsek belki sorunu çözebilriz.?


Memory aşımı - mrmarman - 14-07-2020

bkz delphican bu link.


Memory aşımı - powerghost - 14-07-2020

Bu yöntemde sorunumuzu çözmedi. Sad

Ben yazılımcı değilim ama Delphi ile ram optimizasyonun bu kadar zor olması çok garip.