Entwickler-Ecke
WinForms - Warum belegt eine WinForms Anw. so viel Arbeitsspeicher?
vsti - Di 25.01.05 11:08
Titel: Warum belegt eine WinForms Anw. so viel Arbeitsspeicher?
Moin moin,
seit einiger Zeit versuche ich mich dem Fortschritt azupassen und programmiere ein wenig in Delphi .Net. An sich sehr genial, einfach, macht Spaß und Exe-Dateien sind schön klein.
Aber warum verbraucht eine Anwendung so viel Arbeisspeicher wenn man sie erstmal gestartet hat? Kann das Sinn der Sache sein, wenn eine 30 kB kleine Anwendung 10 MB Arbeisspeicher belegt?
greez, vsti
Delete - Di 25.01.05 11:26
Die Größe der Anwendung selber spielt keine Rolle. Gestern hat bei mir MemTest (exe = 14KB) locker seine angeforderten 800 MB belegt und getestet. Was genau bei .NET Programmen so viel Speicher braucht, weiß ich auch nicht, aber allgemein gesagt sind es die Ressourcen (Bitmaps, Dialoge usw.) und die Datenstrukturen innerhalb eines Programmes, die den Speicher brauchen. Und beim Framewok kommen eben noch die Datenstrukturen des Frameworks dazu.
Radioactive - Di 25.01.05 12:04
Das liegt auch daran, dass die EXE-Datei beim Ausführen nochmals Complimiert wird. Wenn du das Programm in Delphi schreibst und dann auf komplimieren klickst, erzeugt der Compiler einen Zwischen code, der aber wärend der Laufzeit sozusagen "Endkomplimiert" wird. Deshalb ist auch das .net Runtime Enviroinment nötig.
vsti - Di 25.01.05 12:45
Das würde auch erklären warum Longhorn min requirements 1024 MB Ram hat (war doch so, oder?) ^^.
Vielleicht hat M$ bis dahin ja ne elegante Lösung parat die nicht für jedes Programm einzelnd so viel speicher für das .NET Runtime belegt, sondern eine lokale Quelle hat von der aus .NET abgerufen wird. Sofern das .NET-Prinzip das zulässt...
xasx - Do 14.04.05 13:00
Naja: in Longhorn wird .NET (oder genauer: die nachfolger Avalon bzw. WinFX) Teil des Betriebssystem und dessen API sein, ich denke schon, dass man da an einigen Performance-schrauben drehen kann, und (ähnlich der neuesten Version von Java) mehrere Programme mit derselben Instanz der Runtime laufen lassen kann.
Warum so viel? Managed Code! Z.B. Wir müssen uns ja (fast) nicht mehr um die Speicherverwaltung kümmern, ein Garbage Collector nimmt uns (fast) die ganze Arbeit ab. Der will auch seinen Speicher haben...
uall@ogc - Do 14.04.05 13:24
@Radioaktiv
"Compiler" kannste richtig schreiben, es heißt "(k)compilieren" nicht "komplimieren".
Das soll jetzt nichts gegen dich seinwegen der Rechtschreibung, aber da du 3 mal den fehler gemach hast, kennst du das wort wohl nur so, deshalb sag ich dir wie es richtig heißt
also: Compil<er> -> Compil<ieren>
JayK - Mo 09.05.05 16:35
uall@ogc hat folgendes geschrieben: |
@Radioaktiv
"Compiler" kannste richtig schreiben, es heißt "(k)compilieren" nicht "komplimieren".
Das soll jetzt nichts gegen dich seinwegen der Rechtschreibung, aber da du 3 mal den fehler gemach hast, kennst du das wort wohl nur so, deshalb sag ich dir wie es richtig heißt
also: Compil<er> -> Compil<ieren> |
Signatur von uall@ogc hat folgendes geschrieben: |
(Popov): "du bist eine kleine fette Gurke ... Hat dich deine Mama nicht lieb, daß du mich hier in Diskussionen verwickelst? Wenn du einen haben willst, mit dem du in Zukunft Ärger hast, dann mach weiter so. Mr. Rechtschreibung. Ha." |
Ich will mich nicht mit dir anlegen @uall, aber so langsam glaube ich, hat Popov recht und du wirst deiner Signatur gerecht :mrgreen: ;) .
uall@ogc - Mo 09.05.05 18:39
dazu muss ich sagen, dass ich das nur da beanstande bei den leuten die ein wort mehrmals gleich falsch schreiben.
wenn mir jemand sagt, dass ich irgendwas falsch schreibe nehme ich das zur kenntnis aber beschimpfe nicht wild denjenigen. ich mache ja auch genug fehler (groß/kleinschreibung nicht beachten) aber bei so einem wort wie "komplimieren" (2* falsch geschrieben) nehme ich stark an, dass derjenige denkt man schreibt es so und will ihn nur darauf hinweisen.
ich mach mehr fehler als die meisten hier. ich könnte mich zwar anstrengen keine fehler mehr zu machen. nur manchmal glaube ich die leute wissen nicht, dass sie fehler machen (einzigtes etc.) man kann dann ja nett drauf hinweisen.
JayEff - Mo 09.05.05 19:02
Is doch in Ordnung, auf fehler ingewiesen zu werden, oder? wenn man solche fehler z.B. in einem Bewerbungsschreiben macht, dann isses ziemlich schnell aus mit dem Job. Darum find ichs in Ordnung zu korrigieren, bzw korrigiert zu werden.
JayK - Mo 09.05.05 19:10
Ja, ja, ich hab ja auch nichts dagegen. Aber ich hab uall@ogc jetzt zum zweiten mal erwischt, wie er Rechtschreibfehler korrigiert. Nun aber wieder zum Thema, sonst kommt hier noch ein Mod vorbei...
jasocul - Mo 09.05.05 19:50
Die Interna von .NET sind mir noch nicht so geläufig, aber ich könnte mir folgendes vorstellen:
Man startet ein .NET-Programm auf einem XP-Rechner.
XP hat .NET nicht im BS implementiert. Bei Longhorn wird es iirc anders sein.
Daher rechnet XP die geladenen Framework-Ressourcen aus .NET dem kleinen .NET-Programm zu.
Je nachdem, was da alles eingebunden wird, kommen da schonmal ein paar 100MB zusammen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!