| Autor |
Beitrag |
crncpz
      
Beiträge: 59
WIN 2000, WIN XP Pro
Delphi 6
|
Verfasst: Mo 19.05.08 11:33
hallo
da ich mich seit langem mal wieder mit delphi beschäftige und jetzt mal ein größeres projekt auf die beine stellen wollte kam mir die frage in den sinn:
ist es sinnvoller möglichst alles über einen prozess laufen zu lassen oder wenn möglich alles auf kleine prozesse zu verteilen?
zu betracheten ist dabei die systembelastung, also cpu auslastung, speicherbedarf,...
als kleines bsp.
ich habe ein programm was irgendetwas macht (egal was) und möchte in diese programm eine anzeige integrieren die die aktuelle uhrzeit zeigt. sollte das nun in das eigentliche programm integriert werden oder als eigener prozess laufen und nur grafisch mit dem anderen programm verbunden werden, damit es so aus sieht als ob es teil des programms wäre?
möglicherweise ist das genau ein bsp wo es überhaupt keinen sinn macht, da der nutzen nicht in relation zum aufwand steht, aber darüber kann man ja mal diskutieren
mfg crncpz
|
|
passiv
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: Mo 19.05.08 12:15
die frage ist, ob diese prozesse kommunizieren sollen.
dann wäre es wahrscheinlich sinnvoller mit threads zu arbeiten. ausser sie müssen sehr viel austauschen, dann würden threads mit ihren vielen synchronisationen das system fast blockieren.
wenn sie unabhängig voneinander agieren können ist es wahrscheinlich gescheiter das in eigene programme zu verpacken, damit die auch einzeln aufrufbar (und compilierbar) bleiben.
ich denke das sind die hauptaugenmerke, nach denen sowas entschieden werden könnte/sollte
mfg
Fabs
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
crncpz 
      
Beiträge: 59
WIN 2000, WIN XP Pro
Delphi 6
|
Verfasst: Mo 19.05.08 14:05
so ähnlich hab ich mir das schon gedacht, für keine oder gelegentliche kommunikation könnte es durchaus von vorteil sein, aber um bei dem beispiel der uhr zu bleiben müsste man das programm deutlich abspecken, für eine solche banale funktion sind mir die üblichen 300kB delphi programme zu groß.
wie sieht es aber zum bsp mit dem speicherbedarf aus wenn ich 10 einzelne programme laufen lasse brauchen die dann mehr speicher als ein programm was alle 10 funktionen macht?
|
|
hazard999
      
Beiträge: 162
Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
|
Verfasst: Mo 19.05.08 14:24
definitiv ja.
Einen gewissen overhead hat man immer, um gewissen Libraries wird man nicht herumkommen.
Da wäre ein Plugin-System mit eigenen Threads sicherlich besser.
_________________ MOV EAX, Result;MOV BYTE PTR [EAX], $B9;MOV ECX, M.Data;MOV DWORD PTR [EAX+$1], ECX;MOV BYTE PTR [EAX+$5], $5A;MOV BYTE PTR [EAX+$6], $51;MOV BYTE PTR [EAX+$7], $52;MOV BYTE PTR [EAX+$8], $B9;MOV ECX, M.Code;MOV DWORD PTR [EAX+$9], ECX
|
|
passiv
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: Mo 19.05.08 14:26
crncpz hat folgendes geschrieben: | | ... für eine solche banale funktion sind mir die üblichen 300kB delphi programme zu groß ... |
ich kann mir nicht vorstellen, dass es drunter überhaupt sinnvoll geht.
sonst schließe ich mich hazard999 an (war zu langsam, es selbst (viel länger) auszuführen  )
mfg
Fabs
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
crncpz 
      
Beiträge: 59
WIN 2000, WIN XP Pro
Delphi 6
|
Verfasst: Mo 19.05.08 14:37
passiv hat folgendes geschrieben: |
ich kann mir nicht vorstellen, dass es drunter überhaupt sinnvoll geht.
|
ich dachte irgendwo hätte ich das mal gelesen das es möglich ist delphi programme ein wenig ab zu specken. weis aber nicht mehr wo ich das gefunden hatte
ein plugin system wäre sicher eine gute und sinnvolle lösung, ich hab zwar ideen wie man so etwas umsetzen könnte, aber wie man es richtig macht hab ich keinen plan. toll wäre es wenn man das so machen könnte wie ein deskband in der taskleiste oder so ähnlich.
wo ich mir nicht sicher bin ist das es über ein pluginsystem unbedingt weniger speicherbedarf hat, schließlich muss das im eigentlichen programm ja irgendwie implementiert werden?
mfg crncpz
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 20.05.08 11:43
Das kleinste Delphi-Programm von dem ich weiß, ist eine extrem abgespeckte Anwendung, mit so wenig Compiler-Magic in der System.pas, dass der Compiler die System.pas gerade noch akzeptiert. Programmgröße: 5 KB.
Ohne Modifikationen der System.pas und unter Nutzung der WinAPI bekommt man ein leeres Fenster mit 16 KB hin ...
Zu der Diskussion, was abzutrennen ist und was nicht, bzw. was man trennen sollte und was nicht:
Alles, was Funktionalität einer Teilkomponente darstellt, sollte auch in dierser Komponente zusammengefasst werden. Ist diese Funktionalität in sich abgeschlossen, und wird durch fremde Komponenten genutzt werden, sollte sie abgetrennt werden (z.B. ein Lizenz-Server für eine Anwendung). Erweitert eine Komponente die Funktionaliät, sollte die Realisierung über ein Plugin erfolgen. Abgeschlossene Funktionalität, die nicht noch einmal extern (z.B. nicht als Kommandozeilen-Client) angeboten werden soll, sollte im Hauptprogramm eingebunden werden, sofern diese regelmäßig benötigt wird; ansonsten als Plugin (um eine Konfigurierbarkeit zu ermöglichen).
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|