Just Trace jest profilerem pochodzącym od Telerika. Nie jest to cudowne i idealne narzędzie, dość zasobożerne, jeśli chodzi o RAM, ale dość przyzwoicie pokazuje miejsca problematyczne. Tool teoretycznie umożliwia uruchomienie go wraz ze startem aplikacji z Visual Studio - ani razu mi się to nie udało. Głównym obszarem w jakim pracuje są aplikacje ASP.NET, więc na tym obszarze się skupie. Po uruchomieniu widzimy przejrzysty interfejs.
Idąc do opcji "New Profiling Session", żeby sprofilować ASP.NET appke, po starcie Debuga, najlepiej wybrać "Attach to .NET Process" i wybrać IISa (zależnie od konfiguracji w3wp.exe/iisexpress.exe). Po uruchomieniu analizowanej aplikacji, w Just Trace widać zużycie pamięci, wykorzystanie CPU i aktywność na osi czasu.
Na osi czasu można wybrać pewien zakres co w przypadku WebFormsów pozwala wybrać okres w cyklu życia strony i znaleźć problematyczne metody. Na liście widać ile czasu zajęło wywołanie metody oraz jaki procent łącznego czasu zajęło wykonanie danej metody.
Narzędzie pokazuje "Hot spots", czyli miejsca w kodzie, które są często wywoływane oraz "Bottlnecks". W większości wypadków odnosi się to do naszego kodu. Jeśli pod spodem mamy zewnętrzną bibliotekę jak np. NHibernate, to z reguły nie jesteśmy wstanie nic zrobić z takimi miejscami. Po kilku miesiącach użytkowania, jestem zadowolony z tego narzędzia. W paru sytuacjach bardzo pomógł zidentyfikować problematyczne miejsca i rozwiązać skutecznie problemy z wydajnością.
niedziela, 15 grudnia 2013
NHibernate Profiler - czy warto?
W projekcie, nad którym pracuję, korzystam z NHibernate 3.x w połączeniu z biblioteką Fluent. Od samego początku mojej przygody z tym zestawem borykałem się z szeregiem problemów (chyba wszystkimi możliwymi jakich opis można znaleźć na Google) - od zapisywania list przez flushowanie sesji w niewłaściwymi momencie, lazy loading w miejscu gdzie powinien być eager aż do wydajności. NHibernate Profiler nie pomógł rozwiązać żadnego z nich, natomiast jako dość mocno opisywany na sieci, miałem nadzieję, iż pomoże mi w walce z optymalizacją wydajności.
Przyznam szczerze, że jestem rozczarowany. Sugeruje sporo oczywistości - zastąpienie lazy loading zassaniem wszystkiego za jednym razem, nadmierną ilość JOIN'ów itd.
Sam interfejs użytkownika jest dość przejrzysty. Jedyną rzeczą, której brakuję Just Trace względem NHibernate jest pokazywanie ilości sesji i tego co się dzieje w obrębie danej sesji.
Jeżeli macie doświadczenie z Hibernate wliczając w to dobre podstawy teoretyczne, to zdecydowanie nie warto wydawać tych pieniędzy, natomiast jeśli jesteście na początku przygody z NHibernate, to może się okazać bardzo przydatnym narzędziem. Natomiast, jeśli macie doświadczenie i ponadto macie kupiony pakiet kontrolek Telerika obejmujący Just Trace to zdecydowanie polecam to narzędzie. Zdecydowanie w porównaniu do samego NHibernate Profilera, odczujecie dużo większe korzyści z jego wykorzystania. Opis Just Trace'a będzie stanowił osobnego posta.
Przyznam szczerze, że jestem rozczarowany. Sugeruje sporo oczywistości - zastąpienie lazy loading zassaniem wszystkiego za jednym razem, nadmierną ilość JOIN'ów itd.
Sam interfejs użytkownika jest dość przejrzysty. Jedyną rzeczą, której brakuję Just Trace względem NHibernate jest pokazywanie ilości sesji i tego co się dzieje w obrębie danej sesji.
Jeżeli macie doświadczenie z Hibernate wliczając w to dobre podstawy teoretyczne, to zdecydowanie nie warto wydawać tych pieniędzy, natomiast jeśli jesteście na początku przygody z NHibernate, to może się okazać bardzo przydatnym narzędziem. Natomiast, jeśli macie doświadczenie i ponadto macie kupiony pakiet kontrolek Telerika obejmujący Just Trace to zdecydowanie polecam to narzędzie. Zdecydowanie w porównaniu do samego NHibernate Profilera, odczujecie dużo większe korzyści z jego wykorzystania. Opis Just Trace'a będzie stanowił osobnego posta.
Subskrybuj:
Posty (Atom)