AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid benötigt zu viel Speicher

Ein Thema von Cappuccino · begonnen am 4. Feb 2008 · letzter Beitrag vom 4. Feb 2008
Antwort Antwort
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#1

TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 13:39
Hallo,

ich verwende ein TStringGrid, um an eine Maschine geschriebene und gelesene Daten zu protokollieren.
Das StringGrid hat seit kurzem über 30.000 Zeilen, und verbraucht eine Unmenge an Speicher. Die Applikation benötigt dann nach Process Explorer 500 MB.
Und das ist zu viel für Windows, es will keinen Speicher mehr zur Verfügung stellen.
Da kommen dann Meldungen zwischen OutOfMemory oder es kann nicht mehr auf Ini-Dateien zugegriffen werden.

Besteht die Möglichkeit, das die App mehr Speicher erhält, kann man da mit den Linker-Optionen nachhelfen
Der Rechner hat genug Seicher, 2GB sind drin.

Längerfristig muss ich wohl das StringGrid durch eine eigene Liste ersetzen, nur sollte ich fürs erste schnell fertig werden, der Fehler kam etwas überraschend.

Info:
Das ist noch ein Delphi 5 Projekt.

Gruß + Danke
Tom
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:10
Hallo Tom,

könntest Du nit das StringGrid auf eine bestimmte ANzhal von Zeilen reduzieren.

Also immer die aktuellsten Zeilen im StringGrid darstellen und alle älteren dann in eine Datei
oder Datenbank wegschreiben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:13
Hallo,

ob den Speichermangel wirklich das StringGrid selbst verursacht? Das wären ja deutlich mehr als 10KB pro Datenzeile.

Grüße vom marabu
  Mit Zitat antworten Zitat
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:17
Hallo Klaus,
mir wird vermutlich nicht viel anderes übrig bleiben,
ich hoffe noch auf einen Tip mit einem Alternativ-StringGrid, das weniger Speicher verbraucht
oder mit einem Compilerschalter ..

Hallo Achim,
Na ja, ohne das StringGrid braucht die App "nur" 300MB und keine 500MB.

Gruß
To
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:20
Hallo Tom,

wie groß ist denn eine Zeile im StringGrid bei Dir?
Ich habe hier ein StringGrid mit 75000 Zeile und das belegt ca. 140Mbyte.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:31
Zitat von Cappuccino:
Und das ist zu viel für Windows, es will keinen Speicher mehr zur Verfügung stellen.
Da kommen dann Meldungen zwischen OutOfMemory oder es kann nicht mehr auf Ini-Dateien zugegriffen werden.
Ist vermutlich kein Windows-Fehler sondern ein Fragmentierungsfehler des Memory-Managers von Delphi. Einfach FastMM reinhängen und dieses Problem als gelöst betrachten und dafür die vielen anderen Speicherlücken im Programm erst mal beheben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:34
Ich würde das Konzept überdenken, wer liest denn 30.000 Zeilen auf einen Schlag?
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 14:46
Hallo Klaus,
Mein Grid verbraucht für 1000 Zeilen 116 MB, wesentlich mehr als deines, es hat dabei 15 Spalten.

Hallo Bernhard,
dann versuche ich mit FastMM mein Glück.

Das Grid enthält ein Protokoll, das war früher gut gegangen, ist halt ein bisschen groß geworden.
Nur ist ein Protokoll zur Analyse erforderlich, wenn etwas nicht funktioniert hat.

Danke,
Gruß Tom
  Mit Zitat antworten Zitat
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 15:14
FastMM4 ist gigantisch, jetzt braucht die App nur noch 39MB,
das kann ja fast nicht sein gegen die 500MB ohne FastMM

Gruß Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: TStringGrid benötigt zu viel Speicher

  Alt 4. Feb 2008, 21:35
Zitat von Cappuccino:
FastMM4 ist gigantisch, jetzt braucht die App nur noch 39MB,
das kann ja fast nicht sein gegen die 500MB ohne FastMM
Der "alte" Speichermanager von Delphi hat bei vielen ungünstigen Speicheranforderungen und freigaben das Problem das seine Interne Speicherorganisation durcheinander kommt (Fragmentierung). Nicht umsonst ist FastMM seit D2006 der Default-Speichermanager von Delphi
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 19:29 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