1 / 20

.NET Performanzanalyse und Optimierung Matej Ciesko

Student Technology Conference 2005. .NET Performanzanalyse und Optimierung Matej Ciesko. .NET Performanzanalyse und Optimierung. Matej Ciesko SSP – Microsoft Academic Program Microsoft Deutschland GmbH i-macies@microsoft.com. Moore’s Law.

ata
Download Presentation

.NET Performanzanalyse und Optimierung Matej Ciesko

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Student Technology Conference 2005 .NET Performanzanalyse und OptimierungMatej Ciesko

  2. .NET Performanzanalyse und Optimierung • Matej Ciesko • SSP – Microsoft Academic Program • Microsoft Deutschland GmbH • i-macies@microsoft.com MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  3. Moore’s Law Anzahl der Transistoren verdoppelt sich alle 18 Monate Intel Corp. MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  4. Microsoft .NET Framework Web Services User Interface Data and XML ADO.NET XML ... ... Base Classes Common Language Runtime Agenda Operating System Hardware MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  5. Ziele • WAS ? • WO ? • WIE ? MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  6. Definitionen Performanz:“Performanz (aus engl. Performance) bezeichnet in der Informatik die Effizienz von Programmen und Hardware bezüglich des Ressourcenverbrauchs und der Qualität der Ausgabe.” [Wikipedia] Optimierung:“Optimizing is the process of changing a program or the environment in which it runs to improve its performance.“ • Problem identifizieren. • Problem evaluieren. • Optimierungstechnik anwenden. MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  7. Hardware • Speicher • “Branch Predictions” • Nebenläufigkeit Itanium2 McKinley MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  8. 2. Profiling Profiling:Präzise Messung (von Zeit/ Clock Ticks) von Hardware und/Software um Aussagen über das Laufzeitverhalten von Applikation treffen zu können. • Hardwarezähler • Windows API and Tools • .NET Profiling und Tools • Demos MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  9. Hardware Counters I • Hardware Counters+ Sehr hohe zeitliche Auflösung • CPU Profiling Hardware • Ereignisdetektoren (event detectors) • Ereigniszähler (event counters) • Performanzereignisse : • Speicher • Pipeline Stalls • Brach Prediction • Ressource Utilization MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  10. Hardware Counters II RDTSC – Read Time Stamp Counter RDPMC – Read Performance Monitor Counter Beispiel: RDTSC(ReadTime Step Counter) __int64 getTick(){ __int64 tmp; void *_ptr = &tmp; _asm{ rdtsc; mov ebx, _ptr; mov dword ptr[ebx], eax; mov dword ptr[ebx+4], edx; } return tmp; } • >2 x CPU • SpeedStep MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  11. Windows Performance API • Access performance counters through Windows API • WMI - Windows Management Instrumentation BOOL QueryPerformanceCounter(  LARGE_INTEGER *lpPerformanceCount );BOOL QueryPerformanceFrequency(  LARGE_INTEGER *lpPerformanceCount ); DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask ); MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  12. .NET Profiling MS.NET 1.1[DllImport("Kernel32.dll")] private static extern bool QueryPerformanceCounter(out long _count); MS.NET 2.0 using System.Diagnostics; … Stopwatch _sw = new Stopwatch(); _sw.Start(); do something _sw.Stop(); _sw.ElapsedTime; // TimeSpan _sw.ElapsedMilliseconds; //long _ws.ElapsedTicks; //long PerfmonWMI MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  13. .NET Profiling Services set Cor_Enable_Profiling = 0x1 set Cor_Profiler={FA0C6E77-AFF4-…992C} COM – Schnittstellen: ICorProfilerCallback ICorProfilerInfo CLR Cor_Enable_Profiling = TRUE _myProfiler CoCreateInstance ICorProfilerCallback::Initialize Demo AP MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  14. .NET 1.1. vs .NET 2.0 • SciMark • (SOR), Monte-Carlo Quadrat, Sparse Matrix Multiplikation, LU Matrix Dekomposition 400 300 MFLOP 200 100 0 1.0 2.0 1.1 HW: 3.2 GHz Pentium 4 (Northwood), 1x CPU, HT disabledIntel 875P Chipset, 1 GB RAMhttp://rotor.cs.cornell.edu/SciMark MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  15. .NET 1.1. vs .NET 2.0 • Linpack 1000x1000 400 300 MFLOP 200 100 0 Mono 1.1.3 .NET 1.1 Debug 1.0 2.0 1.1 HW: 3.2 GHz Pentium 4 (Northwood), 1x CPU, HT disabledIntel 875P Chipset, 1 GB RAMhttp://rotor.cs.cornell.edu/SciMark MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  16. C# vs. C HW: 2.4GHz Pentium 4, 1 GB RAM MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  17. Rotor Microsoft Shared Source CLI - „Rotor“ • ECMA-334 (C#) • ECMA-335 (Common Language Infrastructure) • Microsoft Windows® XP • FreeBSD SSCLI: www.sscli.net MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  18. Zusammenfassung • “Performance Engineering” • 1. Messen: Sind Performanzanforderungen erfüllt? JA  • 2. NEIN:  Finde langsamen Code • Eigener Code? – Optimieren. • Framework Methode? – Weglassen, Alternative suchen. • Nicht ersetzbarer Aufruf? – Optimieren, Alternative suchen. MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  19. © 2003-2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. MS.NET – Performanzanalyse und Optimierung Matej Ciesko

  20. Mehr Informationen • http://www.microsoft.com/perf • http://msdn.microsoft.com • http://www.thespoke.de • http://www.dotnetperformance.com/ • RDTSC: http://www.math.uwaterloo.ca/~jamuir/rdtscpm1.pdf MS.NET – Performanzanalyse und Optimierung Matej Ciesko

More Related