-
Data: 2010-12-21 19:52:24
Temat: Re: Jaki j?zyk - ceny?
Od: A.L. <l...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Tue, 21 Dec 2010 20:04:53 +0100, Wojciech Jaczewski
<w...@o...pl> wrote:
>Mariusz Kruk wrote:
>
>> Czy ja gdzieś pisałem, że nigdy nie należy optymalizować? Owszem, jeśli
>> ktoś wszystko sortuje bąbelkowo, bo inaczej nie umie i nie jest w stanie
>> zrozumieć, że można inaczej, zapewnie w życiu nie napisze kawałka
>> dobrego kodu. Tego oczywiście nie neguję. Ale już zastanawianie się nad
>> kolejnością porównań żeby zyskać kilka procent szybkości przy sortowaniu
>> kosztem zaciemnienia kodu będzie miało sens tylko w pewnych konkretnych
>> przypadkach.
>
>Akurat sortowanie nie jest chyba dobrym przykładem, bo mało kto rezygnuje ze
>skorzystania z funkcji bibliotecznej. Zwykle te niewydajne rozwiązania
>powstają dla mniej książkowych problemów.
>
>>>To że często nie opłaca się walczyć o 20% wydajności to się zgadzam.
>>
>> Ano właśnie.
>
>I tu jest właśnie ciekawostka... Rzeczywistość pokazuje nam oprócz programów
>szybkich, oraz niezłych ale nie optymalizowanych intensywnie (czyli
>wolniejszych o np. kilkadziesiąt procent), także wiele programów
>beznadziejnie powolnych. Natomiast przy okazji prawie każdej dyskusji na
>temat praktyki robienia powolnych programów ich obrońcy mówią o 1-5-10-15% o
>które nie warto walczyć.
>Jakby podyskutować na temat wydajności takiej np. Javy z jakimś jej
>miłośnikiem, też zazwyczaj zacznie wywody o tanim sprzęcie i o tym że nie
>opłaca się walczyć o każdy procent wydajności - gdy tymczasem każdy nie-
>zaślepiony miłością do tego języka widzi, że w rzeczywistych programach
>różnice wydajności są kilkukrotne, a nie rzędu pojedynczych procentów.
Roznice miedzy czym a czym?... I dlaczego?
kazdy program powinien byc optymalizowany, bo nei ma powodow zby byl
wolny gdy moze byc szybki. Ale przypomneic nelazy stare prawa
Kernighana:
1. Make it working, make it nice later. Czyli ze nie nalezy zbyt wiele
uwagi posiecac optymalizacji na samym poczatku pracy - z wyjatkiem
pzremyslanych decyzji na temat wlasciwych algorytmow i struktur
danych. Liniowe ppzreszukiwania w tablicy zawierajacej milion liczb
jest OK jezeli sie to robi tylko raz, nei jest OK jezeli sie robi
tysiace razy
2. 20% kodu pochlaniania 80% czasu. Trzeba tylko te 20% znalezc,
zoptymalizowac i znalezc nastepne 20% (prawo 80/20). I tak w kolko.
Knuth nawet twierdzi (twierdzil) ze to jest 5/95
Innymi slowy, optymalizacja musi sie odbywac wedle pewnej strategii.
Moje obserwacja mlodych "pistoletow" programistycznych oraz
przesluchiwanie ic hna interview pokazuja ze nei maja oni pojecia o
zlozonosci obliczeniowej algorytmow, sprawnosci i optymalizacji
programow. Nei spotkalem jeszcze faceta z dyplomem M. Sc. ktory by
wiedzial jak "w srodku" dziala Javova HashTable, po co jest "load
factor" i po co jest mozliwosc definiowania poczatkowego rozmiaru
hashtable, i jak owe czynniki wplywaja na sprawnosc. W ogole nikt nei
widzial (jak do dzis) jaka jest zlozonosc operracji wyszukiwania w
hashtable i od czego ona zalezy. Jak rowniez jaki jest koszt
zdefiniowania HashTable z domyslnymi wartosciami. Zeby wymienic tylko
jeden problem.
Takich rzeczy sie na studiach nei uczy.
Robi sie wiec bez zastanowienia rozne idiotyzmy dzieki ktorym programy
sa szybkie jak mucha w miodzie. No, ale zawsze mozna wziac szybszy
procesor.
Bylo tu pare slow o "code review". Code review jest miedzy innymi po
to zeby zobaczyc idiotyzmy ktore "pistolety" robia w sensie
sprawnosci.
A.L.
Następne wpisy z tego wątku
- 21.12.10 20:12 A.L.
- 21.12.10 20:26 Boguś
- 21.12.10 21:17 A.L.
- 23.12.10 11:30 Sebastian Kaliszewski
- 23.12.10 13:59 A.L.
- 23.12.10 15:12 Maciej Sobczak
- 23.12.10 15:24 Mariusz Kruk
- 23.12.10 20:12 A.L.
- 29.12.10 16:42 Sebastian Kaliszewski
- 29.12.10 17:42 A.L.
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=