hyperion69
Goto Top

Speedmessung von Programmstarts bei Installation auf RAM-Disks

Hallo,

für mich steht jetzt der nächste Teil meiner wissenschaftlichen Arbeit an - Ich untersuche Möglichkeiten, den Datendurchsatz auf Windows PCs zu beschleunigen.

Nächstes Kapitel: RAM-Disks

Ich habe auf meinen Test-PCs 13 verschiedene installiert und wirklich massive Unterschiede in der Geschwindigkeit der einzelnen RAM-Disks festgestellt.

Jetzt geht es um Alltagsaufgaben, die RAM-Disks effizienter erledigen könn T en als wenn die jeweilige Software auf der HDD oder SSD installiert ist.

Ich habe aber noch keine SW gefunden, die in der Lage ist, die Zeit von Programmstarts zu messen.

Deswegen würde ich jetzt eine batch datei schreiben, die z.B. 20 auf der RAM-Disk installierte Programme startet und dann die Zeit vorher und danach in ein log.txt ausgibt.

Dasselbe dann nochmal mit den gleichen 20 Prg auf HDD und SSD.

Ist das so sinnvoll oder gibts noch weitere Möglichkeiten, die ich bisher noch nicht sehen kann, zu meinem Ziel zu gelangen?

Ich würde dann auch Photoshop, Gimp, Office 2003, Adobe Acrobat in mehreren Varianten und andere "Schwergewichter" nehmen

Hat hier jemand noch eine Idee, welche SW beim Starten wirklich dauert und durch die Installation auf eine RD schneller laufen könn T e?

Herzliche Grüße und vielen Dank für Eure Ideen...

Content-ID: 315800

Url: https://administrator.de/forum/speedmessung-von-programmstarts-bei-installation-auf-ram-disks-315800.html

Ausgedruckt am: 25.12.2024 um 01:12 Uhr

emeriks
Lösung emeriks 21.09.2016 um 10:10:33 Uhr
Goto Top
Hi,
das wird so nicht funktionieren bzw. falsche Ergebnisse liefern. Wenn Du darüber eine "wissenschaftlichen Arbeit" schreiben willst, dann solltest Du das aber wissen.

Der Punkt ist, zu erkennen, wann das Programm mit dem Start fertig ist. Und was man alles zum Start zählt. Es gibt Programme, die laden noch im Hintergrund, während die GUI schon auf Benutzereingaben reagiert.
Weiterhin kommt dazu, dass der Start eines Programms auch von anderen Faktoren beeinflusst werden kann. z.B. die aktuelle CPU-Last beim Start. Oder ob das Programm bzw. DLL's, welche es benutzt, seit dem letzen Boot zum ersten oder zum wiederholten Mal geladen werden.

Normalerweise müsste es aber ausreichen, einfache Festplatten-Benchmarks auf die RAM-Disks auszuführen.

E.
colinardo
Lösung colinardo 21.09.2016 aktualisiert um 11:10:55 Uhr
Goto Top
Hallöle zusammen.
Zitat von @emeriks:
Der Punkt ist, zu erkennen, wann das Programm mit dem Start fertig ist.
Eben.

Zumal ich solch eine Arbeit eigentlich als sinnlos empfinde, wenn man sich mal die Specs eines Standard DDR3-RAM-Riegels ansieht und sie mit denen einer SSD vergleicht. RAM >6GB/s versus ca. 600MB/s und IOPs > 1Mio versus ca. 80 000. Da sieht man schon so was abgeht.

Man müsste auch sämtliche Cache-Mechanissmen in Windows abschalten um nachvollziehbare Ergebnisse zu erzielen.

Auch sollte man natürlich bedenken das das Laden der Programme in die Ram-Disk beim Start des Rechners auch seine Zeit benötigt wenn man als Quellmedium keine SSD benutzt.

http://www.tomshardware.de/ssd-ram-ram-disk-ramdrive-vergleich,testberi ...

