-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.m10r2.
onet.pl!niusy.onet.pl
From: m...@t...pl
Newsgroups: pl.comp.programming
Subject: Re: jaki wybrac jezyk?
Date: Thu, 18 Aug 2011 02:42:05 +0200
Organization: Onet.pl
Lines: 64
Sender: n...@n...onet.pl
Message-ID: <5...@n...onet.pl>
References: <j2hgke$jqd$1@node2.news.atman.pl>
NNTP-Posting-Host: newsgate.m10r2.onet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Trace: newsgate.onet.pl 1313628126 29358 213.180.150.14 (18 Aug 2011 00:42:06 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Thu, 18 Aug 2011 00:42:06 +0000 (UTC)
Content-Disposition: inline
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 89.229.34.123, 10.174.28.54
X-User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Xref: news-archive.icm.edu.pl pl.comp.programming:191986
[ ukryj nagłówki ]> On 08/17/2011 11:56 PM, m...@t...pl wrote:
> To ja ci powiem, że został popełniony jeden generalny. Kiedyś faktycznie
> optymalizacja to assembler albo bardzo blisko. Dzisiaj, fakt, jakieś
Nie chcę powiedzieć że umiem się perfekcyjnie posługiwać kompilatorami.
Po prostu - przyszedł mi pomysł do głowy, napisałem, zmierzyłem czas,
gdy było szybciej to zostawiałem, gdy wolniej to cofałem.
> multimedia i podobne niektórzy jeszcze rzeźbią w assemblerze, czy
> też wstawki typu atomiki, których dotychczas nie było, i ok. Natomiast
> większość optymalizacji - o ile wiem - to umiejętne użycie kompilatora.
> Czasami wydaje mi się, że niektórzy nie uświadomili sobie, że
> zarówno procki i kompilatory "deczko" się zmieniły przez ostatnie
> dziesięć lat. Oczywiście, niektóre rzeczy były i są kosztowne,
> trzeba kod pisać inaczej, żeby kompilator mógł go optymalizować,
> bo robi tylko te przekształcenia, które może zrobić mając dostępne
> założenia - zazwyczaj wystarczy mu przeszkody usunąć z drogi. Nie jest
> to darmo, ale nie ma to większego wpływu na pisanie poprawnego
> kodu. Range check w przypadku większych pętli zazwyczaj sprowadza się
> do jednorazowego >=start <end - co i tak kompilator musi zrobić,
> żeby np. wygenerować prologi przekształconych pętli, więc taki check
> w kodzie źródłowym paradoksalnie ułatwia mu pracę (ok, jak to zwykle
> z optymalizacjami bywa: czasami, nie zawsze, zależy, itd.).
Nie wiem... dawno nie jestem na bieżąco z nowymi prockami i kompilatorami.
Jak pisałem wyżej, bazowałem na eksperymencie - zmiana kodu i pomiar czasu.
> Co do optymalizacji i Javy, to różnie mówią. Znam testy gdzie Java i C++
> były podobne. Znam takie, gdzie Java była wolniejsza. Znam też takie,
> że w HPC używają Javy, ale tylko ze słyszenia - kiedyś googlnę, nie
> spędza mi to snu z powiek łagodnie mówiąc.
Java używa wszędzie new, nie można położyć statycznego obiektu na stosie.
Mocno rozrzuca dane po przestrzeni adresowej. Słabo działa cache, a sama
alokacja trochę czasu też zajmuje. To są trzy wady wydajnościowe Javy:
częsta allokacja, słabo działa cache, na przechowanie danych trzeba więcej
pamięci niż rozmiar danych. Niektóre programy mogą unikać tych krytycznych
sytuacji i dlatego takie różnice w porównywaniu do C/C++. Program obliczeniowy
w Javie który przetwarza wielokrotnie te same dane w pętlach działa bardzo
szybko. Skąd wiem? Też z pomiarów.
> Są. Ale sam valgrind ma "suppresions" czy jakoś tak to się nazywa, co
> obchodzi znane problemy z libami, ma też opcję "wygeneruj suppresion",
> jak już nie ma innego wyjścia pod każdym upierdliwcem wypluje, jak go
> wyłączyć.
Nie znam tego narzędzia. Przed chwilą poszukałem przykładu w necie,
odpaliłem i nie wyświetlił żadnych problemów. Ale pewnie użyłem jakiś
mały procent jego możliwości.
> Testy tego możliwie małego kawałka kodu też. Nie pisałem algorytmów
> szachowych, nie wiem, czy dają się tak podzielić.
Raczej trzeba trochę większe bloki testować. Zależy jaki test...
> braku ifa nie wyniucha - szkoda ;) Przydałby się tool, który bierze dwa
> algorytmy, powiedzmy, że różniące się nie zasadą działania, tylko
> użytymi strukturami danych, i mówi, czy są równoważne.
Inna struktura danych to inny algorytm. A automatyczne porównywanie dwóch
algorytmów to kiepska sprawa ;) Jedynie na wyrywki, właśnie w takiej
walidacji krzyżowej.
Pozdrawiam
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Następne wpisy z tego wątku
- 18.08.11 13:34 Jordan Szubert
- 19.08.11 09:28 Andrzej Jarzabek
- 19.08.11 11:01 Michal Kleczek
- 19.08.11 11:07 b...@n...pl
- 19.08.11 20:05 Zbigniew Malec
- 19.08.11 20:06 Zbigniew Malec
- 19.08.11 21:47 m...@t...pl
- 20.08.11 06:17 p...@p...onet.pl
- 24.08.11 09:45 Michoo
- 24.08.11 10:37 Edek
- 24.08.11 11:45 Michoo
- 24.08.11 11:55 Maciej Sobczak
- 24.08.11 11:56 Stachu 'Dozzie' K.
- 24.08.11 12:09 Paweł Kierski
- 24.08.11 12:58 Edek
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-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-02-21 zmarła Izyda Goldman
- 2025-02-20 Odśnieżanie samochodu(1)
- 2025-02-20 wpadłem kołem w dziurę nocusz zdarza się
- 2025-02-20 OpenPnP