 |
 |
 |
 |
 |
 |
 |
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
| 8 |
9 |
10 |
11 |
12 |
13 |
14 |
| 15 |
16 |
17 |
18 |
19 |
20 |
21 |
| 22 |
23 |
24 |
25 |
26 |
27 |
28 |
| 29 |
30 |
31 |
1 |
2 |
3 |
4 |
styczeń
luty
marzec
kwiecień
maj
czerwiec
lipiec
sierpień
wrzesień
październik
listopad
grudzień
Ostatnie 20 wpisów...
- PDC 2008, Microsoft Research, dzień 3
- PDC 2008, synchronizacja danych, dzień 2
- PDC 2008, Oslo (wstęp), dzień 2
- PDC 2008, WPF, .NET 3.5 SP1 i .NET 4.0, dzień 2
- PDC 2008, Windows 7, dzień 2
- PDC 2008, VS 2010, "historyczny debugger", dzień 1
- PDC 2008, MEF (.NET 4.0), dzień 1
- PDC 2008, "Dublin", Dzień 1
- PDC 2008, Windows Azure, dzień 1
- PDC (Professional Developer Conference 2008) - PERFORMANCE BY DESIGN USING THE .NET FRAMEWORK
- PDC (Professional Developer Conference 2008) - dzień 0 (prekonferencje)
- Kontrolka siatki dla Silverlight 2.0
- Enterprise Library 4.0 March CTP
- Workflow Foundation i Biztalk Server 2006 R2
- Wersja finalna Visual Studio 2008
- DrDobb's - FlipBook zrealizowany w Silverlight
- Kod źródłowy bibliotek .NET Framework
- Repository Factory - dawny Data Access Guidance Package
- Silverlight 1.0
- Edytor do Business Data Catalog w Sharepoint 2007
|
PDC (Professional Developer Conference 2008) - PERFORMANCE BY DESIGN USING THE .NET FRAMEWORK
Wpis z dnia: 2008-10-27, z godziny: 05:24
"Presesja" składała się z kilku części. Na początku, prelegent pokazał, w jaki sposób "wpleść" elementy związane z wydajnością w cały cykl prowadzenia projektu i jak uczulić zespół na zagadnienia związane z prędkością działania systemu.
Potem pokazane były pewne elementy związane z konkretnymi elementami CLR (motoru .NET). W jaki sposób można optymalizować aplikację pod kątem prędkości działania a także - jak optymalizować zużycie pamięci (dużo uwag o działaniu GC i dzieleniu pamięci). Pod koniec dnia prelegenci skupili się nad aplikacjami ASP.NET i omówili dosyć szczegółowo zarówno sposób działania serwera WWW, jak mierzyć tego typu aplikacje i jak je poprawić by działały szybciej.
Poniżej kilka luźnych (jeszcze nieuporządkowanych) uwag związanych z analizą wydajności :
Jeżeli wydajność aplikacji nie jest mierzona, to nie bardzo wiadomo czy system działa szybciej/wolniej. A, jak wspominał prowadzący inżynierowie powinni mierzyć (pomiarów nie wykonują artyści). Zdefiniowanie "bazowej" wydajności pozwoli na dalsze prace.
Jeżeli budowany jest system na "zlecenie" klienta, to warto cały czas mieć przed oczami jego rzeczywiste wymagania. Jakie elementy naprawdę muszą działać szybko, które są mniej krytyczne i dlaczego.
Nie warto także zabierać się do "optymalizacji" bez określenia budżetu jaki na to można przeznaczyć - co ściśle wiąże się z wymaganiami klienta. Skupiamy się tak naprawdę na "big4" - czyli na optymalizacji zużycia pamięci, procesora, dysku i sieci. Jeżeli optymalizujemy, to musimy brać pod uwagę istniejące ograniczenia zasobów. Ale czasami - jednym ze sposobów optymalizacji może być po prostu zwiększenie zasobów (choć - w niektórych sytuacjach się technicznie nie da tego zrobić).
Jeżeli analizujemy wydajność modelujemy dane tak by one przypominały te, z jakimi mamy do czynienia w realnym środowisku działania aplikacji (inna jest charakterystyka wydajnościowa tablicy gdy elementów jest 1000 a inna - gdy 10 mln).
System przede wszystkim powinien być użyteczny. Nadmierna "rozszerzalność", budowa uniwersalnych frameworków tam gdzie nie jest to wymagane powoduje, że system działa wolno. Podobnie ma się rzecz w przypadku zbyt "obiektowej" struktury aplikacji. Wtedy, w wielu miejscach dane są powielane, konwertowane, różnego rodzaju "konstruktory kopiujące" wiele razy obrabiają niepotrzebnie ten sam zestaw informacji. Warto zachować umiar i zdrowy rozsądek.
Platforma .NET budowana jest przy pewnych założeniach. Na przykład, że większość obiektów żyje krótko (tak zakłada Garbage Collector - automatyczny odśmiecacz). Jeżeli twórca aplikacji przyjmie inne założenia - to jego system będzie działał wolno....
Kod jittowany nie jest dzielony. Jest to kod dynamiczny. Czyli - jeżeli chce się mieć współdzielony kod, to należy użyć NGEN i/lub GAC (ale to ma także inne konsekwencje). Tu mają się zmienić pewne elementy w .NET 4.0.
Natomiast z natury kod niezarządzany (zwykłe DLL-ki) istnieją w jednej kopii równocześnie. Dotyczy to także .NET. Czyli w pamięci np. jest tylko jedna kopia bibliotek .NET Framework.
/CDN/
Komentarze:
Redakcja Computerworld nie ponosi odpowiedzialności za wypowiedzi Internautów opublikowane na stronach serwisu oraz zastrzega sobie prawo do redagowania, skracania bądź usuwania komentarzy zawierających treści zabronione przez prawo, uznawane za obraźliwie lub naruszające zasady współżycia społecznego. Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną.
Ten wpis nie ma jeszcze żadnych komentarzy. Twój może być pierwszy...
|