-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: Mirosław Habarta <M...@p...pl>
Newsgroups: pl.comp.programming
Subject: Re: jak napisać szybki program
Date: Sun, 07 Jun 2009 19:35:16 +0200
Organization: http://onet.pl
Lines: 35
Message-ID: <h0gtog$lhe$1@news.onet.pl>
References: <9...@r...googlegroups.com>
<guoou4$m96$1@nemesis.news.neostrada.pl> <guoofk$u1t$2@news.onet.pl>
<gup173$356$1@nemesis.news.neostrada.pl>
<guqvb7$av3$1@news2.ipartners.pl> <h0fijq$8vd$1@inews.gazeta.pl>
NNTP-Posting-Host: host89251328.brewet.3s.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1244396112 22062 89.25.132.8 (7 Jun 2009 17:35:12 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Sun, 7 Jun 2009 17:35:12 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
In-Reply-To: <h0fijq$8vd$1@inews.gazeta.pl>
X-Antivirus: avast! (VPS 090607-0, 2009-06-07), Outbound message
X-Antivirus-Status: Clean
Xref: news-archive.icm.edu.pl pl.comp.programming:182197
[ ukryj nagłówki ]Remek pisze:
> Użytkownik "gosmo" napisał:
>
>> to się okazało, że mój kod był wolniejszy niż ten napisany w języku
>> wysokiego poziomu.
>
> Co w tym dziwnego, skoro sam piszesz, że nie masz pojęcia o assemblerze?
> Dziwne jest raczej to, że w ogóle działało. Natomiast twierdzenie, że jakiś
> optymalizator zrobi coś lepiej niż wprawny programista w asm jest delikatnie
> mówiąc bajaniem laika. Zresztą co tu miałby do roboty optymalizator.
> Optymalizować trzeba sam algorytm, a nie program.
>
> Remek
>
Wydaje mi się, że aby napisać szybki program w asm nie wystarczy dobrze znać asm-a.
Trzeba przede wszystkim znać procesor na który się pisze. A obecne procesory są
"dość" skomplikowane. To nie jest chyba tak, że mamy pamięć i kilka rejestrów, choć
z pewnego punktu widzenia tak to może wyglądać. Nie wszystkie instrukcje wykonują się
równie szybko, a część operacji można chyba zrównoleglać (mówię o pracy na tym samym
rdzeniu). Kideyś miałem taką książeczkę "procesry x486" czy jakoś tak. Tam były
opisane wszystkie instrukcje i ile taktów procesora potrzeba na ich wykonanie.
To jest chyba kluczowa sprawa. Ale pewnie dla każdej następnej generacji procesorów
te dane się zmieniają. W Pentium4 były już jakieś potoki wykonawcze
(hyper-threading),
i być może niektóre operacje można było zrównoleglać, ale pod pewnymi warunkami,
itp..
A... bym zapomniał - jeszcze cache - ile to tam tych poziomów było ?
Zadanie napisania optymalnego programu w asm dla konkretnego procesora to chyba
jest pewien problem optymalizacyjny, z ogromną ilością zmiennych. Szansa, że człowiek
potrafi to lepiej rozwiązać, niż wyspecjalizowany program jest chyba niewielka.
Oczywiście, to są moje gdybania, jeśli czyta to ktoś znający się na rzeczy, to niech
się do tego odniesie.
M.H.
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-09-25 Gdańsk => Frontend Developer (Angular) <=
- 2024-09-25 Wrocław => Key Account Manager <=
- 2024-09-25 MĂźnchen => Projektant/Expert PHP Laravel (e-commerce) <=
- 2024-09-25 Białystok => Senior Ruby Backend Developer <=
- 2024-09-25 Kraków => Java Full Stack Developer <=
- 2024-09-25 Białystok => Senior Developer React Native <=
- 2024-09-25 Kraków => Java Full Stack Developer (Angular/React) <=
- 2024-09-25 Gdynia => DevOps Engineer (Azure) <=
- 2024-09-25 Łódź => Senior PHP Developer <=
- 2024-09-25 rpi i moduł przekaźników
- 2024-09-25 Najnowszy iPhone i filmy na Whatsup
- 2024-09-25 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-09-25 Warszawa => Full Stack .Net Engineer <=
- 2024-09-25 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-09-25 Warszawa => Software .Net Developer <=