-
Data: 2012-03-28 15:32:27
Temat: Re: wydajnosc wyjatkow
Od: " M.M." <m...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Edek Pienkowski <e...@g...com> napisał(a):
> Dzisiaj różnica w szybkości działania jest prawie żadna, o ile
> wyjątek nie jest rzucony. Jest narzut na obsługę wyjątku w postaci
> kodu obsługującego (czy masło jest wystarczająco maślane? ;) i
> straconych optymalizacji - to już zależy od języka i implementacji
> wyjątków.
Dziękuję z utwierdzenie mnie w tym przekonaniu :)
> Musi być kod robiący wszystko to, co jest przewidziane. W C++ oznacza
> to destrukcję lokalnych obiektów, sprawdzenie catch-clauses i
> unexpected-handlera, poza samym stack unwind.
No tak, ale to wszystko musi także wykonać bez wyjątków w
momencie gdy napotyka return? Hmmm a tak na marginesie gdy napotyka
longjump to co robi? Też robi destrukcje obiektów na stosie?
> > Gdy kompilator napotyka koniec sekcji catch to co musi zrobić? Chyba tylko
> > musi usunąć ze stosu to co wcześniej na nim zapamiętał. Więc o wydajności
> > decyduje sposób w jaki to kompilator zapamiętuje.
> (?) Nie kompiluje mi się to co napisałeś.
Nie wiem dokładnie jak nowoczesne kompilator/optymalizatory realizują obsługę
wyjątków. Wyobrażam sobie to jako jakąś strukturę stosową. Gdy
wykonanie programu dochodzi do sekcji try to na tą strukturę odkładana
jest jakaś informacja. Więc gdy wykonanie programu dojdzie do końca
sekcji catch to coś z tej struktury stosowej musi zdjąć. Jest to
związane z jakimś narzutem. Nie wiem na pewno, ale wydaje się że ów
narzut jest bardzo mały.
> Sam fakt, że wyjątek ma stos zmienia optymalizacje. W c++
> stos zależy od optymalizacji; w Javie generalnie nie, ale czasami
> tak.
Hmmmm zapewne tak. Ale czy to nie jest podobne utrudnienie optymalizacji
dla kompilatora jak po dodaniu instrukcji if? Kompilator generuje gorszy
kod gdy są wyjątki?
> Sam fakt, że JIT domyślnie upraszcza zachowanie tak, że zmienia
> semantykę NPE, świadczy o tym, że architekci uznali że warto.
Hmmm to chyba jednak zrobię kiedyś przy okazji jakiś mały benchmark :)
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 28.03.12 16:11 Edek Pienkowski
- 28.03.12 17:47
- 28.03.12 19:43
- 29.03.12 09:01
- 29.03.12 10:39
- 30.03.12 15:24 Adam Wysocki
- 30.03.12 15:49 M.M.
- 30.03.12 18:56 bartek szurgot
- 30.03.12 20:54
- 28.03.12 09:00 Roman W
- 28.03.12 12:18 Krzysiek Kowaliczek
- 29.03.12 19:23 Tomasz D
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-13 Lublin => Delphi Programmer <=