AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DEC Benchmark und FMX Buttons

Ein Thema von TurboMagic · begonnen am 24. Mai 2021 · letzter Beitrag vom 25. Mai 2021
 
Michael II

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

AW: DEC Benchmark und FMX Buttons

  Alt 25. Mai 2021, 08:57
Mittlerweile gelöst.

Ich habe eine Gegenfrage, welche sicher jemand (unabhängig von DEC Kenntnissen) beantworten kann.

Ich halte das hier Beschriebene für einen heftigen Bug. Vielleicht bin ich aber auch einfach viel zu "Android unerfahren" und mache was falsch.

Ich wollte die Benchmark App (\DEC\Demos\HashBenchmark_FMXHashBenchmark.dproj) von DEC unter Android 64 debuggen und habe einen Haltepunkt gesetzt in procedure TFormMain.RunBenchmark Zeile FStopwatch.Reset; (Code unten) Bedingung rowindex=19. (Ich habe also "rowindex" klein geschrieben.)

Delphi-Quellcode:
procedure TFormMain.RunBenchmark(ClassName: string; RowIndex: Integer);
var
  Hash : TDECHash;
  HashResult : TBytes;
  i : Integer;
begin
  Hash := TDECHash.ClassByName(ClassName).Create;

  try
    FStopwatch.Reset;

Wenn das Programm das erste Mal bei diesem Haltepunkt durchläuft, dann wird mir diese Fehlermeldung angezeigt:

[Window Title]
Fehler
[Content]
Ungültige Bedingung für Haltepunkt: rowindex = 19. Fehlermeldung: error: use of undeclared identifier 'rowindex'
error: 1 errors parsing expression
[OK]

Debuggen unter Windows funktioniert wie erwartet: Es wird beim Erreichen von rowindex=19 angehalten.

So weit so schlecht. Also denke ich, ich muss Gross- und Kleinschreibung beachten. Da unter Haltepunkt bereits rowindex=19 bekannt ist, nimmt's meinen "neuen" Haltepunkt RowIndex=19 nicht an (schade). Die Fehlermeldung bleibt.

Also teste ich halt mit RowIndex=18. Unter Windows läuft's wiederum wie erwartet.

Unter Android64: Jetzt wird kein Fehler mehr angezeigt. Aber jetzt hat der Haltepunkt RowIndex=18 Einfluss aufs Programm (!).

Weiter unten in der gleichen Prozedur wird ein Wert in sg_Results.Cells[1, RowIndex] (TStringGrid) geschrieben.

Delphi-Quellcode:
    sg_Results.Cells[1, RowIndex] :=
      Format('%0:f', [cIterations / (FStopwatch.ElapsedMilliseconds/1000)]);
    sg_Results.Cells[2, RowIndex] := FStopwatch.Elapsed.ToString;
Rate mal, wo reingeschrieben wird.

Alle Ausgaben werden nach sg_Results.Cells[1, 18] "umgeleitet".

Die Haltepunkt Bedingung RowCount=18 bewirkt also unter Android, dass im Programm RowCount:=18 gesetzt wird.


Jede Hilfe wird geschätzt . Danke.

Mittlerweile gelöst.
Michael Gasser

Geändert von Michael II (25. Mai 2021 um 19:49 Uhr)
  Mit Zitat antworten Zitat
 


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 07:34 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