Laden...

Anwendung startet auf TerminalServer sehr langsam

Erstellt von Lion1984 vor 15 Jahren Letzter Beitrag vor 15 Jahren 9.465 Views
L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren
Anwendung startet auf TerminalServer sehr langsam

Hallo liebes Forum,

ich habe ein Tool entwickelt, welches primär auf dem lokalen Rechner läuft entwickelt, welches auch schon einige Monate im einsatz ist.

Nun war die Anforderung, die Anwendung auch Benutzer auf einem TerminalServer verfügbar zu machen.

Soweit alles gut, dies haben wir mitlerweile geschaft, jedoch dauert hier der Start deutlich länger (~1 Minute oder länger).

Meine Erfahrungen mit dem Microsoft TS sind sehr beschränkt.

Woran könnte dies liegen?
Die Anwendung beinhaltet Infragistics Controls, ansonsten eigentlicht nichts besonderes und es ist auch eine relativ kleine Anwendung.

Lion

lg Lion

Gelöschter Account
vor 15 Jahren

wieviel ram hat der server? wieviele assemblies nutzt du?

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren

Hallo

wieviel ram hat der server?

4 GB

wieviele assemblies nutzt du?

14 DLLS + die Exe, Auflösung:
1 x CSLA
9 x Infragistic DLLS
3 x ReportViewer
1 x Eigene DLL

lg Lion

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

die Infragisitic Tools benehmen sich leider sehr Grafik-Lastig. Für alles möglich wird irgend ein Style angefügt was dann beim zeichnen des Controls zu recht hohen Laufzeiten führt. Ich tippe insofern drauf, dass dieses ständige neuzeichnen für die Laufzeit sorgt.

Mach doch einfach mal ein paar System.Diagnostics.Debug-Aufrufe rein und lass die einzelnen Steps beim starten mit nem Zeitstempel ausgeben.

🙂

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

3.971 Beiträge seit 2006
vor 15 Jahren

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

3.728 Beiträge seit 2005
vor 15 Jahren
Rdp

Hallo Lion1984,

greifen die Clients übers Internet auf den Terminal-Server zu? Wenn ja, wie ist der Server ans Internet angepunden und wie sind die Clients an Internet angebunden?

Laufen andere Anwendungen (z.B. MS Office) flüssig und schnell auf dem selben Server?

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren

Hallo,

ich konnte leider heute nicht mehr alzuviel durchtesten / lesen da ich dann auf einen Termin war.

Also es ist defintiv die InizilationComponent Methode, die ewig braucht.

Die Clients greifen übers Firmen interne Netzwerk zu und teilweise über Internet, genaue Infos zur Internet verbindung habe ich aktuell leider nicht.

Andere Anwendungen laufen flüssig.

Vorweg, danke mal für eure Hilfe / Links.
Lion

lg Lion

Gelöschter Account
vor 15 Jahren

verwendest du remoting?

ach ja und lade dir mal
SpeedTrace
runter und schau dir an wo exakt die probleme liegen.

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren

Nein, in der Anwendung verwende ich kein Remoting.

Bezüglich des Tools, danke für das Tool, werde mir aber hierfür ein Test-TS aufsetzen da wir aktuell keinen Test-TS haben.

lg Lion

1.457 Beiträge seit 2004
vor 15 Jahren

Hallo Lion1984,

Konntest du dein Problem lösen? Hattest du nur Probleme beim Start der Anwendung oder auch bei der Bedienung der Anwendung?

Hintergrund ist der dass ich im Moment eine Anwendung für einen Kunden erstelle, welches primär auf einem Citrix Server laufen soll.

Gelöschter Account
vor 15 Jahren

zusätzlich kann man mit ngen ein pre-jit starten, was nicht nur den start, sondern auch die laufzeit-performance steigert.

1.457 Beiträge seit 2004
vor 15 Jahren

Hallo JAck30lena,

Meiner Meinung nach wird das doch bei jedem Start einer .NET Anwendung ab 2.0 durchgeführt oder irre ich mich da?

Gelöschter Account
vor 15 Jahren

ja, da irrst du dich^^ (zumindest wäre mir das komplett neu)

ngen benötigt im schnitt 6 sekunden je mb assemby. das ist verdammt lange und deshalb nur für setups geeignet.

zudem wäre dann ja der JIT vollkommen überflüssig.

1.457 Beiträge seit 2004
vor 15 Jahren

Mmh...

Und wozu gibt es dann den Microsoft .NET Framework NGEN Dienst?

Ich war der Meinung das dieser das pre-jitten durchführen und im Native Image Cache abspeichert oder bin ich da auf dem Holzweg?

3.971 Beiträge seit 2006
vor 15 Jahren

sondern auch die laufzeit-performance steigert

das stimmt nur indirekt, hat der JIT-Compiler 100% der Anwendung in Assembler übersetzt, laufen beide Programme gleich schnell, da der JIT den Assembler-Code wieder verwendet.
Der Flaschenhals einer Anwendung liegt wohl in den ganz seltensten Fällen aber JIT-Compiler.

Bei Server-Anwendungen ist es beispielsweise Unsinn das ganze mit ngen vorzukompilieren, nutzen hat nur der, der die erste Anfrage startet, alle anderen laufen gleich schnell ab.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

Gelöschter Account
vor 15 Jahren

noe, ngen macht bei weitem mehr optimierungen, da er sich dafür zeit nehmen kann wohingegen der JIT aus performancegründen nur rudimentär optimiert.

bei .net 1.0 und 1.1 war das aber so. da gebe ich dir recht. seit .net 2.0 allerdings geht die performance-schere immer weiter auseinander.

L
Lion1984 Themenstarter:in
770 Beiträge seit 2006
vor 15 Jahren

Hallo,

also bei mir ist tes primär beim starten der Anwendung. Ist sie einmal gestartet so kann man gut mit Ihr arbeiten. Leider bin ich noch nicht dazu gekommen da dies eher ein sekundäre Problem ist (1 User arbeitet glaub ich 1 mal im Monat darauf), primär ist es eine Windows Anwendung.

Aber wie gesagt, so bald Zeit ist werde ich mir eine nötige Testumgebung einrichten und schauen, wie es weiter geht.

lg Lion

lg Lion