Grüße Uwe
Dirmhirn
Lösung Dirmhirn 21.09.2016 um 11:10:47 Uhr
Goto Top
Hi,

du könntest einfach schauen wann die CPU Last wieder abfällt. Bei Programmen mit nennenswerter Startzeit sollte das erkennbar sein.

Office 2003(wirklich?!). Hier stellt sich für mich die Frage ob du da exakt messen musst - Office 2013 startet auf meinem popeligen HP Probook Office Notebook in einer Sekunde.
Wenn ich dafür bei jedem ausschalten länger warten muss bis die RAM-Disk auf die SSD geschrieben wurde... Muss ich gar nicht überlegen ob Office auf die RAM-Disk soll.

SW die beim Starten lange braucht muss viel Daten von der Festplatte laden. Zb div Musik tools - eOrgel zb. Aber wenn die Orgel-Libraries beim Hochfahren in die RAM-Disk geladen werden, nur dass sie dann beim Softwarestart schneller geladen sind. Wenn ich so viel RAM habe, dass ich mehrere Libraries Laden kann (8Gb + pro Lib). Dann lad ich lieber die 3 Libs die ich brauche, an statt 500GB RAM zu installieren.
Mit ordentlicher/en SSD/s geht das eh schon schnell.

RAM-Disk nutzen wir nur wenn viel Daten generiert werden. Zb FEM-Berechnungen. Aber statische Daten laden viele Programme ja eh ins RAM.

Bei Photoshop kann man vll die Bilder in die RAM-Disk schieben. Aber Lightroom macht das zb eh schon automatisch. Und irgendwann müssen ja die Daten persistent gespeichert werden. Also irgendwann muss man dann doch mal warten.

btw
Ich habe auf meinen Test-PCs 13 verschiedene installiert und wirklich massive Unterschiede in der Geschwindigkeit der einzelnen RAM-Disks festgestellt.
Die Tabelle würde mich interessieren.

sg Dirm
Hyperion69
Hyperion69 21.09.2016 aktualisiert um 19:03:57 Uhr
Goto Top
@emeriks

Danke für Deine Rückmeldung, auch das kritische hilft mir weiter.

Für mich ist die Zeit interessant, die zwischen dem Klick auf die Verknüpfung zu Programm und der ersten Reaktionsmöglichkeit des Users im Programm liegt.

Meine momentane Erweiterung der Idee ist es, das Ganze mit einer Kamera zu filmen und auf dem Bildschirm eine Uhr mit Hundertsel Sekunden ablaufen zu lassen.

Der Film wird dann in slow motion abgespielt und so kann die Zeit dann genau bestimmt werden.

Wenn das Ganze dann 3mal abläuft, bilde ich das Geomittel und habe meiner Meinung nach dann ein belastbares Ergebnis.

Dasselbe nochmal mit den identisch auf HDD und SSD installierten Programmen (Kopie der Programminstallations-Partition).

Sämtliche laufende Prozesse des PCs werden runtergeprügelt bis auf Min, so dass z.B. Win7 nur mit 38 Prozessen läuft, Dienste ebenso mit => Verringerung der verfälschenden Fremdbelastung.

" Oder ob das Programm bzw. DLL's, welche es benutzt, seit dem letzen Boot zum ersten oder zum wiederholten Mal geladen werden."

Darüber muß ich noch nachdenken, bisher habe ich die Meinung, dass es mir ja um den Unterschied von HDD/SSD zu RAM-Disk geht und die Programme dann immer dieselbe DLL vom selben Ort her laden müssen, also kommt bei jeweiligem 3-maligem Durchlauf ein zum jeweiligen anderem Speichersystem anderer Wert heraus.

Dass natürlich ein Neustart, wenn HDD SSD gewählt wird, ist klar = gleiches Ausgangssetting.

