![]() |
DEC Benchmark und FMX Buttons
Hallo,
so, der aktuelle Entwicklungszweig der DEC führt nun alle SHA3 Testvektoren des NIST korrekt aus. Soweit so gut. Jetzt habe ich auch einen Hash-Benchmark als neues Demo Programm hinzugefügt, nur macht das noch an zwei Stellen Ärger und ich weiß nicht warum. Unter Win32 funktioniert alles aber unter Android 64 geht der Button am oberen Bildschirmrand nicht (daher testhalber der auf dem Grid platzierte) und beim SHA3_256 gibt's unter Android 64 einen Crash. SHA3_224 geht aber fehlerfrei. Irgendwer eine Idee? Grüße TurboMagic |
AW: DEC Benchmark und FMX Buttons
Mittlerweile
![]() 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 ![]()
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:
Rate mal, wo reingeschrieben wird.
sg_Results.Cells[1, RowIndex] :=
Format('%0:f', [cIterations / (FStopwatch.ElapsedMilliseconds/1000)]); sg_Results.Cells[2, RowIndex] := FStopwatch.Elapsed.ToString; 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 ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 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