AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi [BDS 2006] Schließen einer Anwendung mit einem StringGrid da
Thema durchsuchen
Ansicht
Themen-Optionen

[BDS 2006] Schließen einer Anwendung mit einem StringGrid da

Ein Thema von Chemiker · begonnen am 26. Nov 2008 · letzter Beitrag vom 27. Nov 2008
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

[BDS 2006] Schließen einer Anwendung mit einem StringGrid da

  Alt 26. Nov 2008, 21:59
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:
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;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 26. Nov 2008, 22:04
Es bleibt auch ein Berg Datenmüll übrig
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 26. Nov 2008, 22:24
Hallo mkinzler,

verstehe ich nicht? Wo bleibt Datenmüll über?


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 26. Nov 2008, 22:26
65537 Zeilen a 256 Spalten ist ne Menge Holz, welches am Ende entsorgt werden muss
Markus Kinzler
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 26. Nov 2008, 22:28
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 26. Nov 2008, 22:52
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
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: [BDS 2006] Schließen einer Anwendung mit einem StringGri

  Alt 27. Nov 2008, 07:44
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:
iSpAnzahl:= 200+1;
iZeAnzahl:= 65535+1;
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.

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
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz