Einzelnen Beitrag anzeigen

Graf Gustav

Registriert seit: 13. Mär 2011
48 Beiträge
 
Delphi 10.4 Sydney
 
#1

Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 2. Apr 2019, 12:24
Nachdem die Anzeige eines 1,8 MB Jpeg-Bildes über 7 Sekunden gedauert hat,
habe ich mal ein altes Win7 / D5 zum Vergleich entstaubt.
Vielleicht (hoffentlich) hat jemand von Euch eine Erklärung für die Ergebnisse
(und vor allem, wie ich von den Sekunden runterkomme).

Die Programm-Varianten:
D10P: Das Programm in D10.1/Win 10 erzeugt, Anzeige proprtional
D10Z: wie D10P, nicht proportional (Anzeige verzerrt)
D05Z: Das Programm in D5/Win 7 erzeugt, proportional gabs da noch nicht

Die beiden Systeme:
Win10: Win 10 Pro 64bit 1803 auf einem 8-Core-Ryzen mit 16 GB RAM
Win7: Win 7 Pro 16bit auf einem Athlon 4850 mit 4 GB RAM

Das Testbild ist eine 1,8 MB große jpeg-Datei, die Ladezeit ist vernachlässigbar,
(Dauer im Mittel, unabhängig vom System, lokal 3 ms und remote vom NAS 30 ms).

Das sind die gemessenen Anzeige-Zeiten:

 
EXE ----- Win10 --- Win7
D10P ----- 7,4 ----- 4,0
D10Z ----- 7,4 ----- 4,0
D05Z ---- 0,0 ---- 0,0

Das mit D5 erzeugte Programm zeigt das Bild auf beiden System verzögerungsfrei (aber verzerrt) an.
Das mit D10 erzeugte ist auf dem lahmen Win7 System fast doppelt so schnell wie auf dem Win10 (!),
egal ob proportional oder nicht. Aber auch die 4 Sekunden sind ja nicht vorzeigbar.

Der Code (identisch auf beiden Systemen):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  JPegI := TJpegImage.Create;
  JPegI.LoadFromFile(_FN_JPG);
  Image1.Picture.Assign(JPegI);
end;
In D10 funktioniert ja auch :
- Image1.Picture.Bitmap.Assign(JPegI);
- Image1.Picture.LoadFromFile();
Laufzeitmäßig ist das aber alles gleich.

So, wenn jemand bis hierher gelesen hat: Irgendeine Idee?

Besten Dank
Reinhold
Reinhold

Geändert von Graf Gustav ( 2. Apr 2019 um 14:08 Uhr)
  Mit Zitat antworten Zitat