


Şimdi acaba Thread'in contructor'ı mı buna sebeb oluyor?The dynamic-allocation functions most Delphi users are familiar with are GetMem(), FreeMem(), and New() and Dispose(). But actually many seemingly simple actions in Delphi can result in heap memory being allocated or deallocated. Among them:
* Object creation using a constructor
* Long string variables, and operations on them
* Operations on short string variables
* Creation and resizing of dynamic arrays
* String/array values in variants
* Explicit allocation using GetMem()/FreeMem(), New() and Dispose()
Whenever you concatinate strings, (HTML generator apps are generally string processors right?) , you allocate and release memory. Whenever you create a class like a TList or TStringList, you also allocate and release memory. The manager that handles this memory allocation is SHARED across all the threads in your application. This means that Locks are placed on the memory manager, in fact, several when you start combining and splitting strings. The more your app does.. the more locks on this shared object occur and the slower your app becomes.
Kendi projende kullanmak için sadece FastMM4 ü projenin dpr'nin ilk uses ına eklemen yeterli. Delphi IDE'm biraz hızlansın diyorsan, Delphi\Bin e ide için olan BorlndMM.dll yi koyabilirsin. Bu zorunlu değil. Eğer Projende FastMM4 ü kullanmışsan ve DLL 'den longstring parametresi filam geçireceksen. Default gelend BorlndMM.dll yerine bu paketin içinden çıkan Forapplications directorysinin içindeki BorlndMM.dll yi kullanman lazım.hdayi yazdı:Bişey daha sorayım bununla ilgili. Bu dll dosyasını değiştirdiğim zaman, pas dosyasını yine eklemem gerekiyor mu? Yoksa sadece dll dosyasını değiştirmiş olmam yetiyor mu?
@Coderlord, FastShareMem ile Fastmm4 ü karıştırma. Fastmm4 normal projeler için memory manager oluyor. Sadece Dlller için değil.Kendi yazdığın bir DLL yoksa veya yazdığın DLL içinde Delphi'ye özel tip yapılarını kullanmıyorsan FastMM veya BorlandMM'e ihtiyacın yok. Smile