![]() |
x64 : very large bitmaps
unter
![]() Hat jemand Erfahrung über die Limits von TBitMap unter XE2 und x64 ? Ich habe TBitmaps im pf24bit Mode, ca. 20k * 20 k Pixel, Filesize ~ 1,5 GByte schon geladen; Unser Wunsch 100 k x 100 k bei entsprechendem Speicherausbau der Hardware |
AW: x64 : very large bitmaps
Ich finde es wenig sinnvoll den Speicher mit ca. 30GB pro Bild vollzustoppen. Wozu benötigst du das komplette Bild im Speicher?
|
AW: x64 : very large bitmaps
Könnte beim durchnudeln schneller gehen.
|
AW: x64 : very large bitmaps
Das ist die Frage, was man machen will.
|
AW: x64 : very large bitmaps
Man könnte partiell auslesen - sprich Bildausschnitte.
Dadurch hat man dann auch keine Probleme mit dem Arbeitsspeicher, sofern dieser Ausschnit selbst nicht wieder gewaltig groß ist. Ist recht flott programmiert. Was willst du damit machen? |
AW: x64 : very large bitmaps
Kurze Anmerkung zur Anwendung :
* ja zur Laufzeit beim Anwender verwenden wir kleinere Bilder an die Screenauslösung angepasst ..... mit deutlich weniger Speicherhunger Für die Evaluierung und Weiterentwicklung unserer Software benötige ich kurzfristig mal 100k x 100k Bilder ... kann ich meinen PC auf 16 oder 32 or 64 GBYTE RAM aufrüsten und dann diese Bilder laden ? |
AW: x64 : very large bitmaps
Da reicht dann ein normaler PC nicht mehr, da die meisten "Consumer"-Mainboards nicht so viel Speicher unterstützen.
|
AW: x64 : very large bitmaps
Zitat:
Ob TBitmap so große Bilder unterstützt müsste wohl jemand in den Code gucken. |
AW: x64 : very large bitmaps
Hallo,
Also ich weiß nicht ob Windows es schafft bei 4GB RAM oder so eine 30GB Datei zu laden. Ich befürchte da wird Windows entweder streiken oder dein Computer wird soooo dermaßen ar...-lahm dass du damit nicht mehr vernünftig arbeiten kannst. Ich glaube da stößt man irgendwo an die Grenzen von Paging. |
AW: x64 : very large bitmaps
Zitat:
Aber vermutlich ist es auch dann sinnvoll, das Bild beim Einlesen in einigermaßen vernünftig große Happen (z.B. Pagegröße) zu zerteilen. Sonst hast du bei jedem Wechsel einer Zeile einen Pagefault. |
AW: x64 : very large bitmaps
Das Problem ist viel mehr, dass die GDI nicht mehr als 65536x65536 Pixel große Bilder verpackt (ich meine das ist die Größe, die mir im MSDN mal über den Weg lief). Und da TBitmap intern über GDI Resourcen läuft, kann man so viel Speicher und Auslagerungsplatz haben wie man will - es wird nicht gehen. Lösung: Das Bild manuell aus einem FileStream schlabbern und interpretieren, unter völligem Verzicht der GDI (TBitmap und Konsorten). Mit TBitmap wird es bei den Größen nur mit Teilbildern gehen, die dann aber auch zumindest über einen eigenen Loader nach obiger Art gefüttert werden müssten, um das wird man nicht herum kommen fürchte ich.
|
AW: x64 : very large bitmaps
aktueller Stand der Forschung :
WIN7 x64 PROF - 8 GBYTE RAM - SERVER MAIN BOARD (32 GBYTE MAX RAM CONFIG) 2 Bilder mit je 2 GBYTE als TBitmap gleichzeitig geladen - - COMPILER DELPHI XE 2 --> kein Problem kann beide Bilder flüssig scrollen , speed OK Gibt es keine Spec für TBitmap, TJpef, TifImage .... ab wann es in der aktuellen Implementierung bei XE 2 kracht oder muss ich den Speicher aufrüsten und selber probieren ??? |
AW: x64 : very large bitmaps
GDI nicht mehr als 65536x65536 Pixel große Bilder
OK , Windows ist wohl ein Low End Betriebssystem für meine Anwendung ... macht es Sinn auf UNIX zu wechseln ? Kann ich hier mehr Pixel pro Bild bekommen? |
AW: x64 : very large bitmaps
Wie gesagt: Wenn du 100k*100k Bilder brauchst, bist du mit TBitmap schnell am Ende. 65536^2*4 Bytes = 17.179.869.184 Bytes = 16.777.216 kB = 16.384 MB = 16 GB
Bis 16GB, wenn keine Dimension >65536 Pixel ist, spielt zumindest die GDI mit. Alles weitere ist Implementationsspezifisch, weswegen ich für den Extremfall noch immer für die eigene Lösung plädiere. Vor allem, wenn deine Bilder größer als diese Grenze werden, was sie laut deiner Aussage ja fast um den Faktor knapp 2 (je Dimension, nach Datenmenge knapp Faktor 4) wären. Fazit: Mit der Größe, die dir vorschwebt, bist du sobald TBitmap (bzw. ein HBITMAP der WinAPI) als Gesamt-Bild-Container ins Spiel kommt auf verlorenem Posten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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-2025 by Thomas Breitkreuz