Wenn ich es so machen würde, würdest Du kluger Kopf (Das ist bitte ehrlich gemeint!) dann sagen, dass die Ergebnisse der Messungen dann die Realität ziemlich kongruent abbilden?

Dankeschön!
Hyperion69
Hyperion69 21.09.2016 um 19:10:02 Uhr
Goto Top
@uwe

Danke, das ist sehr hilfreich, komme leider erst heute abend dazu, das mir anzuschauen, mein Kleiner zahnt und meine Frau ist heute sehr viel weggewesen.

Der Punkt Laden der Programme in die RD ist richtig, ich muß das als neuen Testlauf genau analysieren - ohne Dich wäre ich da so ncith draufgekommen.

Prinzipiell habe ich eine Fixe RD mit den Tools, die schnell starten sollen (R:\) ca. 800 MB, die sich aber auch dynamisch anpasst und die 800 MB real gar nicht braucht und eine temporäre RD (T:\ mit T:\TEMP) mit 2 GB, die auch größere Installationen packt und diese auch nach Neustart noch abschließen kann - natürlich auch dynamisch.

Ich werde also mal die R 800 auf R 2048 aufblasen und vollinstallieren und den Bootvorgang mit den wichtigsten (die 3 besten und die 3 schlechtesten) RD testen - bin gespannt was da rauskommt.

Hat mir sehr viel weitergeholfen - Super!
colinardo
colinardo 21.09.2016 aktualisiert um 19:50:08 Uhr
Goto Top
Bedenke auch das Windows bei jedem Start im Hintergund mitbekommt was du startest du sich merkt welche Programme am meisten gestartet werden und dies in seiner prefetching Datenbank (C:\windows\prefetch) hinterlegt und DLLs und Bibliotheken teilweise im Vorraus in den RAM lädt und diese dort weiterhin vorhält. Man sollte den Rechner also bei jedem Durchlauf auf einen cleanen Snapshot zurücksetzen. Es gibt noch viel mehr zu beachten, das sind nur die wichtigsten Dinge.

Das mit der Kamera ist zwar gut gemeint, aber den Aufwand nicht wert. Viele Programme haben heute integrierte Programmierschnittstellen die es einem ermöglichen solche Zeitpunkte zu erfassen. Office(VBA) / Acrobat (VBS/Javascript) / etc.. Hier ist dann eine Anpassung an das jeweilige Programm nötig. Die verfügbaren Benchmarks enthalten solche Routinen bereits schon von Haus aus. Denn das WIN32-API stellt einem diverse Routinen bereit zu erkennen wann z.B. welche Usercontrols verfügbar sind oder nicht. Damit lassen sich dann solche Zeitpunkte erkennen und die Zeit entsprechend messen. Es wäre vieleicht nicht schlecht wenn du dir solche Benchmarks mal näher ansiehst, davon kannst du bestimmt noch eine Menge für dein Projekt abschauen.
Hyperion69
Hyperion69 21.09.2016 um 19:51:07 Uhr
Goto Top
@Dirmhirn

das mit der abfallenden CPU Last ist super, ich könnte den Process Lasso mit 250 ms Aktualisierungsgeschwindigkeit laufen lassen und das dann durch slow motion filmen vielleicht sichtbar machen...

Office 2003, weil ich da noch auf ne RAM-Disk bringe (W+E+O+PP = 180 MB) und ich das 2007er +x Ribbon so ")=(§$/%)=/%)(§/´?'!!!!!!! finde.

Die Richtung der Software, die viel Last verursacht, weil viele Dateien laden notwendig sind, ist sehr nützlich für mich, da wäre ich alleine nicht draufgekommen - Danke.

Sehr ! Gerne stelle ich hier auch ERgebnisse zur Verfügung.

Kurz vorab, bevor ich wieder Kinderdienst habe:

Superschnell: Primo RAM-Disk, Softperfect
superlangsam: Archicrypt

Superkomfortabel Primo RD

Genaue Werte kommen noch, dann als pic auf abload.

