RSS-Feed anzeigen

Onkel_Dithmeyer

P3D-DataBench

Bewerten
Wie ihr vielleicht mitbekommen habt habe ich meinen ersten Test für den hiesigen Planeten veröffentlicht. (link) Dabei habe ich die Bandbreite recht aufwendig getestet. Mit dem klicken auf "kopieren" habe ich in der anderen Hand mit einer Stopuhr die Zeit genommen. Das ganze pro Paket (4 Stück) drei mal und das in beide Richtungen. Das macht 3x4x2 also 24 Zeitmessungen die bei der Paketgröße jeweils um die 10 Minuten gedauert haben. Macht 240 Minuten nonstop vor dem Testaufbau hocken und Zeiten nehmen. Da wird uns entschlossen haben das Gebiet der NAS bei uns, mit einem kleinen Roundup zu erweitern, hab ich mich an die Arbeit gemacht ein Programm zu schreiben, das mir eben diese Arbeit abnimmt. ^^

Kurz überlegt, was kann ich? C++ ein wenig, da muss ich ewig viel nachlesen. QBasic, wer macht das heute noch? Ne, da muss schon ne grafische Oberfläche her. Dazu soll das Ding schnell zu schreiben sein. große Optimierung muss nicht sein. Was bleibt? VisualBasic? Ne, ich hab hier nur ne uralte Version von neunzehnhunderschlagmichtot und ich schreib das dann doch lieber auf ner offenen Plattform. Also Java... kann ich kein Stück. Ich entsinne mich an meine Delphizeit und an die freie Portierung Lazarus. Beide bauen auf Pascal auf. Simple, und schnell und ich hab damit die meiste Erfahrung. Das coole, ich kann damit auch unter Linux schreiben. Leider hab ich es dort aber nicht hinbekommen eine vernünftige *.exe zu erzeugen, die auf meinem Testsystem mit Windows 7 läuft.

Also hab ich das Programm komplett auf meinem Laptop entwickelt. Der Vorteil, man kann die ShellApi nutzen, die einem erlaubt etwa den Dateitransfer von Windows zu starten. Dabei kann man auch einige Parameter setzen. Die in dem Genre bekannte Seite Delphi-Praxis hat dazu eine ganz brauchbare Kurzanleitung: Link
Man muss in die "Uses" die "ShellApi" einfügen und dann kann man einfach folgende Funktion einfügen:
Spoiler


Danach kann man die Funktion mit einigen netten Parametern aufrufen, die etwa die Statusanzeige der Übertragung verbergen oder ungefragtes Überschreiben ermöglichen.

Soweit so gut. Damit sollte sich was machen lassen. Das ganze müsste ich dann noch in eine Schleife packen, damit die Vorgänge beliebig oft wiederholt werden können und dann muss ich das auch noch so schreiben, dass ich das irgendwann noch irgendwie nachvollziehen kann. Dabei hapert es meißt an meinem Programmierstil. If, then, goto *grins*

Also machen wir das ganze mal etwas strukturierter. Tja, gedacht! Im Endeffekt sieht das Programm wieder total wirr aus. Aber immerhin das meiste Funktioniert. Mittlerweile ist das Programm in der Version 0.2.2 angekommen. Version 0.1 war der erste funktionierende Datentransfer :-) Version 0.1.1 hat einige Fehler beseitigt und den Kopiervorgang beliebig oft wiederholt. Version 0.2 der große Sprung machte dann estmals eine Zeitmesseung und Version 0.2.1 bildete dann sogar den Mittelwert. 0.2.2 kann jetzt immerhin schon den Transfer in beide Richtungen ausführen und beachtet dabei auch meine geringe Kapazität der SSD und löscht bei mir jeden übertragenen Ordner wieder, bevor das ganze noch mal anfängt, außerdem kann man die ermittelten Werte jetzt auch in einer TXT speichern. Das ganze sieht im Moment so aus:


Natürlich in stylischem Grün

Ich muss aber noch einige Bugs beseitigen. Zum Beispiel erstellt das Programm im Zielverzeichnis Unterordner, die ganz kreativ nach der Zahl der Durchläufe z.B. "1" "2" "3"...... Wie es weiter geht könnt ihr euch vielleicht denken. Zurück zum Fehler. Wenn einer dieser Ordner bereits existiert schmiert das Programm sang und klanglos ab. Da fehlen noch einige Abfragen, ob der Ordner schon existiert. Ob das Quellverzeichnis existiert und vielleicht noch der Hinweis, dass das Programm gelegendlich dazu neigt bei Angabe eines falschen Zielverzeichnisses fast wahllos irgendwo Daten hinschmiert. Gut, ist mir erst ein mal passiert, aber wenn auf einmal die Festplatte voll ist wundert man sich doch ^^

Für Lazarus typisch ist die Anwendung trotz weniger Seiten Code bereits 12 MB groß. Mit 7z komprimiert aber nur noch etwa ein Zehntel

So damit wisst ihr auch, womit ich mir die ganze Zeit die Stunden um die Ohren haue. Ihr wisst vielleicht, wie das ist, wenn da ein Fehler ist und ihr einfach keine Lösung dafür findet. Ich hab mitten in der Vorlesung fast nen Wutanfall bekommen... Naja gut, da war auch mein Kaffee-Pegel etwas gering


Euch allen noch ein schönes Wochenende! Ich muss sagen, das Wetter heute war herrlich! Hab meinen ersten leichten Sonnenbrand des Jahres, nach einer kleinen Radtour und einer guten Stunde rumpflezen am Elbufer



edit:
fragt mich bitte nicht, warum da so ein ellenlanger Absatz drinnen ist. Vielleicht liegt das am Code, hab ihn deswegen mal in einen Spoiler gepackt
Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicke auf die Grafik für eine größere Ansicht 

Name:	P3D Databench 0.2.2.PNG 
Hits:	1604 
Größe:	26,3 KB 
ID:	28434  
Kategorien
Planet 3DNow! , Blog

Kommentare

  1. Avatar von Onkel Homie
    Ohhh ein NAS Roundup. Na das interessiert doch mal. Fals ich was zu Qnap beisteuern kann.. ;)

    Das Tool ist auch ne nette Idee.
    Muss ja nicht schön sein sondern funktionieren und dir/euch das Testen erleichtern.

    Daumen hoch..so von Onkel zu Onkel ;)
  2. Avatar von Yoshi 2k3
    Klingt spannend. Hab grad eins von Synology gekauft. Mal sehen was die Testergebnisse zeigen werden.
  3. Avatar von Onkel_Dithmeyer
    Synology ist auch dabei. Qnap aber nicht....

    Alle Geräte sind sehr interessant und vor allem die Geräte mit mehreren Laufwerken haben mich dann doch bewegt das Programm noch weiterzuentwickeln. Bin jetzt bei Version 0.4.2.1 angekommen und das ganze läuft schon sehr stabil. Leider ist der Code auch schon sehr komplex, weil ich am Anfang alles in eine Prozedur gestopft hab. Zumindest gibts jetzt schon mal einige Fehlerabfragen und man muss die Verzeichnisse nicht mehr per Hand eintragen, sonder kann das mit einem Popup-Browser auswählen.

Trackbacks