eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programminggaszcz if-ow kontra wywolanie przez wskaznik/wirtualneRe: gaszcz if-ow kontra wywolanie przez wskaznik/wirtualne
  • Data: 2010-02-21 20:26:44
    Temat: Re: gaszcz if-ow kontra wywolanie przez wskaznik/wirtualne
    Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 21 Lut, 20:33, Mariusz Marszałkowski <m...@g...com> wrote:
    > On 21 Lut, 19:42, bartekltg <b...@g...com> wrote:> On 21 Lut, 17:35, Mariusz
    Marszałkowski <m...@g...com> wrote:
    >
    > > > Skad wiedziec (bez zmudnych testow i pomiaru czasu) jakie wybrac
    > > > elementy skladniowe?
    >
    > > Ogolnie nie da sie;)
    >
    > > 1. Miec troche doswiadczenia i szczescia, jak widac na zalaczonym
    > >   obrazku, u mnie wsk dziala szybciej, u Ciebie if[*]
    >
    > Niestety to świeta racja w językach wysokiego poziomu

    To chyba zalezy od kompilatora.
    Puscilem program w g++(qtcreator) i okazal sie znacznie szybszy.
    Za bardzo, mimo gorszego (na niewprawne oko) kodu asm.

    Sledzctwo ruszylo.. Wnioski: okolo polowy mocy zzera nam funkcja
    rand:)

    Tu wyniki gdzie r bylo odczytywane z tabelki wczesniej wypelnionej
    liczbami losowymi, dla 100000000 powtorzen (tebelki byly znacznie
    mniejsze, prosta sztuczka, nieistotne chwilowo).

    G++ if= 3187 wsk= 3343 cas= 3109 ifm= 3625
    VC++ if= 2984 wsk= 2610 cas= 2796 ifm= 3359

    procentowo w ramach konkretnego kmpilatora
    102.5 107.5 100.0 116.6

    114.3 100.0 107.1 128.7

    Rzeczywiscie, gcc znacznie gorzej radzi sobie
    w przypadku wskaznikowym.

    A co tak naprawde chcailem powiedziec..
    okazalo sie, ze i tak najstotniejszy wklad w czas wykonania
    mial random. Blisko 40% w g++, ponad polowa w VC,
    i to tam mozna duzo zaoszczedzic.


    > > 3. Olac takie dylematy gdy wazy sie 0.3% czasu, moze lepiej
    > > posiedziec nad lepszym algorytmem. Bawisz sie w jakiegos rodzaju
    > > datamining, tam sie duzo da pokombinowac zjanac dane (a nie znajac
    > > ich nic nie wyjdzie, ciezko tam wymyslyc metody ogolne).
    >
    > To mniej/więcej wygląda tak. Jest program ktory rozwiazuje
    > kombinatoryczne
    > problem o wykladniczej zlozonosci.
    [cut]

    Tym bardziej spodziewalbym sie koncentrowania sil na pomyslach,
    dobrych heurystykach i kombinowaniu, co jest istotne i najczesciej
    dziala (czyli to co przed chwila opisales) a nie silowanie sie
    z hakerstwem:)
    Jak widac z pomiarow, jakbys nie napisal zmianiajac kompilator
    dostajesz lepszy wynik:/


    > > [*] a w te 20% na rzecz if wzdledem wskaznikow jakos uwierzyc nie
    > > moge:)

    > proc1 = -1466166003
    > czas = 7516
    > proc2 = -1466166003
    > czas = 9140

    5% u mnie, pewnie firmowy komp ma lepsze 'przewidywanie' niz
    moj domowy. Jesli roznica potwierdzona pisz ifami, a dodatkowo
    opisz problem ludziom z g++, moze wymysla co poprawic.

    pozdrawiam
    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: