Sonntag, 18. April 2010

Mal wieder C++

Nach einer langen Zeit, 2 Jahre sind es nun schon, nicht mehr aktiv C++ entwickelt habe, habe ich Gestern mal wieder damit angefangen.

Ich wollte mal wieder direkt in die native Softwareentwicklung mit ein paar einfachen Aufgaben und mal mit Paramtern an Programmen rumprobieren.

Ich habe dafür ein kleines Programm geschreiben was Primahlen berechnet.
Diese werden dann zeilenweise in eine Datei geschreiben.
Damit das Programm nicht wieder bei 0 anfangen muss, nimmt es die zuletzt berechnete Primzahl und rechnet ab dort wieder weiter.

Ich hatte dieses kleine Programm erst mit Java entwickelt.
Leider was ich sehr unzufrieden damit, da Java für das Programm selbst 48 MB reserviert, was für ein einfaches Programm etwas zu viel ist.

Und ein Aufruf des Programms ist mit Java auch nicht besonders elegant.

Leider musste ich auch feststellen, dass ich im Bereich C++ schon sehr eingerostet war.
Alleine für einfache String Operationen und die Schreib- und Leseklassen musste ich in der C++ Referenz nachschlagen.

Nach einigen Anpassungen läuft nun alles sehr flott.
Mit den Parametern m= kann man das Limit zu berechnenden Zahlen angeben.
Der Standardwert beträgt dabei 1 Millisekunden.

Der Parameter s= gibt dann an wieviele Millisekunden das Programm anch einer berechneten Zahl, nicht Primzahl, es schlafen soll.
Der Standardwert beträgt hierfür 100.

Die aktuelle Version ist im Moment nur für Linux/Unix Systeme angepasst.
Da ich einige Systemfunktionen anspreche, muss ich noch eine Trennung für Windows/Unix Systeme einbauen.

Dank dem guten alten Präprozessor und einigen vordefinierten Makros ist dies aber weniger ein Problem.
Dies wäre auch mein erster Anlauf im per Makros für unterschiedliche Systeme zu entwickeln, was die Portierung leichter macht.