Delphide Ram kullanimini azaltan teknikler

Başlatan bunalmis, 28 Aralık 2009, 10:00:46

z

Delphide daha dusuk ram kullanan yazilim gelistirme icin oneriler nelerdir?

Ornegin bir tuşa basınca görünür hale getireceğimiz compenentlerin visible özelliği ile oynamak yerine, komponent gösterileceği zaman yaratmak daha mı az ram harcar?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sekoli

Selamlar,
Tam olarak daha az hafıza harcar demek doğru olmayabilir, Sonuçta siz onu Create ettiğinizde aynı miktarda hafıza ayrılacaktır. Ama genel olarak lazım olan objeyi, lazım olduğunda Create edip, işiniz bitince de Destroy ederseniz güzel olur. Ayrıca ne kadar çok komponent o kadar çok hafıza demektir. Denemek için formun üzerine koyup da kullanmadığınız komponentler var ise USES kısmından unit dosya adını da kendiniz elle siliniz. Eğer basit kullanıcı arabirimi işinizi görüyorsa console application yapabilirsiniz, daha az hafıza kullanacaktır.
Genel olarak bunlara dikkat edebilirsiniz.
Eğer hafıza kullanımı açısından çok kritik bir seviyedeyseniz daha ileri tekniklerden de bahsedebiliriz.

İyi çalışmalar.

hasangurlek

Alıntı yapılan: "bunalmis"Delphide daha dusuk ram kullanan yazilim gelistirme icin oneriler nelerdir?

Ornegin bir tuşa basınca görünür hale getireceğimiz compenentlerin visible özelliği ile oynamak yerine, komponent gösterileceği zaman yaratmak daha mı az ram harcar?

Objelerin formla birlikte oluşturulması bellek kullanımını artırmaz. Sonuçta ilgili özellik için yazığınız kod formla birlikte belleğe yüklenecek. Objeyi kod ile oluşturmanız veya visible özelliğini kullanmanız ilave kod gerektireceğinden daha fazla bellek harcarsınız.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

controller

Objelerin form ile birlikte oluşturulması bellek kullanımını arttırır. Objenin türetildiği class daki kodlar bellekte yer kaplamaz.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

z

Peki ramı daha verimli kullanmak icin için nelere dikkat etmeliyiz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

controller

Genel olarak "static" ve "global" objeler yerine "dynamic" ve "local" objeler kullanmayı tercih edebiliriz.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

fatihvelid

Delphi'de kullandığınız komponent'e bağlı olarak'da çok kaynak götürür. Uses kısımlarında kullanmadığınız gereksiz unit'leri çıkarın. Ayrıca derlenirken delphi'nin otomatik olarak kattığı bazı kütüphaneler var, onları da gözden geçirmeniz de fayda var. Nesneleri dinamik olarak kullanın, işiniz bittiğinde de yok edin.

Delphi, kullanıcıyla etkileşim, görsellik, sistem kaynaklarının kullanıldığı bütün komutlarda WinAPI kullanır. Ve bu arada birçok gereksiz kod da üretir.

Programın hızlı çalışmasını ve düşük kaynak kullanmasını istiyorsanız C++ ile Visaul Studio'da MFC kullanmadan yazmanızı öneririm. İleri düzey WinAPI bilgisi gerektirir. Görsel kısmı için daha fazla kod yazmanız gerekecek. Formları, butonları, thread'ları komponent kullanmadan WinAPI'ler ile yazacaksınız. Bellek yönetimini de daha kolay yapabilirsiniz bu programlama düzeyinde. Ama bu, delphi'de yazacağınız programa göre daha çok vakit alacaktır.

C++ ile MFC kullanmadan yazarsanız; daha çok zaman ve daha low level olacak, ama daha hızlı çalışıp daha az sistem kaynağı bellek tüketecek.

Delphi'de yazarsanız; üst düzey kodlamayla daha kısa sürede yazarsınız, ama programınız daha çok sistem kaynağı tüketir ve biraz hantal olabilir.

Ortada bir trade off var. Seçim sizin.
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

Kainatta her canlı "DNA" diliyle yazılmış bir programdır...