Samstag, 10. Mai 2014

Munin

Weil bunte Diagramme das beste auf der Welt sind, ist Munin mein neuer lieblings-Daemon: man konfiguriert ihn einmal kurz und er zeichnet alle 5 Minuten hunderte Diagramme über alle Vitalfunktionen seines Hosts.

Hier besonders schön: ein Kopiervorgang. Die Festplatte wird von außen nach innen beschrieben; weil sie sich außen schneller dreht, ist die Schreibgeschwindigkeit anfangs höher.


Oder auch immer hübsch: "Fieberkurven" der Festplatten. Die externe wird offenbar schlecht gekühlt. Die Lücken entstehen übrigens sobald eine Festplatte in den Standby wechselt.


Zum Schluss noch was klassisches: CPU Benutzung. Das Kopieren ist natürlich nicht durch die CPU begrenzt.


Donnerstag, 1. Mai 2014

Compiler Benchmark

Ich habe eine kleine Sammlung selbst implementierter Kryptographie, wie ich im letzten Post schon angedeutet habe. Was kann man nun mit kaum/gar nicht optimierten krypto-Funktionen anfangen? Man kann sie natürlich benutzen, um die Daten, die man mit eigenen Programmen verwaltet, zu verschlüsseln. Aber noch viel besser kann man optimierende Compiler darauf los lassen und sehen, welcher am besten optimiert.
Hier sind also meine Messdaten. Grün ist Linux, Blau ist Windows.
Als Compiler Option habe ich jeweils nur -O3 (oder vergleichbar) übergeben. Das schlechte Abschneiden des Microsoft Compilers liegt übrigens daran, dass er Sonderwünsche betreffend der AES-NI Befehle hatte, weshalb dort der reine-Software-Zweig gemessen wurde. Messwerte für den Linux 32 Bit Intel Compiler fehlen, da die Installation scheinbar schief gegangen ist und 32 Bit auf Linux meiner Meinung nach nur eine sehr untergeordnete Rolle spielt.

Besonderes Augenmerk sollte übrigens auf die Unterschiede zwischen 32 und 64 Bit gelegt werden. Nehmt das ihr Leute die glauben, dass 64 Bit nur wegen des RAM gut sei ;) Zugegebenermaßen arbeiten Threefish sowie SHA512 mit 64 Bit breiten Worten, die auf einem 64 Bit Betriebssystem mindestens doppelt so schnell verarbeitet werden können.

Es ist auf jeden Fall interessant zu sehen, dass verschiedene Compiler verschiedene Warnungen ausgeben -- und dass der Microsoft Compiler bis 2012 scheinbar noch nichts vom c99 Standard wusste.
Außerdem sind die farbigen Ausgaben von clang und seine statische Code Analyse sehenswert.
Den höchsten Komfort bietet meiner Meinung nach gcc, der dank MinGW-w64 auch unter Linux für Windows kompiliert -- und dabei Code erzeugt, der in diesem Test sehr konkurrenzfähig ist.