Ratschlag gefragt (Ladezeit)

09/12/2009 - 14:36 von msnews.microsoft.com | Report spam
Hallo

Ich habe eine Windows-Anwendung die soweit gut lauft, einzig der Ladeprozess
dauert über unser WAN etwas lange, direkt bei uns auf dem Hauptsitz über LAN
làuft es wunderbar, einzig bei unseren Aussenstellen làuft es etwas langsam
(Ladezeit ca. 25 Sekunden).

Was geschieht genau beim Applikationsstart? Es werden Daten über zwei
WCF-Services geladen, der einer Service liefert sehr wenige Daten und der
andere Prozess làdt unseren kompletten Mitarbeiterstamm als Objekt (ca. 4000
Datensàtze) und dies dauert wie gesagt intern ca. 2-3 Sekunden und extern
ca. 20 Sekunden.

So nun zu meiner Frage, gibt es vielleicht eine Möglichkeit den làngeren
Ladeprozess irgendwie zu optimieren, anders zu laden, damit die Ladezeit
verkürzt wird?

Da es sich bei der Anwendung um eine Personalanwendung handelt, benötigt die
Anwendung gleich zu Beginn die Daten, es ist also nicht so dass ich die
Daten bei Bedarf laden kann.

Vielen herzlichen Dank

Gruss
 

Lesen sie die antworten

#1 Harald M. Genauck
09/12/2009 - 18:10 | Warnen spam
Hallo Roger,

Ich habe eine Windows-Anwendung die soweit gut lauft, einzig der
Ladeprozess dauert über unser WAN etwas lange, direkt bei uns auf
dem Hauptsitz über LAN làuft es wunderbar, einzig bei unseren
Aussenstellen làuft es etwas langsam (Ladezeit ca. 25 Sekunden).

Was geschieht genau beim Applikationsstart? Es werden Daten über
zwei WCF-Services geladen, der einer Service liefert sehr wenige
Daten und der andere Prozess làdt unseren kompletten
Mitarbeiterstamm als Objekt (ca. 4000 Datensàtze) und dies dauert
wie gesagt intern ca. 2-3 Sekunden und extern ca. 20 Sekunden.

So nun zu meiner Frage, gibt es vielleicht eine Möglichkeit den
làngeren Ladeprozess irgendwie zu optimieren, anders zu laden, damit
die Ladezeit verkürzt wird?

Da es sich bei der Anwendung um eine Personalanwendung handelt,
benötigt die Anwendung gleich zu Beginn die Daten, es ist also nicht
so dass ich die Daten bei Bedarf laden kann.



Alle Achtung - den Bildschirm (oder die Monitorwand), die 4000
Datensàtze zugleich lesbar abbilden kann, hàtte ich auch gerne...
;-)

Umgekehrt gesagt: Beim Anwendungsstart brauchst Du doch nur die
Daten(sàtze) zu laden, die auch sogleich angezeigt werden sollen und
können. Alles andere kann doch nachgeladen werden.

Wahrscheinlich wird doch zunàchst auch nur die Mitarbeiterliste zur
Auswahl angezeigt (und selbst da werden wohl kaum alle 4000 Namen
zugleich angezeigt werden können)? D.h. also beim Blàttern durch die
Liste können die weiteren Namen nachgeladen werden. Da der Anwender
auch ein gewisse Zeit brauchen wird (mindestens ein paar Sekunden),
bis er die erste (Maus)Taste drückt, kann in diesem Zeitraum die Liste
schon weiter nachgeladen werden (per Hintergrundthread). Springt er in
der Liste etwa zum Ende, wird eben vom Ende her (zusàtzlich)
nachgeladen; wàhlt er in der Liste per Anfangsbuchstaben, werden eben
auch die entsprechenden Namen nachgeladen.

Sollen komplette Datensàtze angezeigt werden, brauchen auch nur die
nachgeladen zu werden, die eben angezeigt werden sollen. Bei insgesamt
20 Sekunden für 4000 Datensàtze wàren das 0,005 Sekunden Nachladezeit
pro tatsàchlich darzustellendem Datensatz... (ok, ein wenig Overhead
kommt beim Einzelnachladen sicher noch dazu - nehmen wir mal einen
hundertfachen Overhead an, dann ist das immer noch bloß eine halbe
Sekunde...).

Es sei denn, der durchs stàndige Nachladen erzeugte stàndige
Netzwerk-Traffic wàre ein Problem...


Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Hrsg. + Redaktion)

Ähnliche fragen