Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć i jak wysnuwać...

download Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć i jak wysnuwać wnioski

If you can't read please download the document

Transcript of Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć i jak wysnuwać...

  • 1. Uwaga organizacyjnaVisual Studio ma literki due, ale.Sugestia: zapraszam bliej!

2. Wydajno aplikacji dla Windows 8 - jak j mierzy i jak wysnuwa wnioski Tomasz KopaczArchitekt, Microsoft 3. Cel sesji Omwi w jaki sposb podej do wydajnoci aplikacji Windows 8 korzystajcej z usug (REST, NET.TCP). Gwnie jak si dowiedzie, gdzie jest problem to najwaniejsze 4. Wydajno - fazy, kada TAK SAMO wana Tworzenie Projekt Architektura Styl pisania kodu Analiza Instrumentalizacja Testowanie Wnioski Wiedza, kiedy wystarczy Dotyczy Kodu Usug Stylu wywoa usug! Postaci dystrybucji aplikacji Formatu obrazw graficznych XAML/HTML (UI) Uytych stylw Interakcji z uytkownikiem Animacji 5. Dlaczego wydajno jest wana? Powody zych ocen 80% 70% 60% 50% 40% 30% 20% 10% 0% Zamroenia aplikacjiPadyWolne reagowanie Due zuycie baterii(Za: http://www.businessnewsdaily.com)Warto pamita: Uytkownik moe POPRAWI ocen 6. Z drugiej strony producenci sprztu 45 nm (2008) 32 nm (2012) 22nm (2014) i 11nm (Dark Silicon)PCARM Mniejsze ukady / urzdzenia2012 100 mm100 mm Procesory Rodzina ARM | x86 (Intel / AMD) Pomys Connected Standby Zmienna czstotliwo od 0.1 do 2.5 Ghz 1995 ATX, Mona mie wicej tranzystorw ale nie mona ich zasili rwnoczenie Wyczane dyski, porty USB, karty sieciowe usypianie Nie lubimy wentylatorw, ciesze, mniejsze305 mm 7. GPU te wane X86 (NVIDA/AMD/Intel Gen 5) Baza: Immediate Mode Renderer Te cicie scen i sortowanie z TBDR ARM / Intel Gen 2-4 / XBox360 Baza: Tile Based Deferred Rendering 16x16 64x64 piksele Te wiele przej Te modele hybrydowe HW pasuje do modelu D3D / OpenGL / webGL Nie skomplikowane sceny GPU rysuje skadowe w kolejnoci, w pamici z geometri Wysoka przepustowo pamici Dobrze Anti-Aliasing / Rysuje wszystko, ale kosztuje energi Shader Skomplikowana geometria ok INNNE style programowania 8. Znajd rnic 9. Klient tego nie rozumie Dlaczego mj tabletoslatelaptop za 5000z dziaa wolniej ni stary (to e dziaa duej na baterii zwykle umyka) (to e ma wolny internet te)Trzeba mu zbudowa aplikacj dziki ktrej bdzie myla e jest szybciej. Modern UI Fast & Fluid 10. Trzy pojcia zwizane z wydajnoci Szybkie: Byskawiczna reakcja na interakcje z uytkownikiem start aplikacji, nawigacja pomidzy stronami, zmiana orientacji, nacinicie przycisku Pynne: Gadkie przejcia przesuwanie strony, animacje, nie czekanie na wypenienie listy, szybka zmiana orientacji Efektywne: Uwzgldnia ekosystem czas pracy na bateriach, pami i dysk, adne okrelenie: pay for play 11. Cele dla szybkiej aplikacji Klasa interakcji Szybko TypowePercepcja uytkownika Minimalnie zauwaalne opnienie Szybko, ale nie bardzoCelMaxPrzykady100ms200msPokazanie app bar, pierwsza odpowied na nacinicie przycisku (e nacisn!)300ms500msZmiana rozmiaru, Semantic ZoomResponsywneNie szybkie, ale czuje dziaanie500ms1 sekPrzejcie do innej strony, wznowienieStartKonkurencja; 0-11 sek3 sekZimny start aplikacji (od zera)CigeAu, nie reaguje500ms5 sekPobranie pliku z WWWNa uwiziDugo, uytkownik przecza aplikacj 500ms10 sekInstalowanie wielu aplikacji z Windows Store 12. Przykad aplikacja przepisw / readeraSzukanie (przepisu)Animacja przejcia uruchomionaSzybko (100-200 ms)ResponsywnoWczytana lista skadnikw, bez obrazkwResponsywne (500 ms 1 s)Pena widocznoPrzejcie do strony z przepisamiDowiadczenie uytkownikaPierwsza odpowiedScenariuszMoment w czasieCay kontekst wczytanyCige (500 ms 5 s)Pierwsza odpowiedPrzycisk wyszukiwania puszczonySzybko (100-200 ms)Pena widocznoLista lokalnych przepisw pokazanaTypowe (300-500 ms)Klasa interakcjj 13. Zaraz, 500 ms Wywoanie Web Services Dostp do pojemnika Pobranie danych Wysanie do klienta Odebranie wyniku (przepakowanie, deserializacjia) Zbindowanie z siatk, budowa drzewa obiektw Wywietlenie Dyplomatycznie ujmujc: Trudne (dokadniej nie uda si) 14. Co warto analizowa? Procesor GPU Sie PamiEnergia 15. Jakie mamy narzdzia? (WinDBG + SOS (ale to ju raczej nie w 2013 roku)) (Event Log raczej dla admina) (Debugger) Visual Studio Profiler Szczegowa analiza dziaania aplikacji Performance Counters (Liczniki wydajnoci) Szybkie raportowanie czy co jest uywane / woane; przyczynek do dalszych analiz Event Tracing for Windows (ETW) Kombajn duo o nim pniej 16. W8 - Performance and Diagnostics hub Pojedynczy punkt startu do wszystkich analiz HTML UI Responsiveness XAML UI Responsiveness JavaScript Memory JavaScript Function Timing Energy Profiler CPU Sampling (C++/.NET) Co mona analizowa Projekty Visual Studio Dziaajce appsy Zainstalowane Appsy 17. HTML UI Responsiveness Pomaga wykry dlaczego aplikacja wolno startuje albo nie zachowuje si w sposb pynny. Wykrywane problemy (m. innymi) Czas adowania treci (obrazy itp.) Ukad / obliczenia zwizane z CSS Wykonanie skryptw / odmiecanie Opnienia zwizane z sieci Rysowanie poza obszarem, wielokrotne itp. (tzw. overdrawing)Visual Studio 2012 Update #2 18. JavaScript Memory Pozwala wykry nieefektywne wykorzystanie pamici Podglda rozmiar i liczb wszystkich obiektw Pokazuje najwiksze pojedyncze instancje obiektw Pokazuje referencje do instancji ktre uniemoliwiaj odmiecanie Pokazuje JavaScript Elementy Document Object Model Obiekty WinRT Visual Studio 2012 Update #1 19. JavaScript Function Timing Profiler bazuje na instrumentacji Pokazuje czas wykonania poszczeglnych metod Pokazuje liczb wywoa danej metody Tylko pokazuje czas wykonania JavaScript A nie czynnoci wykonywane przez inne systemy (np. renderowanie UI w DirectX) (Te dla aplikacji w przegldarce) Visual Studio 2012 20. Dwa wane terminy - Inclusive and exclusive function Alpha() {30Beta();Alphafunction Beta() {50 }80Beta}30 5050 21. DEMO Hilo JavaScript UI JS Performance 22. XAML UI Responsiveness Pozwala identyfikowa problemy przy starcie aplikacji i znale przyczyn niskiej liczby ramek na sekund Parsing Layout App Code (Kod aplikacji) XAML - Inne elementy zajmujce CPU Dziaa zarwno dla C++ jak i .NET Podstawy (tak dla przypomnienia) VSync kiedy piksele maj by rysowane Frame co si dzieje pomidzy VSync Sztuka polega na przeplataniu GPU i CPU co ten profiler pokae! Jest te debugger DirectXVisual Studio 2013 23. DEMO PhotoSky - XAML Hilo DirectX (pokaza e si da) ; sesje Rafaa 24. Demo - analiza zuycia energii (technicznie najtrudniejsze!) 25. Proces postepowania - postpowanie HTML - UI Responsiveness Loading Scripting: Uruchamiamy profiler dla JavaScript Timing GC: Uruchamiamy profiler dla pamici GPU: A to innymi narzdziami za chwil XAML - UI Responsiveness Parsing Layout App Code XAML Other 26. .NET Memory Analysis Pozwala wykry nieefektywne wykorzystanie pamici Podglda rozmiar i liczb wszystkich obiektw Pokazuje najwiksze pojedyncze instancje obiektw Pokazuje referencje do instancji ktre uniemoliwiaj odmiecanie Celem jest analiza w produkcji Analiza oparta o zrzut pamici (dump z heap) Bez ledzenia live Wymagao by instrumentalizacji ktrej nie ma w WinRT Visual Studio 2013 27. DEMO Analiza zuycia pamici WebSampleLeak 28. Usugi (i procesy) ASP.NET - Performance Wizard CPU Instrumentalizacja = dynamiczna podmiana MSIL = nie dziaa w WinRT A generalnie rzadko jej naley uywa Sampling - Statystyczne zuycie procesora (rozdzielczo milisekundowa). Rejestruje ktre funkcje zuywaj najwicej CPU Zrzut stosu co milisekund; drobniejsze umykaj Pokazuje zagregowany raport Instrumentation - Bardzo szczegowe dane o czasach wykonania, mona porwnywa wzgldne czasy w kodzie; zwalnia dziaanie .NET dodajc do MSIL kod rejestrujcy. .NET Memory Allocation - Informacje o alokacjach pamici i odmiecaniu w .NET Resource Contention Data (Concurrency) - Zalenosci pomidzy wtkami; gwnie jak na siebie czekaj i si blokuj Tier interaction Profiling - Interakcje pomidzy warstwami Pokazuje list zapyta SQL wywoywanych przez aplikacj / usug 29. Wstp - co to ETW? Gromadzi dane z rnych providerw O rnych GUID-ach / nazwach Te wasne provideryLiczniki wydajnoci Komunikaty Agregaty (sumy) Bardzo, bardzo szybkie Moe by wyczone (w czasie dziaania) Dodatkowe informacje (tagi) Korelacja CZASOWA KontrolerKontrola sesjiOdblokowuje/ BlokujeWindows ETW SesjaBuforKonsument czytajcy 30. Scenariusz Prosta usuga z danymi, klient, profiler 31. Opcje usug (realne) WebAPI Oparte o REST cile zwizane ze stosem HTTP OWin te dowolny hosting Brak formalnych metadanych Ale strona /help JSON / XML / po prostu binarny strumie w HTTP Odata dla danych; ma formalne metadane! Ostatnia aktualizacja tydzie temu WinRT - naturalne WCF SOA Enterprise Services COM+ Dowolnych hosting (ma wasny stos komunikacyjny) Moe mie binding REST Automat WCF Data Services Ostatnia dua aktualizacja 4.0 4.5 tooling, WebSocket WinRT Nie WS-Security i okolice Binding HTTP / NET.TCP Zabawy z bezpieczestwem 32. Bardzo wany - styl interakcji Usuga do pobrania pocztkowej zawartoci ekranu startowego Usuga do pobrania listy tekstowej z nazw Potem z opisami Albo do pobrania konkretnego opisu Usuga do pobrania obrazka Wano pobranych informacji (cache) OData $select duo problemw rozwizuje Synchronicznie / niesynchroniczne Na koniec protok nie jest istotny Serializacja troch tak! 33. Demo Implementacja i analiza w Visual Studio Profiler Usugi OData vs NET.TCP (w pewnym sensie) 34. Windows Performance Toolkit Windows Performance Recorder (WPR) Pozwala przechwyci log z informacjami ktre chce si potem szczegowo analizowa WPRUI jak kto nie lubi linii polece Windows Performance Analyzer (WPA) Pozwala przeprowadza dogbn analiz i korelowa logi Ale nie do poziomu linii kodu 35. Demo Prawie to samo, ale przy uyciu ETW 36. Windows Performance Toolkit 37. Narzdzia do ETW Wpr / wprui do konfiguracji klikalnej LOGMAN do skryptw Create tworzy liczniki, data collector Query pyta data collector Query Providers Start | Stop | Delete | Update Import | Export import do /z XML counter | trace | alert | cfg Microsoft Windows Performance Toolkit Otwiera pliki ETL + filtrowanie + nawigacja Specjalne narzdzia do XAML! Te recorder WPA 38. Logowanie operacji 39. Usugi logowanie operacji Problem 0 Format pliku i analiza Problem 1 Wydajno Problem 2 Korelacje (no ale)Problem 3 Zmusi programist do logowania 40. Logowanie - Usuga Wykorzystujemy Enterprise Library Semantic Logging (czyli wrapper do ETL) 41. rdo [EventSource(Name="MyCompany")] public class MyCompanyEventSource : EventSource { public class Keywords { public const EventKeywords Page = (EventKeywords)1; public class Tasks { public const EventTask Page = (EventTask)1; [Event(1,Message = "Application Failure: {0}", Level = EventLevel.Critical, Keywords = Keywords.DataBase, Task=Tasks.DBQuery )] internal void Failure(string kom) { if (this.IsEnabled()) this.WriteEvent(1, kom); } public static readonly MyCompanyEventSource Log = new MyCompanyEventSource(); 42. Potem MyCompanyEventSource.Log.Failure("Bd1"); MyCompanyEventSource.Log.PageStart(12, "http://aaa.com"); Mona te skorzysta z ReactiveEx: ObservableEventListener listener = new ObservableEventListener(); listener.EnableEvents(MyCompanyEventSource.Log, EventLevel.LogAlways, Keywords.All); listener.LogToConsole(); 43. Demo Logowanie ETW usuga / kod / co Komunikacja z profilerem Wykorzystujemy Enterprise Library Semantic Logging (czyli wrapper do ETW) 44. Logowanie - klient Wykorzystujemy to co wbudowane w kernel 45. Klient W8 - LoggingChannel LoggingChannel myLoggingChannel = new LoggingChannel("MyLoggingChannel"); myLoggingChannel.LogMessage(LoggingLevel.Information, "Welcome to WinRT Tracing!"); LoggingActivity myLoggingActivity; using (myLoggingActivity = new LoggingActivity("MyLoggingActivity", myLoggingChannel)) { // Zarejestrowanie pocztku // Wykonywany kod } // Zarejestrowany koniec myLoggingChannel.SaveToFileAsync(...) (zwykle logowanie do innego plik rwnolegle) 46. Demo Logowanie ETW PrefView najprociej pokaza komunikat 47. Dygresja a co z baz? Korelacja klient serwis baza Tak samo - logman query providers logman query providers pid 2720 (id procesu) (W SQL to si mdrze nazywa Extended Events) http://technet.microsoft.com/en-us/library/dd822788(v=sql.100).aspx A potem kwestia logowania odpowiedniej grupy providerw Jest jeszcze Tier Interaction Profiling Analiza jakie polecenia SQL s woane przez aplikacje; raczej klient / serwer lub proste usugi WWW 48. Sekundowe Demo Skd wzi profile xperf tracerpt logman Perfview http://www.microsoft.com/en-us/download/details.aspx?id=28567 49. Liczniki wydajnoci 50. Najszybszy i najprostszy sposb raportowania postpw Kto musi mie uprawnienia by stworzy licznik Potem aplikacja moe go uywa. Licznik moe by Globalny (jeden dla serwera, szybszy) Per instancja (np. proces, aplikacja WWW, czy pula aplikacji) Typy (System.Diagnostics.PerformanceCounterType): AverageBase (dzielnik) | AverageCount64 | AverageTimer32 CounterDelta32 (delta 2 prbek) | CounterMultiBase | CounterMultiTimer CounterTimer | CountPerTimeInterval32 | NumberOfItems32 RateOfCountsPerSecond32 | SampleBase | SampleFraction 51. Kod System.Diagnostics.PerformanceCounterCategory.Delete("TKPerformance"); CounterCreationDataCollection CounterDatas = new CounterCreationDataCollection(); CounterCreationData cdCounter1 = new System.Diagnostics.CounterCreationData(); cdCounter1.CounterName = "Counter1"; cdCounter1.CounterHelp = "help string1"; cdCounter1.CounterType = PerformanceCounterType.NumberOfItems32; cdCounter2.CounterType = System.Diagnostics.PerformanceCounterType.ElapsedTime; CounterDatas.Add(cdCounter1); CounterDatas.Add(cdCounter2); System.Diagnostics.PerformanceCounterCategory.Create("TKPerformance", "Pomoc nawet po polsku ", PerformanceCounterCategoryType.SingleInstance, CounterDatas); //Zgaszajcy: pcCounter1 = new PerformanceCounter("TKPerformance", "Counter1",false); pcCounter1.Increment(); pcCounter1.RawValue = sw.ElapsedMilliseconds / 1000; 52. Uwaga! To nie koniecznie musi by licznik wydajnoci Liczba operacji dodania do koszyka Popularno mechanizmu zakupw Liczba logowa Popularno aplikacji To jest uywane do tego, aby wiedzie czy mamy problem w aplikacji w PRODUKCJI Za maa liczba operacji ni zwykle Duy problem gdzie! 53. DEMO Liczniki wydajnoci pokaza na szybko 54. A jak si maj liczniki do ETW? Po prostu: logman.exe create counter High-CPU-Perf-Log -f bincirc -v mmddhhmm -max 250 -c "LogicalDisk(*)*" "Memory*" "Network Interface(*)*" "Paging File(*)*" "PhysicalDisk(*)*" "Process(*)*" "Redirector*" "Server*" "System*" "Thread(*)*" -si 00:00:05 (kolejne rdo danych uzupeniajce statystyki) Administrator: rodzina System Center 55. Testowanie usug Ale woanych z W8 56. Sytuacja Aplikacja woa jakie usugi Dziaa jak zwykle wolno No tak, analiza kodu by wiedzie jakie usugi woa aplikacja (skomplikowana logika, czas) (testowanie wszystkich nie odpowie na pytanie o flow) Idea: Coded UI Test (albo klikanie) Przechwycenie Fiddlerem komunikacji (to REST ) Zbudowanie na podstawie Fiddlera Web Test Uruchomienie WebTest ktry bdzie symulowa rzeczywisty ruch aplikacji 57. DEMO Fiddler oraz WebTest WebTest jako wejcie dla Profilera 58. Ale zaraz, jak to wszystko zagregowa Load Test mona monitorowa RNE serwery System Center te zapewnia zintegrowany widokA programista moe poklei plik ETL xperf merge Logman merge Czy po prostu zabawy XML-em 59. UI i KOD (tak oglnie); bez przykadw 60. Uwagi cz 1 Wczytywa z opnieniem to co nie jest niezbdne! Ale rysowa przed VSync wicej odrobin Panning 3/6 stron na SEKUND (tak planowa) Animacje nie s za darmo Patrze co jest uniewaniane IList, ISupportIncrementalLoading, INotifyCollectionChanged prosty sposb ograniczenia liczby elementw w licie Kolekcja moe mie wicej, ale pojemnik moe pokaza tylko cz Virtualized (ItemsControl jest takim pojemnikiem!) Low level API! GridViewItemPresenter | ListViewItemPresenter | GoToElementStateCore ListViewBase.ContainerContentChanging przytostowe aktualizacje Phase | RegisterUpdateCallback | Handled | ItemContainer | Item | InRecycleQueue | ItemIndex Async vs normalny Task w tle! 61. Uwagi cz 2 W tle: HTML: WinJS scheduler vs. setTimeout/setImmediate. XAML: Operacje Async do przygotowania danych, Dispatcher do aktualizacji UI. Wczytywanie z opnieniem te elementw UI: Zwija niewidoczne elementy HTML: display:none. XAML: Visibility=Collapsed. XAML: iteracyjne adowanie XAML HTML: WinJS fragment Orientacja VisualStateManager | HTML CSS a nie JS (to zawsze drosze) Media: MediaElement.IsFullWindow 62. Windows 8.1 Pakowanie Wiele aplikacji uywajcych tego samego framework / DLL = mog go wspdzieli Wsplne zasoby + szczegy dla danego jzyka XAML Binary Format (XBF) (VS samo robi) Wydajniejsze formaty obrazw JPEG YCBCR (statystycznie mniejszy ni RGB) Losless (tzw. BC1-BC7 z wsparciem sprztowym) Generalnie wydajno Szybszy start | Szybszy databinding | Mniejsze zuycie pamici Lepsze (szybsze) domylne szablony VS Przesuwanie (panning) grup szybsze 2 razyu Lepsza wydajno grafiki (te media) W duym uproszczeniu po prostu rekompilacja spowoduje e aplikacja zadziaa szybciej. Uwaga na *Panel troch inaczej patrz tu. 63. A co jak nadal za wolno? Skorzysta z tego e to WinRT 64. XAML + DirectX + JavaScript? XAML (dobre narzdzia) Kontrolki Dobre narzdziaDirectX Edycja grafiki Wykresy GryJavaScript Treci osadzone (np. z Web) 65. DEMO SurfaceImageSource i inne WebView RenderTargetBitmap 66. Podsumowanie 67. To nie jest proste, Kosztuje (czas) Planowanie i okrelenie ogranicze / zaoe - podstawa Profiler mwi kiedy do Programista bdzie optymalizowa do koca Postawi wydajno na rwni z architektur / struktur kodu Skalowalno vs Wydajno W Windows 8 UI te moe by czynnikiem zwalniajcym Ale moe atwo zamaskowa dugo trwajc operacj Nie ma ZOTEGO SPOSOBU OPTYMALIZACJI za duo czynnikw 68. Pytania, uwagi [email protected] 69. Wypenij ankiet i wygraj nagrody! Organizatorzy MTS czytaj wszystkie ankiety.Wystarczy 5 minut Twojego czasu na wypenienie ankiety!Dziki nim masz realny wpyw na konferencj oraz merytoryk i prelegentw kolejnego MTS.Masz szans wygra m.in. wejciwk na MTS 2013 (25x) oraz inne nagrody.Gdzie i jak? Ankiety dostpne s online na stronie konferencji (konferencjamts.pl) Mona je wypeni od dzi, a do 11 listopada 2012 70. 2013 Microsoft Corporation. Wszelkie prawa zastrzeone. Microsoft, Windows oraz inne nazwy produktw s lub mog by znakami towarowymi lub zastrzeonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje maj charakter wycznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ADNYCH GWARANCJI (WYRAONYCH WPROST LUB DOMYLNIE), W TYM TAKE USTAWOWEJ RKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO INFORMACJI ZAWARTYCH W TEJ PREZENTACJI. 71. XAML + DirectX Windows Store app using XAML (C++, C#, VB) Powierzchnia DirectX jako pdzel XAML: SurfaceImageSource VirtualSurfaceImageSource Jak wyej, ale opcja uniewanianiaWindows Runtime / C++C++ cisa integracja z DVM (kompozycj), niskie opnienia: SwapChainPanel SwapChainBackgroundPanelXAML FrameworkDirect 3DDirect 2DDirect WriteMediaAppTheme& PVLInputWindows 8 subsystem 72. XAMLDirectX 73. VirtualSurfaceImageSource interface IVirtualSurfaceImageSourceNative: ISurfaceImageSourceNative { RegisterForUpdatesNeeded(IVirtualSurfaceUpdatesCallbackNative *pCallback); GetUpdateRects(RECT *pUpdates, DWORD count); GetUpdateRectCount(DWORD *pCount); Invalidate(RECT updateRect); }; interface IVirtualSurfaceUpdatesCallbackNative: IUnknown { UpdatesNeeded(); }; 74. SurfaceImageSource 8.1 (1) Wsppraca z DWM (kompozycje) Szybciej Bezporednie rysowanie na DeviceContext Rysowanie na wielu SurfaceImageSource + Flush na koniec Generowanie wielu miniaturBez trybu wsadowegoZ kontekstem D2D / batchD2DWorkApp Draws Surface 3App Draws Surface 2App Draws Surface 1FlushWorkFlushWorkApp Draws App Draws App Draws Surface 1 Surface 2 Surface 3FlushD2DWorkWorkWorkFlush 75. SurfaceImageSource 8.1 (2) Wiele wtkw! Wtek UIWtek renderujcyKomunikacja midzy wtkami 76. SurfaceImageSource interface ISurfaceImageSourceNativeWithD2D: IUnknown { SetDevice(IUnknown* device); BeginDraw(RECT updateRect, REFIID iid, void **updateObject POINT* offset); SuspendDraw(); ResumeDraw(); EndDraw(); }Te metody mona woa z DOWOLNEGO wtku 77. SwapChainBackgroundPanel (przeczanie ekranw) Penoekranowa tre DirectX jako to Mae opnienia Games, FreshPaint Moe renderowa na niewidocznym ekranie by uzyska (pynno) (Brak ogranicze w z-order) Kompozycje, dugie acuchy, wiele nakadajcych si obiektw, Informacje o zmianie rozmiaru Moe mie niezalene sterowanie dotyk, piro, mysz 78. WebView? Bezproblemowa integracja z XAML Kontrolki do nawigacji Zdarzenia zwizane z cyklem ycia Renderowanie lokalnej treci przez URI Zwikszone bezpieczestwo dziki temu e mona predefiniowa list URI z treci w podpisanym cyfrowo manifecie Dobra wsppraca z RenderTargetBitmap (to nie tylko tu, ale) 79. (Debugger w VS 2013) 80. (Kilka drobiazgw) ledzenie (i profilowanie) kontraktw Do not launch, but debug my code when it starts Cykl ycia (Suspend / Resume / Shutdown) szczeglnie Profiler moe te by doczony pniej