Archiv für die Kategorie 'Uncategorized'

Du suchst im Moment im Archiv von Stephanus Blog.

[IE] [TS 6] Performance Analyse von Webseiten


Da auf der TechNet Blogging Platform aktuell keine embedded JS möglich sind, habe ich dies auf meinen privaten Blog ausgelagert:

Hier nun Teil 6 meiner Blogserie zum Troubleshooting des Internet Explorers.

Letzte Woche habe ich über das MakingOff von Cut the Robe berichtet. In dem Bericht erzählen die Entwickler zum Einen von ihrem Resource Loader und zum Anderen von dem Erfolgreichen Einsatz der Developer Tools, insb. des Profilers. Insb. auf diesen möchte ich hier eingehen und das grundsätzliche Vorgehen erklären.

Das Thema Resource Loader habe ich nicht ohne Grund angesprochen, denn Performance Probleme einer Webseite können letztlich aus drei Ursachen entstehen:

  1. Netzwerkprobleme, klingt eindeutig, wird jedoch häufig übersehen und sollte als erstes untersucht werden
  2. Ungeschickte Programmierung, sprich Einsatz eines Algorithmus, der entweder nicht für die Ausführungseinheit/compiler optimiert ist, oder schlicht langsame und/oder überflüssige Schritte
  3. Verklemmungen, bzw. allgemein Warteeinbußen

Heute möchte ich mich insb. um Punkt 2 kümmern und zeigen, wie mittels des Profilers problematische Strukturen/Funktionen erkannt und beseitigt werden können.

Hierfür habe ich ein winziges Demoscript erstellt, welches 4 unterschiedliche Implementierungen mit dem identischen Ergebnis erzeugt:

“Addiere 1 bis der gewünschte Maximalwert erreicht wird und gebe dies aus”. Der Maximalwert hier ist 10000000, wie gesagt, soll ja nur ein Beispiel sein.

Teste es selber:


Result:

Time:

Wobei die Addition wie folgt durchgeführt wird:

  • “Fastest” über “result = result +1”
  • “Fast” über “result +=1”
  • “Slow” über “result++”
  • “Slowest” über “result = result + stupidResult()” und stupidResult nichts anderes macht als “return 1”

Btw. sehr interessant zu sehen, welcher Browser am schnellsten Addieren kann! Winking smile

So, aber wie finde ich nun heraus, woran es genau liegt?

Dazu zur gewünschten Seite/Anwendung navigieren und per F12 die Developer Tools öffnen und zum Reiter “Profiler” wechseln:

image

Anschließend nun das Profiling mittels des Buttons starten. Dabei nicht wundern, dass

  1. während des Profilings das UI nicht upgedatet wird
  2. durch das Profiling die Ausführung stark verlangsamt wird
  3. Je nach Profilingaufwand die Berechnung der UI Ausgabe etwas dauern kann!

Vergleichen wir nun aus dem Beispiel die Ergebnisse der Aufzeichnung eines “Fastest” und des “Slowest” Run:

Fastest:
image

Slowest:
image

 

Der erste Blick sollte zu der größten “Inclusive Time” wandern, denn dies ist der Hauptverursache der Ausführungsdauer. Wenn die Funktion(en), die dort gefunden wird/werden “erwartet langsam” ist, dann ist es sinnvoll als nächstes den Fokus auf die Anzahl von Ausführungen zu richten.

Insb. im zweiten Screenshot fällt natürlich die hohe Anzahl Ausführungen der Funktion “stupidResult” auf. Zusammen mit der Zeit (wichtig: generell ist hier die Inclusive Time von Interesse, auch wenn die im Beispiel identisch ist mit der Exclusive Time) ergibt sich, dass hier knapp 43% der Zeit durch diese Funktion “verbraten” wird, auch wenn jede einzelne Ausführung “nur” 0,000608339 ms gebraucht hat.

Hier sieht man schön, dass “Kleinvieh auch Mist macht/en kann” Winking smile

D.h. der nächste Schritt wäre zu überprüfen, ob die Anzahl hier nicht durch Optimierung reduziert werden kann. Ggf. kann hier auch der Blick auf den Call tree zur Vereinfachung beitragen.

Aber auch die eigentliche Funktion “Calculate” kann optimiert werden, wie die 3 unterschiedlichen Buttons zeigen. Um zu demonstrieren, dass durch etwas mehr Optimierung die Zeit noch deutlich weiter reduziert werden kann, hier noch zwei weitere Buttons:


Result:

Time:

Auch wenn dies natürlich nur ein einfaches Beispiel ist, kann man sehr schön erkennen, dass zwar die Nutzung von objektorientierten Ideen und Verhalten aus “echten” Programmiersprachen nicht immer für die Performance ideal ist. Manchmal ist “unschön” leider auch “schneller”, sprich hier ist die Auslagerung in eine eigene Funktion überhaupt nicht sinnvoll. An vielen anderen Stellen hingegen schon, weil Funktionen i.d.R. auch nicht dermaßen oft aufgerufen werden und damit die Auslagerung nicht der Performance schadet, und dabei auch noch der Übersichtlichkeit/Wartbarkeit dient!

Geschrieben von Stephanus am 16. April 2014 | Abgelegt unter Uncategorized | Comments Off on [IE] [TS 6] Performance Analyse von Webseiten

Microsoft Assessment and Planning (MAP) Toolkit 7.0 beta released

Da die Entwicklung nicht stehen bleibt, insb. mit Windows Server 2012 und Windows 8 vor der Türe und dem bereits releasten System Center 2012, ist es an der Zeit auch das MAP für die neuen Anforderungen zu rüsten.

Dazu haben die Kollegen die erste Beta Version des Microsoft Assessment and Planning (MAP) Toolkit in Version 7.0 über unsere Connect Seite verfügbar gemacht.

Hier die kurze Liste der Key Features, mehr dann auf der Beta Connect Seite:

Key features and benefits of MAP 7.0 Beta help you:

  • Determine your readiness for Windows Server 2012 Beta and Windows 8

  • Virtualize your Linux servers on Hyper-V

  • Migrate your VMware-based virtual machines to Hyper-V

  • Size your server environment for desktop virtualization

  • Simplify migration to SQL Server 2012

  • Evaluate your licensing needs for Lync 2010

  • Determine active users and devices

=> Microsoft Assessment and Planning (MAP) Toolkit 7.0 beta

 

-Stephanus

Geschrieben von Stephanus am 21. May 2012 | Abgelegt unter Uncategorized | Comments Off on Microsoft Assessment and Planning (MAP) Toolkit 7.0 beta released

[IE] Der richtige Browser für IT-Administratoren

Für IT-Administratoren stellt sich immer wieder die Frage, wie mit dem Thema “Browser” umgegangen werden soll/kann/darf/muss.

Zu diesem Thema habe ich einen Gastartikel in der Online Version der Zeitschrift “IT-Administrator” erstellt, hier der Teaser:

 

Die Anforderungen an Browser Administratoren steigen im selben Maße wie an die Browser selbst: Sicherheit/Performance/Administration/Rollout/Patchdeployment – um nur einige der Aspekte zu nennen.

Wie kann das Leben eines Browser Admins vereinfacht werden und warum braucht jedes moderne Unternehmen eine Browser-Strategie? Was bedeutet Sicherheit und Performance im Jahr 2012? Und vor allem müssen/können/dürfen mehrere Browser eingesetzt werden?

Weiterlesen

 

Über Feedback würde ich mich natürlich (wie immer) freuen!

 

Wer in der Öffentlichkeit Kegel schiebt, der muß nachzählen lassen, wie viele er getroffen hat. K. Tucholsky

 

-Stephanus

Geschrieben von Stephanus am 4. May 2012 | Abgelegt unter Uncategorized | Comments Off on [IE] Der richtige Browser für IT-Administratoren

Blog Umzug

Ich habe jetzt mal die Zeit gehabt meinen Server umzuziehen und konnte damit auch (endlich) auf die aktuellen Versionen (php, mysql, wordpress,…).

Allerdings werde ich wohl in nicht allzuferner Zukunft den Blog noch mal umziehen, stay tuned!

-Stephanus

Geschrieben von Stephanus am 16. April 2012 | Abgelegt unter Uncategorized | Comments Off on Blog Umzug

Neuer IE TV Spot!

Seit heute gibt es (endlich) den tollen neuen Internet Explorer TV Spot auf www.internet-explorer.de:

 

Ach und wer den Soundtrack cool findet, hier eine Variante:

 

Viel Spaß!

-Stephanus

Geschrieben von Stephanus am 26. March 2012 | Abgelegt unter Uncategorized | Comments Off on Neuer IE TV Spot!

Mehr als nur Arbeit–mein neuer Blog

Da ich neben meiner Arbeit auch noch ein Privatleben habe und auch hier ein gewisses Mitteilungsbedürfnis verspüre, möchte ich neben meinen Arbeitsblogs:

nun auch noch einen mehr privaten Blog betreiben und euch hier über nicht nur Microsoft Themen informieren.

Viel Spaß dabei!

-Stephanus

Geschrieben von Stephanus am 26. March 2012 | Abgelegt unter Uncategorized | Comments Off on Mehr als nur Arbeit–mein neuer Blog