Speicherleck bei Images

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Shardik
Beiträge: 712
Registriert: 25.01.2005 12:19

Re: Speicherleck bei Images

Beitrag von Shardik »

fabulouspaul hat geschrieben:Da ein Bugfix ja eine Weile dauern kann, habe ich mal mit TIFFLIB experimentiert.
Welche Version von libTIFF hast Du ausprobiert? Laut der englischen Wikipedia wurde die originale Website libtiff.org gekapert und bietet nur eine alte und fehlerbehaftete Version 3.6.1 an. Die aktuelle und offizielle Version 4.0.8 wird hier angeboten!
fabulouspaul
Beiträge: 112
Registriert: 01.04.2011 21:59

Re: Speicherleck bei Images

Beitrag von fabulouspaul »

Shardik hat geschrieben:Welche Version von libTIFF hast Du ausprobiert? Laut der englischen Wikipedia wurde die originale Website libtiff.org gekapert und bietet nur eine alte und fehlerbehaftete Version 3.6.1 an. Die aktuelle und offizielle Version 4.0.8 wird hier angeboten!
Guter Hinweis! Ich habe hier eine Version 3.7.4 der libtiff.dll.
Ich schau mir die neue Version mal an, verfolge aber parallel mal den GDI+-Ansatz.

Weiß jemand, ob PB eine eigens erstellte TIF-Library benutzt oder auch auf bestehende (z.B. libtiff) zurückgreift? Vielleicht liegt da ja das Problem (wenn die Version 3.6.1 fehlerbehaftet war)?
fabulouspaul
Beiträge: 112
Registriert: 01.04.2011 21:59

Re: Speicherleck bei Images

Beitrag von fabulouspaul »

Nach etwas ausprobieren, habe einen pragmatischen Ansatz gewählt:
Ich habe mir eine kleine DLL mit nur 2 Funktionen gebastelt: TIF laden und Image freigeben. Das Ganze habe ich mit PB 4.60 (letzte Version in der es noch nicht zu einem Speicherleck kam) kompiliert.
Die DLL binde ich jetzt einfach in mein PB 5.x Programm ein, habe dabei quasi keinen Geschwindigkeitsverlust und trotzdem tritt auch kein Speicherproblem auf.

Das bringt mich über die Runden, bis ein Bugfix kommt. :allright:
Benutzeravatar
Lupo
Beiträge: 147
Registriert: 16.02.2005 15:15

Re: Speicherleck bei Images

Beitrag von Lupo »

Das Erstellen einer DLL mit einer alten PB Version ist tatsächlich eine Möglichkeit, Funktionen rüberzuretten, die in den Vorgängerversionen besser funktioniert haben als in den aktuellen.

Ich habe seit Jahren ResizeImage() aus PB 4.4 in eine DLL verpackt und verwende sie in aktuelleren Versionen. Die Qualität und vor allem Erkennbarkeit verkleinerter Vorschaubilder von S/W- und Farbdokumenten ist ungleich besser als mit dem aktuellen ResizeImage(), auch bei unterschiedlichen Einstellungen. Selbst mit GDI+ oder der FreeImage DLL habe ich nicht diese Thumbnail-Verkleinerungs-Qualität von PB4.4 (und vorher, nicht aber PB4.5 und folgende) zustandegebracht, zumindest nicht in vernünftiger Zeit.
Zeitliche Verluste im Massenhandling gibt es praktisch keine, anfängliche Bedenken wegen "Unsauberkeit" der Alt-PB-DLL-zu-aktuell-PB Methode, Langzeitstabilität, Speicherlecks, Threadproblematik, Betriebssystemänderungen etc. haben sich erfreulicherweise nicht bestätigt. Millionenfach getestet immerhin ....
fabulouspaul
Beiträge: 112
Registriert: 01.04.2011 21:59

Re: Speicherleck bei Images

Beitrag von fabulouspaul »

Lupo hat geschrieben:Zeitliche Verluste im Massenhandling gibt es praktisch keine, anfängliche Bedenken wegen "Unsauberkeit" der Alt-PB-DLL-zu-aktuell-PB Methode, Langzeitstabilität, Speicherlecks, Threadproblematik, Betriebssystemänderungen etc. haben sich erfreulicherweise nicht bestätigt. Millionenfach getestet immerhin ....
...lediglich die Unicode-Thematik muss man berücksichtigen (habe ich bei der Übergabe des Dateinamens zum Laden des TIF-Images bemerkt).
Antworten