AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Jpeg Image anzeigen dauert ewig (D10.1)
Thema durchsuchen
Ansicht
Themen-Optionen

Jpeg Image anzeigen dauert ewig (D10.1)

Ein Thema von Graf Gustav · begonnen am 2. Apr 2019 · letzter Beitrag vom 5. Apr 2019
Antwort Antwort
KarstenK

Registriert seit: 4. Dez 2007
Ort: Bärenthal
29 Beiträge
 
Delphi 2009 Enterprise
 
#1

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 4. Apr 2019, 12:33
Hallo,

In deiner Zeitmessung für Delphi 5 = 0ms ist aber noch nicht die Anzeige des Bildes drin, bei den anderen wohl schon.

Bei Delphi 2009 bis Anzeige (application.processmessage vor der Zeitnahme 2) ist der Faktor 4 zwischen orginal (600ms vs 160ms) Delphi und jpegdec.
  Mit Zitat antworten Zitat
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 4. Apr 2019, 14:15
Hallo,

In deiner Zeitmessung für Delphi 5 = 0ms ist aber noch nicht die Anzeige des Bildes drin, bei den anderen wohl schon.
Tja, was soll ich sagen - mir kommen 0ms auch eher wenig vor,
aber schau Dir meinen Sourcecode an, er ist für D5 und D10 identisch....
Reinhold
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 4. Apr 2019, 21:48
Nebenschauplatz: Der gemessene Nuller kommt eventuell zustande weil die Zeit mit GetTickCount gemessen wird.
GetTickCount Remarks
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds.

Und zum Thema: Es wäre schön, wenn Frau und Mann sich darauf verlassen könnten, dass Standardfunktionen wie "jpg laden" nicht von D zu D langsamer werden. Sowas sollte bei der Qualitätskontrolle hängen bleiben.
Michael Gasser
  Mit Zitat antworten Zitat
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 4. Apr 2019, 22:00
Nebenschauplatz: Der gemessene Nuller kommt eventuell zustande weil die Zeit mit GetTickCount gemessen wird.
GetTickCount Remarks
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds.

Und zum Thema: Es wäre schön, wenn Frau und Mann sich darauf verlassen könnten, dass Standardfunktionen wie "jpg laden" nicht von D zu D langsamer werden. Sowas sollte bei der Qualitätskontrolle hängen bleiben.
ah, das erklärt, warum ich nie einen Wert < 16 gesehen habe, danke.
Aber 15ms für D5 ist doch auch noch gut ;}
Und dem Statement zur QS kann ich mich nur vollinhaltlich (und kopfschüttelnd) anschließen...
Reinhold
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 4. Apr 2019, 23:50
Und es gibt wahrscheinlich noch einen weiteren Grund für die massiven Unterschiede zwischen D5 und D10.

Das Laden und Anzeigen des Bildes läuft bei D5 und D10 unterschiedlich ab. (Ich nehme meine Qualitätsbemerkung zurück.)

Wenn du deinen Code

Delphi-Quellcode:
// Starte die Uhr
  JPegI := TJpegImage.Create;
  JPegI.LoadFromFile( filename );
  Image1.Picture.Assign(JPegI);
// Stoppe die Uhr
- mit D5 kompilierst und laufen lässt, dann passiert dies:
Der Inhalt der Datei filename wird in einen Stream geladen, du stoppst die Zeit und nun erst wird das Bild aufgebaut.

- mit D10 kompilierst und laufen lässt, dann passiert dies:
Der Inhalt der Datei filename wird in einen Stream geladen, das Bild wird aufgebaut, du stoppst die Zeit.

Da das Laden in den Stream nur sehr wenig Zeit benötigt, misst du im D5 Fall sehr kleine Zeiten.

Ich weiss, man sollte Application.ProcessMessages; nicht nutzen und ich tu's auch nicht in Programmen, aber hier dürfen wir vielleicht mal eine Ausnahme machen .

Ergänze den Code wie folgt

Delphi-Quellcode:
// Starte die Uhr
  JPegI := TJpegImage.Create;
  JPegI.LoadFromFile( filename );
  Image1.Picture.Assign(JPegI);
  Application.ProcessMessages;
// Stoppe die Uhr
und miss die Zeit mit D5 und D10. Bei D5 wirst du nun weit mehr messen als vorher, bei D10 bleibt der Wert ungefähr gleich. Grund: Auch im mit D5 kompilierten Programm misst du nun das Laden in den Stream und den Aufbau des Bildes.

[Natürlich könntest du noch genauer messen...]

Wenn ich deine Beispielprogramme starte ist gefühlt Synopses Lösung am schnellsten, dann D5 dann D10.

Und falls dein mit D5 kompilierter Code doch schneller laden sollte als Synopses Code, dann könntest du eventuell mit D5 eine DLL erstellen (da der Quellcode der jpeg unit wahrscheinlich fehlt) und in D10 nutzen (?).
Michael Gasser

Geändert von Michael II ( 5. Apr 2019 um 00:55 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.239 Beiträge
 
Delphi 12 Athens
 
#6

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 5. Apr 2019, 07:50
Vielleicht hift der QueryPerformanceCounter weiter ?
  Mit Zitat antworten Zitat
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Jpeg Image anzeigen dauert ewig (D10.1)

  Alt 5. Apr 2019, 16:02
Ich weiss, man sollte Application.ProcessMessages; nicht nutzen und ich tu's auch nicht in Programmen, aber hier dürfen wir vielleicht mal eine Ausnahme machen .
wieso nicht und wo wenn nicht in Programmen? ;}
Ich nutze das (auch in diesem Testprogramm) meistens, um Anzeigen zeitnah gezeichnet zu bekommen.

Aber zum eigentlichen Thema:
Ich hab das jetzt mal umgestellt wie Du empfohlen hast, und das macht die Werte auch plausibler:
D10: 7.400 ms
Synopse: 150 ms
D5: 300 ms
jeweils gemessen auf dem Win10/D10-System.

Der Unterschied zwischen D5 und Synopse wäre mir egal, es geht ja darum, was der Bediener wahrnimmt.
Und das ist beides schnell genug.
Aber bei einem Faktor 50 zu D10 genuine würde ich die Zweifel an der QS nicht zurücknehmen.

Aber für mich Happy End: Synopse.
Reinhold
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 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