![]() |
[BDS 2006] Schließen einer Anwendung mit einem StringGrid da
Hallo,
ich habe auf einem Form ein StringGrid und befüllen es mit Daten für Testzwecke. Wenn ich anschließend das Form schließe, dann dauert es eine Ewigkeit bis die Applikation aus dem Taskmanger verschwunden ist. Der Speicherverbrauch steigt stetig an und die BDS 2006 wird nicht freigegeben. Woran kann das liegen?
Delphi-Quellcode:
Bis bald Chemiker
procedure TForm3.btnSGmitDatenFuellenClick(Sender: TObject);
var iSpalte, iZeile: Integer; iTemp: Integer; iSpAnzahl: Integer; iZeAnzahl: Integer; begin StringGrid.DefaultColWidth:= 150; iSpAnzahl:= 255+1; iZeAnzahl:= 65535+1; StringGrid.ColCount:= StringGrid.ColCount+iSpAnzahl; StringGrid.RowCount:= StringGrid.RowCount+iZeAnzahl; iSpalte:= 0; iZeile:= 0; for iSpalte := 2 to iSpAnzahl do begin for iZeile := 2 to iZeAnzahl do begin StringGrid.Cells[iSpalte,iZeile]:= 'Zeile: '+intToStr(iZeile)+' '+ 'Spalte: '+inttoStr(iSpalte); end; end; end; |
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
Es bleibt auch ein Berg Datenmüll übrig
|
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
Hallo mkinzler,
verstehe ich nicht? Wo bleibt Datenmüll über? Bis bald Chemiker |
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
65537 Zeilen a 256 Spalten ist ne Menge Holz, welches am Ende entsorgt werden muss
|
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
Ich habe seit Wochenbeginn auch wieder mal mit Grids zutun (erst AdvGrid, dann doch wieder StringGrid) und intern ist das StringGrid sehr trivial aufgebaut und arbeitet mit einfachen Listen / Arrays, die bei solchen Größenordnungen an ihre Performance-Grenzen stoßen. Schaue Dir mal die Datei Grids.pas an - es ist fast überraschend, mit wie wenig Code man da ausgekommen ist.
|
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
Hallo Daniel, mkinzler,
Trotzdem, finde ich schon merkwürdig. Die Erstellung dauert ca. 40sek., nach dem Schließen des Forms dauert es 18 min. bis die Applikation aus dem Taskmanger verschwunden ist, dabei steigt der Speicher kontinuierlich auf ca. das 3,5-fache um dann wieder langsam niedriger zu werden. Bis bald Chemiker |
Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri
Hallo,
ich habe mal mit verschieden Spaltenanzahlen gespielt und dabei die Zeit gemessen für die Erstellung und das komplette Entfernen der Applikation. Dabei sind folgende Werte zum Beispiel rausgekommen:
Delphi-Quellcode:
Für diese Konstellation, werden ca.30 sek. für die Erstellung gebraucht und für das Entfernen aus dem Speicher vergehen mal grade ca.8 sek.
iSpAnzahl:= 200+1;
iZeAnzahl:= 65535+1; Es scheint so, als wenn nicht das StringGrid das Problem hat sondern XP, weil je mehr Virtueller Speicher benötigt wird, je langsamer geht das komplette Entfernen aus dem Speicher. Bis bald Chemiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz