AW: Anzahl eines Zeichens im String ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Neutral General, Danke für Deinen Post, bei mir leider auch gleich eine EA.
Falls wer mag, habe den Benchmark etwas umgestaltet. Nun führt der zwei Tests durch, einmal mit RandomString() und einmal mit RandomByte(). Sprich, einmal sind es nur lesbare ASCII Zeichen beim zweiten Test ist ein 00-FF Byte möglich. Um lokale Schwankungen zu minimieren bzw. in dieser Test-Art besser Auszugleichen habe ich einfach den Daten Anteil auf 50MB erhöht. Danke EgonHugeist, Deine Variante ist auch enthalten. Im Anhang Projekt-Source plus Kompilat zum gleich Testen. |
AW: Anzahl eines Zeichens im String ermitteln
Das verstehe ich nicht. Kannst du mal bitte zeigen wie du meine Funktion aufgerufen hast?
Bei mir läuft alles ohne Probleme (Sowohl mit Release als auch Debug Konfiguration, 32-Bit, Windows 10) |
AW: Anzahl eines Zeichens im String ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habs so wie Du geschrieben hast verwendet. Siehe hier: Anhang 49502
|
AW: Anzahl eines Zeichens im String ermitteln
Ist das die Version mit oder ohne cld?
Welche Windows/Delphi Version,welche Konfiguration? Würde echt gerne wissen wo es da kracht. Ich sehe da eigentlich keine problematische Stelle. |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Mit abgeschalteter Optimierung brauchen die Pascal-Funktionen aber deutlich länger. Wobei sich dann wieder die Verwendung der internen Funktionen (StrScan oder string.CountChar) bezahlt macht, da die von dem Schalter nicht betroffen sind. |
AW: Anzahl eines Zeichens im String ermitteln
Ach ja, statt Randomize verwende ich
Delphi-Quellcode:
RandSeed := 0;
|
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Anzahl eines Zeichens im String ermitteln
Ich habe so ein bisschen das Gefühl, dass bei euch (aus welchem Grund auch immer) die Parameter nicht in den Registern ankommen wie es sein sollte/normalerweise ist.
Funktioniert diese Version bei euch?
Delphi-Quellcode:
function CharCountAsm(AStr: PChar; AChar: Char; len: Integer): Integer;
label loop_start, loop_ende, ende; asm cld // Explizite Zuweisung der Parameter in die Register mov edi, AStr mov ax, AChar mov ecx, len xor edx, edx loop_start: repnz scasw jcxz loop_ende inc edx jmp loop_start loop_ende: jnz ende inc edx ende: mov result, edx end; |
AW: Anzahl eines Zeichens im String ermitteln
Zitat:
Ich sollte meine Pointer-Kenntnisse einmal auffrischen. Gruß K-H |
AW: Anzahl eines Zeichens im String ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
An dieser Stelle kracht es. edit Also irgendwie stimmt was mit "Len" und übergabe nicht bei mir. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz