-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!n
ews2.glorb.com!news-in-01.newsfeed.easynews.com!easynews!core-easynews-01!easyn
ews.com!en-nntp-09.dc1.easynews.com.POSTED!not-for-mail
From: A.L. <l...@a...com>
Newsgroups: pl.comp.programming
Subject: Re: Jaki j?zyk - ceny?
Message-ID: <r...@4...com>
References: <s...@e...rdc.pl>
<iegat4$46q$1@inews.gazeta.pl>
<s...@e...rdc.pl>
<iel8kn$rhs$1@inews.gazeta.pl>
<s...@e...rdc.pl>
<iem59h$f13$1@inews.gazeta.pl>
<s...@e...rdc.pl>
<7...@4...com>
<s...@e...rdc.pl>
<ieoddm$4do$1@inews.gazeta.pl>
<s...@e...rdc.pl>
<ieqtok$4og$1@inews.gazeta.pl>
X-Newsreader: Forte Agent 4.2/32.1118
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
Lines: 75
X-Complaints-To: a...@e...com
Organization: Forte Inc. http://www.forteinc.com/apn/
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will
be unable to process your complaint properly.
Date: Tue, 21 Dec 2010 13:52:24 -0600
Xref: news-archive.icm.edu.pl pl.comp.programming:187802
[ ukryj 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
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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??
Najnowsze wątki
- 2025-02-12 Warszawa => Expert Recruiter 360 <=
- 2025-02-12 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-12 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-12 Kraków => PHP Full Stack Developer <=
- 2025-02-12 Karta dźwiękowa stereo
- 2025-02-12 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-12 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-12 Łódź => NodeJS Developer <=
- 2025-02-12 Błonie => Sales Specialist <=
- 2025-02-12 Dziwne zachowanie magistrali adresowej w 8085
- 2025-02-11 Mini pecet
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=