fduman yazdı:Global değişkenler stack'te tanımlandıkları için bellekten atamazsınız. Ancak örnekteki string ifadenin boyutunu azaltabilirsiniz. Bunun da bellek yönetimi açısından pek bir etkisi olmaz. Uğraşmayın.
Klavyen sürçtü herhalde @fduman (aka coderlord

) Benim bildiğim global değişkenler Process'in hafıza layoutunda .data bölümünde program sonlanana kadar durur. Stack'te procedure lerde tanımlanan değişkenler ve procedure çağırımında push edilen parametreler tutuluyor.
Global değişkenler için ayrılan yer program bitene kadar durur. Şuda varki string delphide compiler-managed olarak heapte tutulur. Heap process'in dinamik bellek alanıdır. Var a:string olarak tanımladığında a aslında stringin heapteki adresini gösteren 2byte lık pointerdan başka bişey değildir aslında. Yani referans değişkendir. Ve programcı a:='' yaparsa heapten otomatik olarak silinir. Objectleride kullanırken referans değişken kullanırız ama onları programcı create/free eder.
Velhasıl kelam, 2 byte için boşuna free olaylarına gerek yok. Maliyeti daha fazla olur. Zaten yoluda varmı bilmiyorum.