Performancemessung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Performancemessung

    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
  • Hallo Michael,
    da Du nicht angegeben hast, unter welchem Betriebssystem Du evaluieren möchtest, würde ich vorschlagen ein POSIX-Konformes Unix o. Linux zu wählen (die sogenannte IEEE Std 1003.1 Norm), da der Quellcode für verschiedene POSIX-Konforme Systeme kompilierbar ist.
    Auch würde ich mir keine fertige API besorgen, sondern den POSIX-Konformen Quellcode für diverse Verschlüßelungsalgorithmen. Diese kann man sich von den Homes diverser Proffs von verschiedenen Unis (meistens USAmerikanische) runterladen (googlen ist angesagt). Diese kann man in ein eigenes Testprogramm integrieren, wo man die Menge und den Algorithmus auswählen kann.
    Diese Methode hat den Vorteil, dass man den Quellcode bei der Kompielerung auf Größe oder Laufzeit optimieren kann (bei Gnus gcc ist das -O1 bis 3 o. -Os) und so testen kann, wie schnell bei welcher größe die verschiedenen Algorithmen auf verschiedenen Systemen sein können. Die Gefahr sonst wäre sehr hoch, dass Du nicht die Geschwindigkeit der Algorithmen sondern der APIs misst.
    Dabei würdest Du aber nur den Speicherverbrauch auf der Festplatte messen.
    Wenn Du den Speicherverbrauch zur Laufzeit messen möchtest, musst Du das Programm mit Debuginformationen kompilieren und unter einem Debuger (gdb, ddd o.Ä) ausführen. Eine Laufzeit- oder Größenoptimierung ist dabei aber nicht möglich.

    Bei Java gibt es die JCrypt API.
    Kann zu Java aber ansonten nicht viel sagen, da ich unter Java sowas noch nie gemacht hab. Vieleicht findest Du die Quellcodes von den Algorithmen auch in Java und könntest das gleiche Verfahren in Java durchführen.

    Viel Glück!