Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Performanceanalyse

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.06.2006, 20:08 Uhr
~dgraven
Gast


Hallo,
ich muss für die Uni eine Performance Evaluation verschiedener Verschlüsselungs-, Signatur- und MAC-Erstellungsalgorithmen in C und Java machen. Daher bin ich im Moment am Überlegen, wie man am günstigsten die Performance einzelner Funktionen in C (und Java) misst. Dabei interessieren mich insbesondere die Ausführungsdauer eines bestimmten Code-Abschnittes, sowie der zugehörige Speicherverbrauch. Da ich auf diesem Gebiet nicht bvesonders viel Erfahrung habe, wollte ich nun mal nachfragen, wie ihr dieses Problem angehen würdet.

Darüber hinaus würde mich auch noch interessieren, welche Krypto-APIs für C (und evtl. für Java) ihr kennt bzw. welche ihr mir empfehlen könntet.

Viele Grüße,
Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.06.2006, 00:35 Uhr
Hans
Library Walker
(Operator)


Hi,

die Performanceüberprüfung ist das Einsatzgebiet für Programme, die sich Profiler nennen.
Für einfache Fälle gibt es in C/C++ auch die Möglichkeit, zwei zusätliche Variablen vom Typ time_t zu deklarieren. Die Erste erhält den aktuellen Wert von time(), dann rufst Du die Funktionen auf, deren Ausführungszeit Du wissen willst, und danach noch mal time() aufrufen, und das Ergebniss in die zweite Variable stecken. Anschliessend den Wert der ersten vom Wert der zweiten abziehen, und Du hast die Zeit. Also ungefähr so:

C++:
time_t t1, t2, te;

t1 = time(NULL);
f();  // Deine Funktion
t2 = time(NULL);
te = t2-t1;


Diese Methode ist aber nicht besonders genau, und es ist meisstens noch ein Korrekturfaktor zu berücksichtigen, der vom Compiler abhängt, so das es heissen muss:

C++:
te = (t2-t1) * korrekturfaktor;



Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 28.06.2006 um 01:10 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.06.2006, 09:01 Uhr
ao

(Operator)



Zitat von MSDN:
The time function returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970 ...

Eine Zeit mit Sekundenauflösung ist für Performancemessungen wahrscheinlich ungeeignet. Du brauchst eine höhere Auflösung.

Außerdem kannst du die Auflösung noch verbessern, indem du viele Aufrufe von f() misst und durch die Anzahl teilst.

Darfst du einen fertigen Profiler einsetzen, oder ist die Aufgabe, selber Lösungen zu entwickeln?

Noch mal zur Klarstellung: Soll es C oder C++ sein?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.06.2006, 11:52 Uhr
~dgraven
Gast



Zitat von ao:
[quote MSDN]The time function returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970 ...

Eine Zeit mit Sekundenauflösung ist für Performancemessungen wahrscheinlich ungeeignet. Du brauchst eine höhere Auflösung.

Außerdem kannst du die Auflösung noch verbessern, indem du viele Aufrufe von f() misst und durch die Anzahl teilst.

Darfst du einen fertigen Profiler einsetzen, oder ist die Aufgabe, selber Lösungen zu entwickeln?

Noch mal zur Klarstellung: Soll es C oder C++ sein?

ao[/quote]

Die Aufgabe ist lediglich die Performance (Zeiten und Speicherverbrauch) zu messen. Wie dabei vorgegangen wird ist egal. Die Verwendung eines fertigen Profilers ist also nicht ausgeschlossen. Das ganze sollte außerdem in C sein.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: