Laden...

Assembly signieren & registrieren

Erstellt von torte vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.830 Views
T
torte Themenstarter:in
22 Beiträge seit 2006
vor 17 Jahren
Assembly signieren & registrieren

Hallo Leute,
ich habe ein kleines Performance Problem in meiner Anwendung.
Das Performance Problem sieht derart aus, das das Programm beim Erststart ziemlich langsam startet. Beim erneuten Starten ist die Applikation innerhalb von 4 Sekunden da.

Meine Erklärung hierfür:
Die Anwendung verwendet ca. 15 Assemblies die sehr umfangreich sind. Diese Assemblies müssen beim Erststart alle in den GAC geladen werden. Genau das verbraucht die Zeit. Beim Zweitstart sind alle Assemblies noch im GAC und somit geht der Start sehr schnell.

Bitte korrigiert mich, wenn ich das falsch sehe !

Meine Lösung:
Das Problem ist, ich kann mit dem langsamen Erst-Start NICHT Leben.
Somit meine Lösung: Die Assemblies werden signiert (sharable gemacht). Im Installer meiner Anwendung registriere (gacutil.exe ...) ich alle diese Assemblies.

Meine Frage:
Das sollte mein Performance Problem beim Erst-Start beheben ?
Spricht hier etwas dagegen oder bin ich ggf. ganz auf dem falschen Pfad ?

Gruss
Torsten

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo torte,

beim Erststart müssen nicht nur dein Assemblies geladen werden, sondern die komplette .NET-Runtime. Am einfachsten löst du dass, in dem du das Programm vorab einmal startest. Im Ernst. Es kann sich dann ja selbst sofort beenden.

herbivore

T
torte Themenstarter:in
22 Beiträge seit 2006
vor 17 Jahren

Hi herbivore,
mit dem Laden der .NET Runtime muß der Kunde definitiv einfach leben.

Das erstmalige Starten des Programmes bringt in meinen Augen jedoch nicht die Lösung. Die Assemblies werden doch nicht Ewigkeiten im GAC gehalten !
Und wenn der Kunde den Rechner anschaltet und die Applikation startet und die Applikation dann quasi unsichtbar im Hintergrund gestartet und gleich wieder beendet wird ... , muß er im Endeffekt ja trotzdem die volle Zeit warten.

Gruss
Torsten

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo torte,

dann musst du die Anwendung die ganze Zeit im Hintergrund laufen lassen. Aber auch dann werden aber im Laufe der Zeit die Assemblies rausgeswappt. Eine zuverlässige Lösung, die in jeder Situation und unter jeder Bedingung einen schnellen Start der Anwendung ermöglicht, gibt es m.E. nicht oder wäre zumindest sehr aufwändig.

herbivore

B
1.529 Beiträge seit 2006
vor 17 Jahren

Erst gacutil, dann ngen.
Und ansonsten - wie herbivore schrieb - einfach die Zahl der Starts auf einen pro Rechnerneustart reduzieren...