Herzlichen Dank für Deine und Eure Unterstützung!

E.punktl
Hyperion69
Hyperion69 21.09.2016 um 19:52:43 Uhr
Goto Top
@colinardo

Das mit den snapshots ist klar, aber auch nochmal sehr gut, dass ich diesen sinnvollen Hinweis nochmal so bekomme.

Mehr Rückmeldungen heute nacht, Kind schreit... face-sad
emeriks
Lösung emeriks 21.09.2016 um 21:08:55 Uhr
Goto Top
würdest Du kluger Kopf (Das ist bitte ehrlich gemeint!)
Schleim beiseite! Woher willst Du das denn wissen?

Uwe hat eigentlich alles schon erwähnt, hinsichtlich Cache usw.

dass es mir ja um den Unterschied von HDD/SSD zu RAM-Disk geht und die Programme dann immer dieselbe DLL vom selben Ort her laden müssen, also kommt bei jeweiligem 3-maligem Durchlauf ein zum jeweiligen anderem Speichersystem anderer Wert heraus.
Da fällt mir noch ein interessanter Punkt ein:
Bei größeren Programmen wie z.B. Office liegen die Programmteile und DLL's verstreut in mehreren Ordnerstrukturen, u.a. auch im System32.
Wie willst Du das alles abfangen beim Kopieren auf Ramdisk? Du müsstest vorher genau erfassen, welche DLL usw. alle zum Start benötigt werden, diese dann kopieren. Ggf. von der Kopie registrieren und u.U. alle neu strukturieren (in Verzeichnis der EXE(n) kopieren) um sicherzustellen, dass dann auch wirklich die Kopien benutzt werden.

Ich würde sowas wahrscheinlich eher an den Dokumenten messen, also die Ladezeit derer. Dann könnte man das z.B. bei Office mit VBA realisieren. Schön komplexe Dokumente bauen, mit eingebundenen Bildern, Animationen, Filmen, Sounds und weiß der Geier was. Oder komplexe Excel-Tabellen berechnen lassen. Denk Dir was aus. SQL-Datenbanken, oder, oder, oder.
Hyperion69
Hyperion69 21.09.2016 um 23:03:55 Uhr
Goto Top
Ja, das ist super!

Das hat mir noch gefehlt, darauf wäre ich nicht gekommen.

10 komplexe Dokumente per VBA öffnen.

Dafür diesen Dank, kommt dann direkt von Mütterchen Russland zu Dir nach Hause per Mail als Anhang...
Lochkartenstanzer
Lochkartenstanzer 25.09.2016 um 23:46:34 Uhr
Goto Top
Moin

Die Zeit, die ein Programm zum starten braucht, sofern sie im sekundenbereich ist, ist völlig wumpe.

Natürlich ist es eindrucksvoll, wenn das programm mit dem doppelkli k schon da ist, aber das wesentliche sind immer noch die iops und flops, die zur verfügung stehen, was dann die geschwindigkeit dess programmes ausmacht.

Ramdisks sind für denn programmstart nur dann wichtig, wenn es oft gestartet und beendet wird. Ansobsten ist es bei heutigen ramgrösen eher vom chaching abhängig, ob das programm lahm ist oder nicht. Sinnvoller als eine Ramdisk für Programme ist eher intelligentes caching.

Lks
Dirmhirn
Dirmhirn 26.09.2016 um 11:15:25 Uhr
Goto Top
noch ein Gedanke zu "Process Lasso" und hundertstel Uhr - damit verfälschst du dir sowieso wieder die Ergebnisse. Die Uhr musst du wenn auf einem eigenen Gerät laufen lassen.

Aber das hört sich leider alles nach "wissenschaftlichem Aufwand" an face-wink

Vertief dich nicht in eine möglichst komplizierte Messung (außer du hast doch irgendeine Begründung dafür). Sprich mit deinem Betreuer darüber was ihm am liebsten wäre. Mach es so und gib ab.