eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAutomatic Reference CountingRe: Automatic Reference Counting
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: