Hallo,
ich bin dabei, ein Programm für eine Dokumentenverwaltung zu schreiben. Über einen Seitenscanner werden große Datenmengen geliefert. Diese wollte ich irgendwo auslagern, um den
RAM zu schonen. Bei 300 dpi in DINA-A4 sind das 16 MB pro Seite. Zusätzlich soll der Benutzer die Möglichkeit haben, Kontrast und Kompressionsstärke bei jpg anzupassen.
Aktuell "löse" ich das über ein simples
TBimap.SaveToFile();
. Bei/vor dem Verarbeiten lade ich dann das betreffende Bitmap zurück. Dabei zeigt sich die HDD - wer hätte das auch anders gedacht - als Flaschenhals.
Dadurch kamen MMF ins Spiel. Diese bleiben auch im
RAM und werden erst (in der Auslagerungsdatei?) ausgelagert, wenn dieser voll ist - sofern ich das System richtig verstanden habe.
Allerdings kam mir dabei die Überlegung, dass Windows doch sowieso in die Auslagerungsdatei schreibt, wenn der
RAM aufgebraucht ist. So richtig sehe ich also keinen Vorteil. Es kommt hinzu, dass MMF programmtechnisch aufwendig sind, insbesondere weil die Größe beim Schreiben/Lesen feststehen muss und diese von Bitmap zu Bitmap unterschiedlich ist.
Ich bin jetzt also am Grübeln, ob ich mir das antue und wüsste gern Eure fachkundige Meinung dazu.
Wie es funktioniert, habe ich mir erarbeitet und auch ein klitzekleine Funktionieren Class von TBitmap abgeleitet. Bevor ich aber weiter mache, stelle ich lieber mal diese Frage.
Falls ich hier falsch bin und die Frage eher zu "
Win32/Win64
API (native code)" gehört, kann das bitte mal der Moderator erledigen. Danke.