-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
16. Jul 2018
Hab noch etwas gebastelt aber ist auch nicht sehr effektiv.
// versuche 4 compares pro loop abzufertigen
function TCharInString.MultiCountChar(const s: string; const c: Char): Integer;
var
i, ii, iii, iiii: Integer;
begin
Result := 0;
ii := Length(s);
iii := (ii div 2);
iiii := iii+1;
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
16. Jul 2018
Ja, so etwas habe ich mir beim Ausführen der von Euch hochgeladenen .exes gedacht.
Wenn Du heute mal Zeit hast würde mich ein Ergebnis Tokyo Ydobon vs TestStringBuilder() Interessieren, ob da der StringBuilder auch noch die Nase vorne hat?
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
16. Jul 2018
Also das mit dem Replace und wie der Delphi 2009 Kompiler damit umgeht versteh ich nicht.
// Ydobon = i := Length(Data) - Length(StringReplace(Data, Ch, '', ));
function TCharInString.TestStringBuilder(const aString: string; const Ch: Char): Integer;
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
Genau deswegen war ich immer so Überrascht wo bei mir denn der Fehler sei. Das war auch der Grund für eine Extra-CheckBox dafür.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
Falls jemand mag, im Anhang ist eine Version wo alles adjustable ist, so kann jeder selbst entscheiden wie vorgegangen werden soll.
Es kann nun in jedem Durchlauf neue Data generiert werden. <- Verlängert Tests, mehr overhead!
Es kann nun in jedem Durchlauf nach was anderem gesucht werden (ich nahm Char(Random($FF))).
Ja ich werde die KodeZwerg Methoden updaten, jetzt war funktionalität im...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
Ich wollte damit den tatsächlichen Durchschnittswert damit ermitteln und nicht die Mitte von Min und Max als Score festlegen.
Dank Deines Links und Text bin ich nun im Bilde.
edit
if Loops = 0 then
begin
Min := Curr;
Max := Curr;
Avg := Curr;
end
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
Danke Andreas, mit Deinem "{$IFNDEF CPUX64}" fix funktionieren nun alle ASM Varianten, auch die von jaenicke, bei mir. Krasse Ergebnisse, mein lieber Herr Gesangsverein.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
...in der ComboBox "Run All Tests" sich auf den einen veränderten Festlegen oder selbst alles umschreiben.
Sorry, nach Uwe's Text kann ich gerade nicht daran weiterwerkeln, das wäre vergebene müh. Ich mag ja gerne Kritik annehmen aber umsetzen ohne Zusatz-Komponenten.
Wie es jetzt gerade ist dachte ich eigentlich ist es okay für synthetische und praktische Wertungen.
Da habe ich mir wohl was...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
So sieht mein letzter Entwurf aus.
Vorkompiliert plus Source im Anhang.
Es sind noch nicht alle Varianten enthalten, aber bitte testet mal ob das einem Benchmark gerecht wird.
Abgesehen von noch fehlender Methoden brauche ich auch Hilfe bei etwas was mir gerade den Kopf verdreht.
if ((Tests.ItemIndex = 0) or (Tests.ItemIndex = 1)) then
begin
for Loops := 0 to Times.Value do
...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
Delphi 2009 verweigert mir Deinen Code. Benötige ich dafür ein aktuelleres Delphi als 2009 oder fehlt mir was in Uses? Windows, SysUtils; habe ich momentan drinnen.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
15. Jul 2018
So in etwa würde neue GUI aussehen.
Wem noch mehr sinnvolle Optionen einfallen, bitte melden.
Edit
Ps: Ein Cancel Button ist nun vorhanden :)
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
14. Jul 2018
Hier schau mal selbst, das ist mit nur 50000 Zeichen/Bytes, achte auf den Ydobon Zeitwert. Katastrophal bei mir.
Diese Ergebnisse sind nicht unter optimalen Voraussetzungen entstanden da alle Kerne mit was anderem ausgelastet sind.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
14. Jul 2018
Danke für weiteren (ASM) Methoden, werde ich mit einbauen, ich fange jetzt mal an Delphi anzukurbeln, kann sein das morgen erst fertig, ich wills diesmal Gründlich machen und nicht nur huschi-wuschi wie die initial-Version.
@Harry, sag oder PN mir Deine Lieblingsmethode für AddPosArray funktionalität. Da ich nichts Cross-Entwickle fehlt mir da die Erfahrung was klappt und was nicht.
...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
14. Jul 2018
Da ich eure Sourcen nicht kompilieren kann werde ich meinen Eigenen Benchmark erweitern und bald hier vorstellen.
Geplant ist eine GUI mit einstellbarer Datenmenge, Anzahl von Wiederholungen, Einzeltests<>Multitests.
Eine Idee um Schwankungen auszugleichen habe ich auch schon, was haltet ihr davon?
Idee: LastNano und CurrNano hält Zeitwerte des letzten und aktuellen Vorgangs, bei neuem...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Mit Post 91 klappt es nun ohne EA. Ich weiß auch nicht wo ich vorhin stecken geblieben bin, tut mir leid für Verwirrung. Bei Bedarf kann ich aktuelle Version mit den zwei neuen Ankömmlingen hochladen.
Die Asm Variante reiht sich bei mir so in etwa wie die AnsiStrScan() Methode ein.
Bei der "von-Vorne-und-Hinten" die EgonHugeist schrieb ist kein merklicher Zugewinn spürbar, habs testhalber mit...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Meinst Du das hier
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
mov ecx, len diese Zeile verursacht bei mir den Fehler.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Leider nein, hift Dir das bei der Fehlersuche?
An dieser Stelle kracht es.
edit
Also irgendwie stimmt was mit "Len" und übergabe nicht bei mir.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
mit cld
Windows 10 (64bit) mit Delphi 2009 (32bit) auf Release gestellt.
Uwe war schneller mit Antwort, Danke.
Hab mein Source angepasst, Danke.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Ich habs so wie Du geschrieben hast verwendet. Siehe hier:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
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...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Man kann ja auch die RandomString() seperat aufrufen um damit eine feste Datei erzeugen.
Ich wollte den Traffic sparen und fand hier in DP diese nützliche Unit um Strings beliebiger Länge zu generieren in dem moment praktikabler aber der Replikation und Schwankungen zur Folge hast Du Recht, so ist es nur eine objektive Momentaufnahme.
Bei Tokyo ist ja TStopWatch enthalten, die Timing-Funktion...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Funktioniert das was Du schreibst auch nicht mit der Variante aus Post #30 ? (AnsiChar sucht in AnsiString)
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
13. Jul 2018
Danke Uwe, funktioniert Pfeilschnell auch im binär Modus. Das ist mein momentaner Favorit, das alte StrScan() verschwindet somit.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by KodeZwerg,
12. Jul 2018
Ich habe mal Deinen Vorschlag versucht umzusetzen.
Ich würde mich über eine besser funktionierende Version als diese hier freuen, mein assembler ist doch stark eingerostet.
Vielleicht ist Code auch korrekt nur Ausführung ist recht langsam weil ich ein PChar rauswerfe wo man mit Length() die Treffer abfragt.
function StrScanAsm(Str: String; Chr: Char): PChar; assembler;
asm
OR ...