程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 的TStringBuilder防止服務器內存碎片化

Delphi 的TStringBuilder防止服務器內存碎片化

編輯:Delphi

Delphi 2009+ 的 System.SysUtils提供了一個類似.Net的StringBuilder,用於存儲字符數組。

很多人不明白為什麼要用TStringBuilder, Delphi中有string,有幾乎所有TStringBuilder的功能函數, System.SysUtils中還有TStringHelper方便擴展String,更方便String的使用。

從Delphi提供的源碼看,TStringBuilder與string最大的區別是,TStringBuilder是可以預先申請了內存空間,並限制最大內存空間,不會自動釋放,而string是用多少申請多少內存,自動釋放。

由此可見TStringBuilder相對於String的優勢有2:

1.

超過內存大小時

 

  
 
 
  
 
   TServerStringPool=   TServerString=   
              
      Destroy;    
   TServerStringPool=
   
    
           Destroy;              
 
 
 
   MaxMemorySize= 
 
 
 
  
  
   N:=(MaxMemorySize-InstanceSize)      
  
   
 
 
  
   
      L:=   
      i :=   Capacity 
     
         
      
  
   
   L:=   
      i := L.Count-   
    
          
  
   
  
  
   L:=   
      L.Count= 
     
       Result:=     
     
     
       Result:=TServerString(L[L.Count-       L.Delete(L.Count-        
      
 
   TServerString.FPool:=TServerStringPool.Create( 
  .

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved