![]() |
Speicherverbrauch von kleinen Anwendnungen
Hi,
ich bin gerade dabei, mein Programm und dessen Speichermanagment so weit zu optimieren, wie möglich. Also hat mich interessiert, wieviel ein Programm an Speicher verbraucht, was so wenig wie möglich macht. Ein Kompilat mit folgendem Code verbraucht bei mir im Taskmgr 804 (Byte? Kilobyte?):
Code:
Allerdings kenne ich Programme, die weitaus weniger verbrauchen. Beispielsweise Passwordsafe (
program Project1;
uses Windows; begin Sleep(10000); end. ![]() Wie ist das möglich? greez |
Re: Speicherverbrauch von kleinen Anwendnungen
Das liegt daran, daß du mit der VCL programmierst und einen Haufen Units einbindest, die du evtl gar nicht brauchst. Wenn du möglichst kleine Programme willst, dann programmier non-VCL.
|
Re: Speicherverbrauch von kleinen Anwendnungen
thx for answer
aber du wirst mir doch zustimmen, dass es sich bei diesem Programm
Code:
wohl nicht um ein VCL-Programm handelt :wink:.
program Project1;
uses Windows; begin Sleep(10000); end. greez |
Re: Speicherverbrauch von kleinen Anwendnungen
Lass doch mal die Windows-Unit weg. Lass doch am besten alle zusätzlichen Units weg. ;-)
Sleep kannst du auch direkt implementieren:
Delphi-Quellcode:
procedure Sleep; external kernel32 name 'Sleep'; stdcall;
|
Re: Speicherverbrauch von kleinen Anwendnungen
OK, ich gebs zu... Habs nur überflogen und den Code nich wirklich aufmerksam gelesen... :wall:
Aber der Effekt is der gleiche. Die Unit Windows is eben wahrscheinlich recht umfangreich. Aber kurze Frage: Läuft das so? Is Sleep nich in den SysUtils? |
Re: Speicherverbrauch von kleinen Anwendnungen
Nein das ist die API-Funktion.
Windows.pas selber wird schon vielea initialisieren, denke ich. |
Re: Speicherverbrauch von kleinen Anwendnungen
Da ich die Windowsunit nicht einbinde, existiert die Konstante kernel32 ja auch nicht mehr ;).
Gleicher Speicherverbrauch bei folgender dpr (804K):
Code:
program Project1;
procedure Sleep; external 'kernel32.dll' name 'Sleep'; Sleep; end. |
Re: Speicherverbrauch von kleinen Anwendnungen
Delphi bindet aber immer automatisch die Unit System.pas ein, die wird es dann sein.
|
Re: Speicherverbrauch von kleinen Anwendnungen
Kann man das Einbinden der system.pas irgendwie unterbinden?
|
Re: Speicherverbrauch von kleinen Anwendnungen
Neim, aber man kann die system.pas und die sysinit.pas ersetzen ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz