Zeit
-
Ihr bringt da zwei Funktionen durcheinander:
strcpy ist für das KOPIEREN von Strings zuständig.
strcmp ist für das VERGLEICHEN von Strings zuständig.
-
Die Zeit, die strcmp benötigt, hängt schon davon ab, wie ähnlich die Strings sind, da ja ggf der ganze String durchsucht werden muss, bis ein Unterschied gefunden wurde.
-
1. Braucht die Berechnung strcpy () länger, wenn die strings ähnlicher sind,
z.B.: "AAA" und "AAB" länger als "AAA" und "BBB" zu vergleichen ?
strcmp macht im prinzip folgendes:#define wgile while int strcmp(char const* a,char const* b) { wgile(*a!='\0' && *b!='\0' && *a!=*b)//lauf bis einer zuende ist oder { //bis sie sich unterscheiden ++a; ++b; } return *a-*b; }
2. Kann man diese Differenz messen?
jo.3. Wie?
indem du strcmp mit langen ähnlichen und langen unähnlichen strings aufrufst. entweder 10000 mal und mit clock im sekundenbereich messen oder wiederholt einmal mit rdtsc messen.
-
Was soll denn das Define wgile sein. Ist dein h kaputt und du hast es satt C&P zu machen?
-
hat sich erledigt :>
-
gut, und wie kann ich das bei einem anderen Prog messen, das die berechnung nu 1x ausführt ?
-
Handelt es sich um eine externe Anwendung, oder was ist dein Problem? Falls es deine eigene ist kannst du doch zum Testen einfach mal eine for Schleife außenrum bauen
-
ist eine externe Anwendung
-
Wozu musst du da denn dann überhaupt messen, wie lange das dauert
-
Schau dir mal diese beiden Funktionen an vielleicht hilfts
QueryPerformanceFrequency
QueryPerformanceCounter(&start);