Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualStringTree + VirtualServer (https://www.delphipraxis.net/104161-virtualstringtree-virtualserver.html)

Gruber_Hans_12345 28. Nov 2007 12:09


VirtualStringTree + VirtualServer
 
habe gerade ein komisches Phänomen :
wenn ich eine ganz primitive Anwendung mache, und in diese ein VirtualStringTree gebe, dann braucht dieses Anwendung in einem VirtualServer (MS Virtual Server 2005) immer eine gewisse grundlast - und das möchte ich irgendwie rausbekommen.
Ich mache nur eine neue Anwendung, gebe in VirtualStringTree drauf und das wars.

Wie bekomme ich am besten raus, was bzw wo da das problem liegt?
(und idealerweise, ohne irgendwelche zusätlzichen tools installieren zu müssen ...)

generic 28. Nov 2007 13:59

Re: VirtualStringTree + VirtualServer
 
Ich denke das liegt an der "Grafikkarte".

Der VST zeichnet sich eigendlich on demand neu, allerdings geht das nicht wirklich in den virtuellen Kisten gut.
Daher vermute ich das deine Ausgaben sehr komplex sind oder viel zu sehen ist.

gsh 28. Nov 2007 14:04

Re: VirtualStringTree + VirtualServer
 
Ahm hast du auf dem virtuellen System die Virtual Addins installiert? Mit denen kann man die system performance vom virtuellen system erheblich steigern

Gruber_Hans_12345 28. Nov 2007 15:04

Re: VirtualStringTree + VirtualServer
 
die VM AddOns und co sind installiert

und komplex sind die nicht

Delphi -> Neue Anwenung -> VirtualTree rein -> fertig

also der zeigt nix ausser einem weissen Text an
und es ist auch egal, ob ich die Anwendung verstecke oder nicht (dann gibt es ja auch kein PaintOnDemand)

das komische ist auch, das der Taskmanager in der Virtual Maschine bei dem prozess nicht wirklich was anzeigt
aber wenn ich mir die Ressourcen Auslastung anzeige, dann geht die sobald ein leerer VirtualTree drinnen ist auf so 10-15% rauf, ohne dem VirtualTree brauchts dann maximal 2%

drauf gekommen bin ich nur, weil ich wissen wollte warum der server (der host server) 100% CPU auslastung hat, und das konnte ich nicht feststellen - den das sind teils programme, die nur per Timer alle 5 Minuten berechnungen machen (für so 10 sekunden) aber eine andauernde auslastung in der ressourcenübersicht haben (wenn das programm geschlossen ist, dann brauchen die keine ressourcen)

generic 28. Nov 2007 16:02

Re: VirtualStringTree + VirtualServer
 
Es ist halt kein natives Windowssteuerelement. Es zeichnet sich halt selbst.

Gruber_Hans_12345 29. Nov 2007 08:21

Re: VirtualStringTree + VirtualServer
 
Zitat:

Zitat von generic
Es ist halt kein natives Windowssteuerelement. Es zeichnet sich halt selbst.

aber soweit ich den source von VST kenne, greift es dabei auch auf Windows Messages zurück, und somit zeichnet es sich auch nur dann, wenn es nötig ist - und wenns zb versteckt ist, dann gar nicht ;)

da muß noch irgendetwas anderes dran sein - habe schon alle timer und threads kontrolliert (die im VST Drinnen sind) aber da auch noch nicht wirklich was gesehen ...

generic 29. Nov 2007 08:41

Re: VirtualStringTree + VirtualServer
 
der vst spawnt auch noch threads für das drag and drop.
ggf. hat der ein problem mit dem virtalmachine drag an drop.
bei dem virtualpc konnte man doch systemübergreifend droppen?
(oder war das vmare)

Gruber_Hans_12345 29. Nov 2007 11:03

Re: VirtualStringTree + VirtualServer
 
hmmm eingetnlich ist das nur ein tool, das auf dem rehcner 24 stunden läuft, per timer alle 5 minuten eine aktion ausführt und von keinem benutzer gesteuert wird (wird irgendwann mal als service laufen, dann werden diese probleme behoben sein)
daher kam mir es auch so komisch vor, warum ich eine ständige auslastung in den Ressourcen des VirtualServers habe. wenn es alle 5 minuten bei der aktion wäre, ok, aber wenn das tool versteckt ist, und ausser das es wartet, das der timer abläuft nichts tut ... das kommt mir einfach komisch vor

Gruber_Hans_12345 29. Nov 2007 11:35

Re: VirtualStringTree + VirtualServer
 
Liste der Anhänge anzeigen (Anzahl: 2)
so, habe mal zum testen folgendes gemacht, ein ganz leeres programm
das einzige war

einmal ohne alle compiliert

und einmal nur die VST erzeugt (wird weder angezeigt noch sonst was gemacht sondern, nur folgend erzeugt)
Delphi-Quellcode:
procedure TfrDemoServer.FormCreate(Sender: TObject);
begin
    trDemoServer   := TVirtualStringTree.Create(self);
end;

also irgnedwas macht dieser VST noch und irgendwie komme ich nicht dahinter was er macht ...

Gruber_Hans_12345 29. Nov 2007 11:47

Re: VirtualStringTree + VirtualServer
 
so .....

ich habe zumindest mal rausgefunden, an welcher zeile es liegt, das der VST diese ressourcen braucht ....

und zwar wird im

Delphi-Quellcode:
procedure InitializeGlobalStructures;
// initialization of stuff global to the unit
...
timeBeginPeriod(MinimumTimerInterval);
und MinimumTimerInterval steht dabei auf 1 (also 1ms)

da ich vermute, das es nur die genauigkeit ist, und ich das bei ServerAnwendungen nicht wirklich brauche, werde ich das einfach mal auf 100ms stellen (habe die funktion timeGetTime auch nur fürs scrollen und animieren gefunden -> also nicht wichtig fürs reine anzeigen)

[edit]läuft jetzt perfekt, vorher hatte ich mit den 5 virtuellen servern eine auslastung die niemals unter 100% ging (Also totale systemauslastung am host server) jetzt habe ich auf den 4 virtuellen servern (ein virtueller server hatte kein delphi programm am laufen) die neue version mit dem timeBeginPeriod auf 100ms und siehe da der Host server hat jetzt nur mehr um die 30% Systemlast


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz