-
Data: 2009-06-07 17:35:16
Temat: Re: jak napisać szybki program
Od: Mirosław Habarta <M...@p...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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?
Najnowsze wątki
- 2025-03-29 Re: Kompensacja mocy biernej przy 230VAC
- 2025-03-29 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-03-29 Łożysko ślizgowe - jaki olej
- 2025-03-29 Re: Kompensacja mocy biernej przy 230VAC
- 2025-03-29 Warszawa => NMS System Administrator <=
- 2025-03-29 Warszawa => Laravel PHP Developer <=
- 2025-03-29 Re: Kompensacja mocy biernej przy 230VAC
- 2025-03-29 Warszawa => Java Full Stack Developer (Angular2+) <=
- 2025-03-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-03-28 A gdyby to był elektryk?
- 2025-03-28 Współczesny falomierz
- 2025-03-28 Rzeszów => WEBCON Developer <=
- 2025-03-28 Szczecin => Specjalista ds. public relations <=
- 2025-03-28 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-03-28 Warszawa => MENA New Business Manager <=