eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjak napisać szybki program
Ilość wypowiedzi w tym wątku: 106

  • 41. Data: 2009-05-18 12:37:24
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 13:47:20 +0200, Jędrzej Dudkiewicz
    <j...@g...com> wrote:

    >Maciej Sobczak wrote:
    >> On 18 Maj, 09:35, Wojciech Muła <w...@p...onet.pl> wrote:
    >>
    >>>>> Wówczas można spróbować asynchroniczne I/O.
    >>>> I wtedy się szybciej dysk kręci?
    >>> Bez sensu się czepiasz. W kontekście problemu Kolegi (duża ilość
    >>> danych),
    >>> asynchroniczne I/O może pomóc.
    >>
    >> Nadal chciałbym wiedzieć dlaczego.
    >
    >Ponieważ dane są pobierane równolegle z wykonaniem programu. Nie wierzę,
    >żebyś nie wiedział o co chodzi, więc rozumiem, że przeczytałeś coś
    >świetnego w mądrej książce i tylko czekasz, żeby zaprezentować :)
    >Dajesz, dajesz :)
    >
    >JD

    Tia... tylko jak sie puszcza dwa procesy na jednym procesorze to kazdy
    z nich zabierze swoja czesc czasu procesora plus administracja, wiec
    wszystko ma szanse dzialac wolniej... o ile procedor nie jest
    multicore... co nei jest zreszta automatycznei gwarancja ze bedzie
    dzialac szybciej...

    A.L.


  • 42. Data: 2009-05-18 12:49:09
    Temat: Re: jak napisać szybki program
    Od: Jędrzej Dudkiewicz <j...@g...com>

    bartekLTG wrote:
    > Maciej Pilichowski wrote:
    >> aby zawsze pisac ++var zamiast
    >> var++ (o ile merytorycznie nie zachodzi koniecznosc tego drugiego),
    >
    > Im dluzej o tym mysle, tym bardziej nie rozumiem, o co Ci mogło chodzic;-)

    O ile pamiętam "rationale", to w C++ do iteracji winien być używany
    iterator. Będący obiektem, potencjalnie dużym i skomplikowanym. Kiedy w
    kodzie pojawia się "var++", w to miejsce należy zwrócić "starą" wartość
    var, a następnie zaaplikować operator++ na var, kiedy pojawia się ++var,
    nie trzeba zwracać kopii.

    JD


  • 43. Data: 2009-05-18 12:50:56
    Temat: Re: jak napisać szybki program
    Od: "Stachu 'Dozzie' K." <d...@d...im.pwr.wroc.pl.nospam>

    On 17.05.2009, Maciej Pilichowski wrote:
    > Jacek Czerwinski wrote:
    >
    >> W konkluzji:
    >> I) nie optymalizować.
    >
    > Nie zgodze sie. Czesc optymalizacji mozna zrobic w zasadzie nie myslac, jak
    > np. przyzwyczajenie sie, aby zawsze pisac ++var zamiast var++ (o ile
    > merytorycznie nie zachodzi koniecznosc tego drugiego),

    Z dokładnością do tego że kompilator doskonale poradzi sobie z takim
    no-thinking.

    > dwa ze czesc
    > optymalizacji jest trywialnych, jak np.
    >
    > int x;
    > vs
    > static int x;
    >
    > (tu mocno przejaskrawiam oczywiscie)

    To nie jest optymalizacja. Albo zmienna x jest lokalna, wtedy
    static int x to zupełnie inny byt, albo to zmienna globalna, a wtedy
    ustatycznienie jej ukryje ten symbol dla dostępu z zewnątrz. Tak czy
    siak zmieniasz mocno zastosowanie zmiennej, co nijak mi się nie mieści
    w definicji trywialnej optymalizacji.


    > trzy, ze czesc programow bez optymalizacji po prostu nie skonczy dzialac,

    #define nie skończy działać.

    Ręcznie optymalizować kodu się nie opłaca dopóki nie zlokalizowałeś
    wąskich gardeł i nie zoptymalizowałeś użytych tam algorytmów.

    --
    Stanislaw Klekot


  • 44. Data: 2009-05-18 12:58:31
    Temat: Re: jak napisać szybki program
    Od: Jędrzej Dudkiewicz <j...@g...com>

    A.L. wrote:
    > On Mon, 18 May 2009 13:47:20 +0200, Jędrzej Dudkiewicz
    > <j...@g...com> wrote:
    >
    >> Maciej Sobczak wrote:
    >>> On 18 Maj, 09:35, Wojciech Muła <w...@p...onet.pl> wrote:
    >>>
    >>>>>> Wówczas można spróbować asynchroniczne I/O.
    >>>>> I wtedy się szybciej dysk kręci?
    >>>> Bez sensu się czepiasz. W kontekście problemu Kolegi (duża ilość
    >>>> danych),
    >>>> asynchroniczne I/O może pomóc.
    >>> Nadal chciałbym wiedzieć dlaczego.
    >> Ponieważ dane są pobierane równolegle z wykonaniem programu. Nie wierzę,
    >> żebyś nie wiedział o co chodzi, więc rozumiem, że przeczytałeś coś
    >> świetnego w mądrej książce i tylko czekasz, żeby zaprezentować :)
    >> Dajesz, dajesz :)
    >
    > Tia... tylko jak sie puszcza dwa procesy na jednym procesorze to kazdy
    > z nich zabierze swoja czesc czasu procesora plus administracja, wiec
    > wszystko ma szanse dzialac wolniej... o ile procedor nie jest
    > multicore... co nei jest zreszta automatycznei gwarancja ze bedzie
    > dzialac szybciej...

    Znaczy, nie rozumiem. Przy AIO nie musimy mieć dwóch procesów ani
    wątków, dane są, jak rozumiem, pobierane w tle bez udziału procesora i
    przy małym udziale kontrolera pamięci, przy pomocy takich wynalazków jak
    DMA.

    Głównie to nie rozumiem, skąd ta uwaga o dwóch procesach w tym kontekście.

    JD


  • 45. Data: 2009-05-18 13:22:06
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 14:58:31 +0200, Jędrzej Dudkiewicz
    <j...@g...com> wrote:

    >A.L. wrote:
    >> On Mon, 18 May 2009 13:47:20 +0200, Jędrzej Dudkiewicz
    >> <j...@g...com> wrote:
    >>
    >>> Maciej Sobczak wrote:
    >>>> On 18 Maj, 09:35, Wojciech Muła <w...@p...onet.pl> wrote:
    >>>>
    >>>>>>> Wówczas można spróbować asynchroniczne I/O.
    >>>>>> I wtedy się szybciej dysk kręci?
    >>>>> Bez sensu się czepiasz. W kontekście problemu Kolegi (duża ilość
    >>>>> danych),
    >>>>> asynchroniczne I/O może pomóc.
    >>>> Nadal chciałbym wiedzieć dlaczego.
    >>> Ponieważ dane są pobierane równolegle z wykonaniem programu. Nie wierzę,
    >>> żebyś nie wiedział o co chodzi, więc rozumiem, że przeczytałeś coś
    >>> świetnego w mądrej książce i tylko czekasz, żeby zaprezentować :)
    >>> Dajesz, dajesz :)
    >>
    >> Tia... tylko jak sie puszcza dwa procesy na jednym procesorze to kazdy
    >> z nich zabierze swoja czesc czasu procesora plus administracja, wiec
    >> wszystko ma szanse dzialac wolniej... o ile procedor nie jest
    >> multicore... co nei jest zreszta automatycznei gwarancja ze bedzie
    >> dzialac szybciej...
    >
    >Znaczy, nie rozumiem. Przy AIO nie musimy mieć dwóch procesów ani
    >wątków, dane są, jak rozumiem, pobierane w tle bez udziału procesora i
    >przy małym udziale kontrolera pamięci, przy pomocy takich wynalazków jak
    >DMA.

    BEz udzialu procesora?...

    Proponuje sobie zobaczyc zrodla do asynchroncznego IO w Javie na
    przyklad, i zastanowic sie jak te zrodla mozna zapuscic na DMA.

    A.L.


  • 46. Data: 2009-05-18 13:24:50
    Temat: Re: jak napisać szybki program
    Od: "Mateusz Loskot" <m...@l...net>

    "bartekLTG" <b...@o...ciach.pl> wrote in message
    news:gurkis$5d7$1@news.onet.pl...
    > Maciej Pilichowski wrote:
    >> aby zawsze pisac ++var zamiast
    >> var++ (o ile merytorycznie nie zachodzi koniecznosc tego drugiego),
    >
    > Im dluzej o tym mysle, tym bardziej nie rozumiem, o co Ci mogło chodzic;-)

    O uniknięcie tworzenia tymczasowego obiektu, jest to szczególnie istotne
    przy
    optymalziacji użycia iteratorów.

    Pozdrawiam
    --
    Mateusz Loskot, http://mateusz.loskot.net
    pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
    C++ FAQ: http://parashift.com/c++-faq-lite


  • 47. Data: 2009-05-18 13:43:17
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 14:24:50 +0100, "Mateusz Loskot"
    <m...@l...net> wrote:

    >"bartekLTG" <b...@o...ciach.pl> wrote in message
    >news:gurkis$5d7$1@news.onet.pl...
    >> Maciej Pilichowski wrote:
    >>> aby zawsze pisac ++var zamiast
    >>> var++ (o ile merytorycznie nie zachodzi koniecznosc tego drugiego),
    >>
    >> Im dluzej o tym mysle, tym bardziej nie rozumiem, o co Ci mogło chodzic;-)
    >
    >O uniknięcie tworzenia tymczasowego obiektu, jest to szczególnie istotne
    >przy
    >optymalziacji użycia iteratorów.
    >

    Jakiego obiektu?...

    A.L.


  • 48. Data: 2009-05-18 13:59:48
    Temat: Re: jak napisać szybki program
    Od: "Mateusz Loskot" <m...@l...net>

    "A.L." <a...@a...com> wrote in message
    news:7fp215hi0ri3dg0joavei9c38r9si7kn6b@4ax.com...
    > On Mon, 18 May 2009 14:24:50 +0100, "Mateusz Loskot"
    > <m...@l...net> wrote:
    >
    >>"bartekLTG" <b...@o...ciach.pl> wrote in message
    >>news:gurkis$5d7$1@news.onet.pl...
    >>> Maciej Pilichowski wrote:
    >>>> aby zawsze pisac ++var zamiast
    >>>> var++ (o ile merytorycznie nie zachodzi koniecznosc tego drugiego),
    >>>
    >>> Im dluzej o tym mysle, tym bardziej nie rozumiem, o co Ci mogło
    >>> chodzic;-)
    >>
    >>O uniknięcie tworzenia tymczasowego obiektu, jest to szczególnie istotne
    >>przy
    >>optymalziacji użycia iteratorów.
    >>
    >
    > Jakiego obiektu?...


    Tymczasowego, o takim samym typie jak 'var', utworzonego i zwróconego
    przez operator post-inkrementacji.

    Pozdrawiam
    --
    Mateusz Loskot, http://mateusz.loskot.net
    pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
    C++ FAQ: http://parashift.com/c++-faq-lite


  • 49. Data: 2009-05-18 15:14:29
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 14:59:48 +0100, "Mateusz Loskot"
    <m...@l...net> wrote:

    >"A.L." <a...@a...com> wrote in message
    >news:7fp215hi0ri3dg0joavei9c38r9si7kn6b@4ax.com...
    >> On Mon, 18 May 2009 14:24:50 +0100, "Mateusz Loskot"
    >> <m...@l...net> wrote:
    >>
    >>>"bartekLTG" <b...@o...ciach.pl> wrote in message
    >>>news:gurkis$5d7$1@news.onet.pl...
    >>>> Maciej Pilichowski wrote:
    >>>>> aby zawsze pisac ++var zamiast
    >>>>> var++ (o ile merytorycznie nie zachodzi koniecznosc tego drugiego),
    >>>>
    >>>> Im dluzej o tym mysle, tym bardziej nie rozumiem, o co Ci mogło
    >>>> chodzic;-)
    >>>
    >>>O uniknięcie tworzenia tymczasowego obiektu, jest to szczególnie istotne
    >>>przy
    >>>optymalziacji użycia iteratorów.
    >>>
    >>
    >> Jakiego obiektu?...
    >
    >
    >Tymczasowego, o takim samym typie jak 'var', utworzonego i zwróconego
    >przez operator post-inkrementacji.
    >

    Wszystko co Kolega pisze jest gleboko sluszne, jezeli zostanie
    uzupelnione nastepujacym tekstem: "w przypadku gdy operator ++ jest
    overlaoded, na ogol operacja prefiksowa jest bardziej efektywna od
    postfiksowej. Nie ma to jednak znaczenai dla operacji ++ na typach
    elementarnych"

    A.L.


  • 50. Data: 2009-05-18 16:15:57
    Temat: Re: jak napisać szybki program
    Od: Paweł Kierski <n...@p...net>

    A.L. wrote:
    > On Sun, 17 May 2009 12:19:56 +0200, Jacek Czerwinski <...@...z.pl> wrote:
    >
    >> I) nie optymalizować.
    >
    > Nieprawda. Optymalizowac:
    >
    > a. Gdy program dziala za wolno
    >
    > b. Posluzyc sie regula "20% kodu konsumuje 80% czasu wykonania".
    > Znalezc te 20% i zoptymalizowac.
    >
    > c. Go to a.

    Domyślam się, że to, co przedpiśca chciał powiedzieć, zawiera się
    w "a", tylko przy odwróceniu warunku: "Jeśli program nie działa za wolno
    - nie optymalizować".

    --
    Paweł Kierski
    n...@p...net

strony : 1 ... 4 . [ 5 ] . 6 ... 11


Szukaj w grupach

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: