eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-) › Re: Algorytmiczny problem lamera... :-)
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Algorytmiczny problem lamera... :-)
    Date: Sun, 12 Oct 2014 01:17:57 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 82
    Message-ID: <m1cdr5$18m$1@node1.news.atman.pl>
    References: <1...@g...com>
    <m0s8le$lfc$1@node2.news.atman.pl>
    <4...@g...com>
    <m18osf$4gt$1@node1.news.atman.pl>
    <2...@g...com>
    NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1413069477 1302 89.73.81.145 (11 Oct 2014 23:17:57 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sat, 11 Oct 2014 23:17:57 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101
    Thunderbird/31.1.2
    In-Reply-To: <2...@g...com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:206734
    [ ukryj nagłówki ]

    On 11.10.2014 10:07, M.M. wrote:
    > On Friday, October 10, 2014 4:01:50 PM UTC+2, bartekltg wrote:
    >> Też tak początkowo podejrzewałem, ale kod sugerował przetwarzanie
    >> pojedynczej listy.
    > Tak tak. Specjalnie się "czepiam", poniewaz czesto staje przed
    > problemem dwuznacznosci w specyfikacjach.


    Kryształowa kula jest niezbędnym wyposażeniem.


    >> Tego chyba nikt nie napisze nawet, jak tam będzie vector.
    >> Sensu za dużo nie ma;-)
    > O 1000zł bym się nie założył, ale o 100zł mogę się założyć, że iterowanie
    > po wyjętym wcześniej wskaźniku będzie dużo szybsze niż po indeksie. W QT
    > gwarancję że to się uda daje QVector. W Standardowej nie wiem czy można.

    Ale po co, skoro masz iterator. On się rozwija w przypadku vector
    do gołego wskaźnika, a nie trzeba uprawiać partyzantki*).

    GCC przy 03 i wersję z indeksem przerabia na tak samo szybką,
    na O2 widzę kilka procent narzutu.


    Test, pomijając szczegóły, taki:
    int test1(const vector<int> &tab)
    {
    int acu=0;
    for (size_t i=0;i<tab.size();i++)
    acu+=tab[i];
    return acu;
    }
    int test2(const vector<int> &tab)
    {
    int acu=0;
    for (auto it = tab.begin();it!=tab.end();++it)
    acu+=*it;
    return acu;

    }
    int test3( vector<int> &tab)
    {
    int acu=0;
    for (int *p = &(tab[0]); p<=&(tab.back()); ++p )
    acu+=*p;
    return acu;
    }

    Czasy przy O3:
    ind iter ptr
    0.580365s 0.5802s 0.574878s
    0.573168s 0.580003s 0.570412s
    0.576243s 0.595382s 0.598803s
    0.583383s 0.605905s 0.574091s
    0.559924s 0.570881s 0.56386s
    0.565881s 0.570138s 0.567056s
    0.566698s 0.572243s 0.593708s
    0.583027s 0.579597s 0.582566s
    0.576352s 0.57665s 0.570913s
    0.577967s 0.578482s 0.57333s

    czasy przy O2:
    ind iter ptr
    1.01675s 0.919716s 0.918818s
    0.998275s 0.914182s 0.915593s
    0.989508s 0.908565s 0.911251s
    0.998609s 0.90728s 0.914902s
    1.0199s 0.95588s 0.894817s
    1.00836s 0.914023s 0.907522s
    0.995177s 0.926149s 0.920606s
    0.989913s 0.904324s 0.919234s
    1.00331s 0.915149s 0.913598s
    0.997118s 0.913398s 0.900119s

    Ogolna różnica między 2 a 3 wynika z rozwijania pętli.


    pzdr
    bartekltg



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: