Warum braucht heutige Anwendungssoftware so viel RAM im Vergleich zu früher?
-
Nehmen wir mal Texteditoren.
Während früher hunderte von ihnen im 640 KB Haupspeicher liefen, brauchen heute Texteditoren, auch wenn sie recht einfach sind, hunderte von MByte.Oder nehmen wir Officeanwendungen.
Auch mit MS Office 95 oder Ami Pro konnte man unter Windows 95 problemlos komplexe Briefe schreiben, aber das Programm lief dennoch mit ca. 16 MB RAM Prima.
Heute braucht so eine Office Applikation gleich über 200 MB.
Wieso?
-
Weil nicht nur die Programme selbst sehr viel mehr Funktionen bekommen haben, sondern auch die Bibliotheken die sie benutzen (bsp. plattformspezifische C Library). Einfache Texteditoren die mehrere hundert MByte Arbeitsspeicher benötigen, sind mir allerdings fremd. Notepad unter Windows 7 ist mit etwa 1,2 MB dabei, kompakte Editoren unter *NIX-basierten Systemen oft noch weniger.
Bei den heutigen Speicherpreisen und -mengen braucht man eben nicht mehr auf jedes einzelne Byte achten, auch wenn man es bei Programmieren dennoch tun sollte - ist einfach ein guter Stil wenn man tatsächlich nur Datentypen mit der benötigten Größe nutzt, als unnötig Speicher zu verschwenden.
-
hinter solchen Phänomenen stehen tatsächlich allgemeinere Gesetzmäßigkeiten:
Parkinson's law
Wirth's law
-
schlanke Systeme sind oft solche, die auf einigen wenigen Prinzipien (bzw Abstraktionen) aufbauen, die dann konsequent auf jeder Ebene umgesetzt werden.
Viele Systeme haben ursprünglich so angefangen (C, *n*x, ...)
Featuritis erfordert es dann, neue Prinzipien hinzuzunehmen, die teils den ursprünglichen widersprechen können, wodurch das System wächst und die Prinzpien verwässern können. (C mit Objektmodell, Betriebssystem mit Shell und GUI, ...)
Im Interesse der Rückwärts-Kompatibilität (wer will schon jedes Mal sämtliche Software neu schreiben, wenn einem Betriebssystem oder einer Prog.Sprache neue Features hinzugefügt werden) werden die alten Prinzipien weiter unterstützt, neue kommen hinzu -> Komplexität steigt an. Irgendwann ist das System so komplex, daß ein nennenswerter Teil für die Selbstverwaltung (mit entsprechendem Verbrauch an RAM und CPU-Last) draufgeht.
-
Nicht zu vergessen, das heute jeder Knopf ein kewles Grafik-Layout braucht, das blinkt wenn man die Maus rüberhält und *click* Sounds abspielt wenn man draufdrückt. Ausserdem implementiert jeder dieser Knöpfe noch 723 weitere Effekte die aber nicht genutzt werden.
-
RAMmonster schrieb:
Nehmen wir mal Texteditoren.
Während früher hunderte von ihnen im 640 KB Haupspeicher liefen, brauchen heute Texteditoren, auch wenn sie recht einfach sind, hunderte von MByte.Hunderte von MByte für einen einfachen Texteditor? Ich weiß ja nicht, was du verwendest. Der umfangreichste Texteditor den ich bislang verwende belegt 25MB und ist auch vom Funktionsumfang weit oberhalb dessen was ich als einfachen Texteditor bezeichnen kann (UltraEdit).
RAMmonster schrieb:
Oder nehmen wir Officeanwendungen...
Heute braucht so eine Office Applikation gleich über 200 MB...Ich habe grad meinen USB-Stick nicht zur Hand, aber ich glaube Softmaker Office (das durchaus vom Funktionsumfang mit den anderen Officepacketen vergleichbar ist) ist garnicht mal so groß.
Aber Grundsätzlich: Die Größe ist zu der heutigen Zeit weniger relevant als die Entwicklungszeit (Und umfangreiche Bibliotheken, oder allgemein Hochsprachen, kosten in der Regel auch mehr Speicher). Zudem wollen viele Anwender nicht nur Funktionalität, sondern auch Optik. Und der Funktionsumfang ist heute in der Regel auch weit höher.
Zudem wurde früher meist mit einfachten Mitteln formatiert, und auch Schriften hatten eine feste Breite oder wurden in einfache Bitmapraster abgebildet (Wir reden hier von Office-, nicht von Textsatzanwendungen).
-
Ok, einfaches Anwendungsbeispiel was ich gerade in einem anderen Thread entdeckt habe:
Microsoft Keyboard Layout Creator
http://msdn.microsoft.com/en-us/goglobal/bb964665.aspxWarum braucht dieses Monster 10.1 MB an Speicherplatz auf der Festplatte und im RAM dann gleich noch mehr?
Für ein so simples Tool wie ein Layouteditor?
Ich bin mir sicher, daß man das gleiche in 500 KByte implementieren kann.
-
d.linux-bg.org/download/docs/wirth.pdf
http://web.syllable.org/pages/about.html
http://www.youtube.com/watch?v=YcGZQbcqBWw&feature=relatedhttp://www.kolibrios.org/
http://www.youtube.com/watch?v=8rBN0-TP0hohttp://www.haiku-os.org/
http://www.youtube.com/watch?v=oPCjFuoWhQc
-
RAMmonster schrieb:
Ich bin mir sicher, daß man das gleiche in 500 KByte implementieren kann.
Sicherlich könnte man das.
Aber früher hat man viel Zeit und Denkarbeit darin investiert, hier und da durch verschiedene Tricks und clevere Datenstrukturen Speicher zu sparen.
Heutzutage macht das kaum noch jemand, da sich der Aufwand bei heutigen RAM-Dimensionen einfach nicht mehr lohnt.
-
also meine theorie ist, das einfach um die schlanken c libs immer mehr wrapper gebaut werden, jeder wrapper benötigt wieder speicher, vermindert die optimierbarkeit, erhöht den speicherbedarf und am ende hast ne schöne bloatware

lg lolo
-
noobLolo schrieb:
jeder wrapper benötigt wieder speicher
jeder wrapper benötigt wieder performance

lg lolo