Moien
ich habe kein spezielles Hardware- Problem das es zu lösen
gilt, sondern möchte mit Euch diskutieren. Heute habe ich bei
einem Freund auf seinem ca. 6 Jahre alten PC (Pentium900-
Prozessor) WIN2000 installiert, das System läuft angenehm
schnell.
Blanke, sauber konfigurierte Systeme laufen fast immer schnell. Sogar windows XP (etwas ausgemistet und mit genug RAM) läuft auf Rechner aus der Klasse OK.
Dabei habe ich mich gefragt, wie es möglich war auf einem
Amiga oder Atari St eine schöne Benutzeroberfläche aufzubauen
und bei heutigen Systemen die geschätzte 100 mal
leistungsfähiger sind, gibt es mit „modernen“ Betriebssystemen
Geschwindigkeitsprobleme.
Da vergleichst du etwas Birnen und Äpfel. Die Varianz der Hardware (also die möglichen Kombinationen aus CPU, RAM, Graka, Soundkarte, Netzwerk,…) war zu Amigazeiten sehr übersichtlich. Heute gibts alleine dutzende aktuelle und hunderte noch lebende Grakamodelle. D.h. die modernen Teile müssen mit sehr viel mehr Situationen klarkommen, also flexibler arbeiten. Flexibel arbeiten bringt immer Geschwindigkeitsverluste. Kuck dir doch mal die superflexiblen Sprachen wie PHP und Perl an…
Dann können die heutigen Systeme viel mehr als die alten. OK, der Nutzer bekommt davon herzlich wenig mit. Aber an sich kann z.B. windows XP (fast) alle vorherigen windows versionen und grössere Teil von DOS nachmachen. Das musste windows 3.0 in dem Umfang nicht können (weils noch nicht soviele Vorgänger gab), Amiga & co auch nicht. Der legacy-support frist an manchen Stellen sehr viel Leistung.
(Der Legacy support ist auch der Grund weshalb wir immernoch x86’er benutzen. Der x86 war eigentlich als Festplattencontroller für Grossrechner ausgelegt und sollte nie mehr machen als Daten zwischen Platten und RAM hin und her schaufeln. Um Performance ging es nicht und das Ding im Nachhinein auf Performance trimmen war extrem aufwendig. Man hätte sich viele Man-jahre Arbeit sparen können wenn zu Pentium-I Zeiten ein von Grund auf neues System eingeführt worden wäre.)
Der nächste, ganze grosse Leistungsvernichter sind die kleinen Helferlein und Spyware. Es ist sehr nett mit 2 Mausklick die Auflösung zu ändern und das Wetter von Südostasien auf dem Desktop zu haben. Aber es kostet halt RAM (normaler, reiner Verbrauch und Platz der Pagetabelle), Internetbandbreite, Registry-grösse (auch so eine legacy-sünde), Startzeit, Zeit in der Prozessverwaltung, Platz auf der Platte,… usw. Und in letzter Zeit kommen immer mehr Helferlei auf: Virenscanner (kostet Plattenperformance), Firewalls (bringt den Netzwerkstack durcheinander), Spyware aller Art. Und auch Dinge wie das NX-Bit fallen für mich da drunter.
Eine These von mir ist dass durch das Schreiben der Software
in Programmiersprachen und das anschließende Kompilieren die
Programme sich immer weiter aufblähen und dadurch langsamer
werden.
Das gilt nur teilweise. Es gibt immer mehr „mobile“, flexible Systeme wie online Officesysteme oder gar lokale Programme erstellt in Flash, .NET oder java. Die sind langsamer als klassisch programmierte Programme. Alles was nicht auf der untersten Ebene (derzeit MFC bei windows, soll irgendwann gegen .NET ausgetauscht werden) aufsetzt und Frameworks, virtuelle Systeme oder ähnliches braucht ist langsam.
Allerdings sind im Gegenzug die Compiler viel besser geworden. Der Intel Compiler produziert heute Code der effizenter ist als alles was man vor 6 Jahren kannte. An eine solche Effizenz kommen weltweit höchstens eine Handvoll ASM-Programmierer ran. Mit Handgeschriebenem Machinencode ist heute auf dem x86 kein Blumentopf mehr zu gewinnen. Von diesen extrem guten Compilern profitiert alles und jeder, auch java, php, perl & co.
cu