-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
16. Nov 2016
Hallo Zacherl, habe es erst jetzt gelesen. Eine bestechende Idee. Im Moment habe ich aber soviele Probleme, die bisherigen Änderungen stabil zu bekommen (irgendetwas verschiebt mit Geisterhand die Position im Bitmapstream), dass ich mir erstmal keine Neuerungen leisten möchte. Im Grunde ist deine Lösung zufriedenstellend; nur durch den Vergleich merkt man, dass es auch schneller ginge. Wenn man...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
12. Nov 2016
Ich habe jetzt eine Reihe von Versuchen durchgeführt, die die alte (Speichern von TBitmap) mit der neuen (TMemoryFileStream) Methode vergleicht, mit einem etwas zwiespältigen Ergebnis.
Mit TMemoryFileStream kann ich abenteuerliche Werte für die Anzahl der vorzuladenden Bilder eingeben, zum Beispiel 30 vor und 30 zurück, ohne das es knallt. Gut!!
Als Extremwert habe ich 99 vorzuladende Bilder...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
9. Nov 2016
Das geschieht ja mit den asynchronen Threads, und da ich einen Threadpool mit MaxThreads := 2 * System.CPUCount; verwende, werden sogar alle BMP gleichzeitig geladen (und geht bei einer SSD richtig schnell, bei einer normalen Festplatte ist das eher kontraproduktiv). Dieses Laden geht bei Bitmaps viel schneller. Aber daran könnte ich wohl noch schrauben.
RAMDisk sieht sehr interessant aus, ist...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
9. Nov 2016
Laut Zacherl müsste das alles im RAM liegen.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
9. Nov 2016
Jetzt habe ich Zacherls Vorschlag implementiert. Funktioniert auch. Aufgrund der Streams kann die Größe der Bitmaps jetzt genau angegeben werden. Der Taskmanager - der ja augenscheinlich erschütternd unzuverlässig ist - zeigt nun statt 500 MB nur noch 180 MB an.
Die ganze Geschichte läuft aber merklich langsamer ab als mit den direkt gespeicherten Bitmaps. Die Erstellung der Bitmaps/Streams ist...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
8. Nov 2016
Inkorrekt! INkorrekt !!! Wann habe ich das zum letzten Mal gelesen? Danach folgt aber "detecten"... Man weiß nicht mehr, was man denken soll.
Ich habe erstmal Benedikt Magnus' Anregung aufgegriffen und die Größe der 7 Bitmaps ermittelt: SizeOf(BMP) + Bmp.Width * Bmp.Height * (24 div 8). Das ergab ungefähr 370 MB. Dann habe ich Bambinis Anregung umgesetzt, das ergab einen Wert von ca. 2,7 MB....
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Süß! Windows 95! Delphi 3! Toll!
Aber auch die maximale Größe, die das Programm annimmt, zwingt mein System nicht in die Knie.
Projekt öffnen und modifizieren habe ich mir allerdings gespart.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Den Code kannte ich schon von diversen stackoverflow-Diskussionen, aber misst der nicht nur den aktuellen Prozess und nicht den Gesamtspeicher, den die komplette Anwendung verbraucht?
Das ist ja interessant! Das werde ich mal ausprobieren.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Auf keinen Fall. Die Bilder können ja auch auf einem unglaublich langsamen Netzlaufwerk liegen (ich spreche da aus eigener Erfahrung). Außerdem funktioniert das mit dem Speicher ganz ausgezeichnet. Es handelt sich ja nur um ein Grenz-Problem.
Deckeln: Ja, aber das hängt ja vom Speicher ab... Obwohl, könnte ich als Notnagel natürlich auch machen... Aber Gottsakra, warum funktioniert denn die...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Nein, nein, das hat schon seine Richtigkeit. Es geht um ein Bildanzeigeprogramm. Da biete ich eine Möglichkeit, eine einstellbare Anzahl von Bildern im Speicher vorzuladen, zum Beispiel 5 vor und 2 zurück. Man kann dann auch bei langsamer Verbindung sehr schnell innerhalb dieser 7 Bilder hin- und herspringen, weil sie nicht jedesmal geladen und dekodiert werden müssen. 7 Bitmaps sind schon eine...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Wirklich vielen Dank für deine Mühe, Jim, aber das zeigt - wenn ich mich nicht irre - nur den Speicherverbrauch des laufenden Prozesses an. EOutOfMemory kommt aber bei der Gesamtgrenze für das ganze Programm.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Das führt leider nicht weiter. Selbst wenn es funktionierte, käme die Speichererschöpfung halt nur etwas später. Es erklärt auch nicht, warum Sir Rufos Code nicht zu funktionieren scheint.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by Benmik,
7. Nov 2016
Wenn ich diese Leiche nochmal exhumieren darf: Wenn ich mit diesem Code messe, erhalte ich einen Wert von 5.000.000, während der Taskmanager mir 500.000.000 anzeigt. Was läuft da schief?
Hintergrund ist, dass ich eine variable Anzahl von Bitmaps (aus JPG) in den Speicher vorlade. Sind die Bitmaps sehr groß, gibt es eine EOutOfMemory. Ich würde das gern vorher wissen und vermeiden. Laut...