-
X-Received: by 10.31.153.196 with SMTP id b187mr145481vke.14.1503229895469; Sun, 20
Aug 2017 04:51:35 -0700 (PDT)
X-Received: by 10.31.153.196 with SMTP id b187mr145481vke.14.1503229895469; Sun, 20
Aug 2017 04:51:35 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.c
om!border1.nntp.dca1.giganews.com!nntp.giganews.com!t37no195757qtg.1!news-out.g
oogle.com!i9ni22652qte.0!nntp.google.com!v29no698693qtv.0!postnews.google.com!g
legroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 20 Aug 2017 04:51:35 -0700 (PDT)
In-Reply-To: <b...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.47.143;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.47.143
References: <omqmm6$vvs$1@node2.news.atman.pl>
<7...@g...com>
<omqrh3$4kl$1@node2.news.atman.pl>
<e...@g...com>
<omrm61$r61$1@node2.news.atman.pl> <on29at$ef8$1@node1.news.atman.pl>
<b...@g...com>
<on5v9c$12t$1@node1.news.atman.pl>
<2...@g...com>
<on6ch1$dr2$1@node1.news.atman.pl>
<b...@g...com>
<ona4uo$6tl$1@node2.news.atman.pl>
<5...@g...com>
<0...@g...com>
<6...@g...com>
<1...@g...com>
<e...@g...com>
<4...@g...com>
<b...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: Automatic Reference Counting
From: "M.M." <m...@g...com>
Injection-Date: Sun, 20 Aug 2017 11:51:35 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 86
Xref: news-archive.icm.edu.pl pl.comp.programming:211206
[ ukryj nagłówki ]On Sunday, August 20, 2017 at 1:01:20 PM UTC+2, fir wrote:
> dlatego ze ktos kto tak dyskutuje kompletnie nie rozumie problemu
Niekoniecznie oznacza to, że ktoś kompletnie nie rozumie problemu.
Może to oznaczać, że ktoś w pośpiechu, sformułował ciekawy problem
właśnie przy pomocy takich słów.
Zawsze szukamy jakiś idealnych odnośników. Programista ręcznie
implementujący dany algorytm w języku assemblera jest odnośnikiem
do najlepszej implementacji, bo dobry programista jak ma bardzo
dużo czasu, to wykona najlepszą implementację. Potem do tej
najlepszej porównujemy możliwości obecnych kompilatorów.
Dla mnie to oznacza kolokwialne sformułowanie problemu, a nie
totalne niezrozumienie.
> [...]
> wiecej chyba nie che mi sie o tym gadac bo albo to rozumiesz albo
> nie (a ja powtarzajac w kolko to samo tylko tracilbym swoj czas
> czego wolalbym uniknac)
Generalnie zrozumiałem od początku. Problem jak zwykle siedzi w
szczegółach. Zobacz jak nieprecyzyjne jest określenie "przyspieszenie
CPU 100 razy". Co to jest CPU? Przyspieszamy tylko arytmetykę, czy
także odczyty z rejestrów (rejestry to zdecydowanie część CPU, ale
pamięć też), czy może także przyspieszamy cache L1, bo to chyba też
integralna część CPU? Przyspieszony 100 razy CPU wraz z rejestrami i
pamięcią cache, wykona dużo programów 30 razy szybciej.
Pytanie, wnosi do naszej rozmowy przytoczenie 100 razy szybszego
CPU, jeśli może być przyspieszony na N sposobów? Myślę że nic, tylko
komplikuje sprawę. Dlatego w porównaniach często powołujemy się na
teoretycznego programistę który napisał kod idealny - niestety z
tym też jest problem, bo zazwyczaj nie mam kodu idealnego pod
ręką. Hmmm my nie mamy, ale twórcy kompilatorów mogą mieć i to
wiele prawie doskonałych kodów.
Powiem w ten sposób. Gdy bez zastanowienia pisałem fragment kodu w
asemblerze na nowsze procesory w czasach gdy kompilatory już
powszechnie uchodziły za dopracowane, to mój kod działał np. o 20%-50%
wolniej niż skompilowany z opcją -O1. Gdy był kompilowany z
opcją -O3, w dodatku z informacjami z profilera, to mój był wolniejsz
jeszcze może o 40%-80%. Przepustowość pamięci się nie zmieniała.
Sposób korzystania z pamięci był taki sam, bo algorytmy za każdym
razem te same. Wniosek dla mnie jest taki, że pisząc nawet
przyzwoity kod w asemblerze można spowolnić wykonanie. Co by było
gdyby kompilator porównać z kodem optymalnym - nie wiem, o to
właściwie ja czasami dopytuję i nie uważam żeby moje pytania
oznaczały totalnie niezrozumienie, co powyżej uzasadniłem.
> samo to przepisywanie kodow by unikaly przetwazania pamieci jest raczej
> co nieco nieprzyjemna i 'nadbudowana' optymalizacyjna algorytmiką i
> moim zdaniem niekoniecznie to trzeba robic bo kody robia sie od tego
> dluzsze i brzydsze a nie maja dodatkowej funkcjonalnosci wrecz
> nabieraja węższej ak ze jest to mocno specjalistyczna dzialka)
Tu się zgadzam, przykładem jest ATLAS. Koszmarek implementacyjny i
zarazem dzieło sztuki implementacyjnej.
Pozdrawiam
Następne wpisy z tego wątku
- 20.08.17 13:55 bartekltg
- 21.08.17 07:49 Tomasz Kaczanowski
- 21.08.17 12:23 M.M.
Najnowsze wątki z tej grupy
- 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??
- 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
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=