eGospodarka.pl
eGospodarka.pl poleca

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

  • 61. Data: 2009-05-18 20:53:34
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 21:34:46 +0200, Bogu? <n...@i...net> wrote:

    >Dnia 18-05-2009 o 19:35:29 A.L. <a...@a...com> napisał(a):
    >
    >>>> Pozwole sie nie zgodzic. Nie ma nic gorszego nie "dobre nawyki".
    >>>
    >>> IMHO, to jest uogólnienie.
    >>>
    >>>> Zwlaszcza nieuzasadnione
    >>>
    >>
    >> Dlatego nie lubie "nawykow" bo nawyki eliminuja myslenie, a czasem
    >> moga stanowiac zagrozenie dla zdrowia. Jeden moj znajomy mial nawyk
    >> jezedenia pzrez most i nie zauwazyl ze nawierzchnie mosy zdjeli do
    >> remontu. Gdyby myslal zamiast miec nawyki, to by sie nie utopil
    >
    >Gdyby nie miał pan nawyków, to by się panu płat czołowy od myślenia
    >przepalił.

    Widocznie mam wiekszy plat niz Pan ma.

    A.L.


  • 62. Data: 2009-05-18 20:58:33
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Mon, 18 May 2009 21:47:14 +0200, "jelen" <j...@n...rykowisku>
    wrote:

    >
    >U?ytkownik "A.L." <a...@a...com> napisa? w wiadomo?ci
    >news:1f63155hoq26am5o4ls42d28s5bveolmt8@4ax.com...
    >> On Mon, 18 May 2009 18:15:31 +0100, "Mateusz Loskot"
    >..
    >> kazdy nawyk jest dobry dopoki nei jest zatosowany w sytuacji w ktorej
    >> powinno sie uruchomic myslenie
    >
    >ciekawe czy autor tej "mundro?ci" stoje j? do siebie samego kiedy
    >pisze np.:
    >
    >>>tylko pisze "to jest belkot"
    >>>Taki mam zwyczaj
    >
    >i wysy?a ludzi do KF, do googla lub bezcermonialnie i bez
    >dyskusji/wja?nie? klasyfikuje ( jak to sie? neuronowa :-) )
    >kogo? lub co? jako "be?kot" lub jeszcze dobitniej ..

    Idziesz do KF za przytyki personalne

    A.L.
    >


  • 63. Data: 2009-05-18 21:07:09
    Temat: Re: jak napisa szybki program
    Od: "jelen" <j...@n...rykowisku>


    Użytkownik "A.L." <a...@a...com> napisał w wiadomości
    news:sui315tl1vpg2joq61iojcf4kga9q9tjm8@4ax.com...
    > On Mon, 18 May 2009 21:47:14 +0200, "jelen" <j...@n...rykowisku>
    > wrote:
    >
    >>
    >>U?ytkownik "A.L." <a...@a...com> napisa? w wiadomo?ci
    >>news:1f63155hoq26am5o4ls42d28s5bveolmt8@4ax.com...
    >>> On Mon, 18 May 2009 18:15:31 +0100, "Mateusz Loskot"
    >>..
    >>> kazdy nawyk jest dobry dopoki nei jest zatosowany w sytuacji w ktorej
    >>> powinno sie uruchomic myslenie
    >>
    ...
    >
    > Idziesz do KF za przytyki personalne

    bardzo dziękuję

    już się bałem ,że zacząłeś myśleć czy cuś -
    ale wygląda , że ze starości - jak zdarta płyta gramofonowa,
    czasem się tylko zacinasz





  • 64. Data: 2009-05-18 21:12:51
    Temat: Re: jak napisać szybki program
    Od: Marteno Rodia <m...@o...pl>

    Dziękuję wszystkim za podjęcie tak zażartej i intrygującej dyskusji.
    Nie wszystko rozumiem, ale wierzę, że dla wielu jest ona pod niejednym
    względem pouczająca ;) A teraz poważnie...

    Zadając pytanie, nie miałem na myśli jakiejś optymalizacji pełną gębą,
    tylko raczej interesowała mnie kwestia pewnych praktyk (tj. nawyków -
    sic!) programistycznych: jakie konstrukcje wykonują się szybciej, a
    jakie wolniej - np. rzeczony dylemat ++var vs.var++, albo co jest
    szybsze: int array[10] czy int *array = new int[10]. Czyli pytałem
    trochę o elementarz, którego mi brakuje (bo jak już to udało mi się
    nadmienić: nie jestem programistą...). W obu alternatywach zdaje mi
    się, że wiem: szybsza jest instrukcja pierwsza (z dokładnością do
    optymalizacji dokonanej przez kompilator), ale... może się mylę, a
    poza tym może są jeszcze inne sytuacje, gdzie można coś napisać na 2
    sposoby, z których jeden jest lepszy (pod kątem czasu wykonania
    programu) niż drugi.

    Jeżeli ktoś ma coś do wrzucenia na ten temat jeszcze, to chętnie
    przeczytam, ale najwcześniej jutro. Dobranoc!

    MR


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

    On Mon, 18 May 2009 14:12:51 -0700 (PDT), Marteno Rodia
    <m...@o...pl> wrote:

    >Dziękuję wszystkim za podjęcie tak zażartej i intrygującej dyskusji.
    >Nie wszystko rozumiem, ale wierzę, że dla wielu jest ona pod niejednym
    >względem pouczająca ;) A teraz poważnie...
    >
    >Zadając pytanie, nie miałem na myśli jakiejś optymalizacji pełną gębą,
    >tylko raczej interesowała mnie kwestia pewnych praktyk (tj. nawyków -
    >sic!) programistycznych: jakie konstrukcje wykonują się szybciej, a
    >jakie wolniej - np. rzeczony dylemat ++var vs.var++, albo co jest
    >szybsze: int array[10] czy int *array = new int[10].

    A co za roznica?...

    >Czyli pytałem
    >trochę o elementarz, którego mi brakuje (bo jak już to udało mi się
    >nadmienić: nie jestem programistą...). W obu alternatywach zdaje mi
    >się, że wiem: szybsza jest instrukcja pierwsza (z dokładnością do
    >optymalizacji dokonanej przez kompilator), ale... może się mylę, a
    >poza tym może są jeszcze inne sytuacje, gdzie można coś napisać na 2
    >sposoby, z których jeden jest lepszy (pod kątem czasu wykonania
    >programu) niż drugi.
    >
    >Jeżeli ktoś ma coś do wrzucenia na ten temat jeszcze, to chętnie
    >przeczytam, ale najwcześniej jutro. Dobranoc!
    >

    Proponuje jak zwykla zajrzec do ksiazek, zwlaszcza z serii "Effective
    C++" Scotta Meyersa

    http://www.aristeia.com/books.html

    http://www.informit.com/promotions/promotion.aspx?pr
    omo=136685

    Poza tym, jak juz ktos pisal: proponuje nie poswiecac zbyt duzo uwagi
    optymalizacji programu ani pzred przystapieniem do pisania programu,
    ani w trakcie pisania programu. Optymalziacje robi sie wtedy gdy
    program dziala zbyt wolno. Ale gdy juz DZIALA.

    Rozwazanie takie jak powyzej to dzielenie wlosa na czaoro.

    A.L.


  • 66. Data: 2009-05-19 07:37:11
    Temat: Re: jak napisać szybki program
    Od: Paweł Kierski <n...@p...net>

    A.L. wrote:
    [...]
    >> Dana jest zmienna
    >>
    >> int var = 0;
    >>
    >> dalej użyta jako licznik w pętli.
    >> W celu ziększenia wartości var o 1 mamy kilka możliwości,
    >> rozpatrzmy dwie z nich: ++var lub var++.
    >>
    >> Którą wersję Kolega by wybrał i jak uzasadniłby wybór?
    >>
    >
    > Nie da sie uzasadznic wyboru nie znajac kontekstu w ktorym ta operacja
    > jest uzyta.

    To trochę jak zakład Newtona - też można twierdzić, że nie da się
    uzasadnić wyboru, bo kontekst (istnienie Boga) nie jest znany. Ale
    podobnie jak w zakładzie, tak i tu, przyjmujemy rozwiązanie
    maksymalizujące zysk.

    >> Ja wybrałbym ++var ponieważ 1) przyzwyczajam się do pre-inkrementacji
    >> dla liczników/indeksów, a to automatyzuje wybób operatora przy zastosowaniu
    >> iteratorów oraz 2) w przypadku gdy zmienię typ zmiennej var z wbudowanego
    >> na własny, nie muszę wyszukiwać i zmieniać użycia operatorów, bo wiem
    >> iż konsekwentnie używałem pre-inkrementacji.
    >>
    >> Czy Kolegi zdaniem, nawyki opisane w 1 i 2 są dobre czy "dobre" ?
    >> Jeśli zdaniem Kolego są one "dobre", to proszę o wyjaśnienie dlaczego nie są
    >> dobre.
    >>
    >
    > kazdy nawyk jest dobry dopoki nei jest zatosowany w sytuacji w ktorej
    > powinno sie uruchomic myslenie

    To piszemy konsekwentnie od początku: ++i nie zastąpi i++ tam, gdzie
    wymagane jest i++.

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


  • 67. Data: 2009-05-19 08:32:45
    Temat: Re: jak napisać szybki program
    Od: Jędrzej Dudkiewicz <j...@g...com>

    Maciej Sobczak wrote:
    > On 18 Maj, 13:47, Jędrzej Dudkiewicz <j...@g...com>
    > wrote:
    >> Maciej Sobczak wrote:
    >
    >>> Nadal chciałbym wiedzieć dlaczego.
    >> Ponieważ dane są pobierane równolegle z wykonaniem programu.
    >
    > Pod warunkiem, że program ma coś do zrobienia co nie wymaga czekania
    > na te dane.
    > Czyli mówimy *w ogólności* o wykorzystaniu *współbieżności* w celu
    > lepszego wykorzystania zasobów.

    No dobra, ale sprawdź jeszcze raz odpowiedź Wojtka Muły, podał
    informację o AIO w momencie, kiedy było wiadomo, że:
    a) same obliczenia długo trwają
    b) dużo czasu zajmuje czekanie na dane.

    Wniosek: jest szansa, że AIO pomoże.

    W tym momencie odpowiedź "możesz użyć współbieżności" jest mniej pomocne
    od konkretniejszego rozwiązania, czyli podania hasła o asynchronicznym I/O.

    JD


  • 68. Data: 2009-05-19 09:34:53
    Temat: Re: jak napisać szybki program
    Od: "Mateusz Loskot" <m...@l...net>

    "A.L." <a...@a...com> wrote in message
    news:1f63155hoq26am5o4ls42d28s5bveolmt8@4ax.com...
    > On Mon, 18 May 2009 18:15:31 +0100, "Mateusz Loskot"
    > <m...@l...net> wrote:
    >
    >>"A.L." <a...@a...com> wrote in message
    >>news:ti4315lppo0dg90vvabkugm4fgf1s93mhi@4ax.com...
    >>> On Mon, 18 May 2009 17:28:34 +0100, "Mateusz Loskot"
    >>> <m...@l...net> wrote:
    >>>
    >>>>
    >>>>
    >>>>Wszystko co Kolega pisze jest gleboko sluszne, jednak moim zdaniem
    >>>>stosowanie notacji prefiksowej, zarówno w odniesieniu do
    >>>>typów użytkownika jak i typów wbudowany jest dobrym nawykiem.
    >>>>Oczywiście tam gdzie jest to poprawnie użyte dla danego algorytmu.
    >>>
    >>> Pozwole sie nie zgodzic. Nie ma nic gorszego nie "dobre nawyki".
    >>
    >>IMHO, to jest uogólnienie.
    >>
    >>> Zwlaszcza nieuzasadnione
    >>
    >
    > Dlatego nie lubie "nawykow" bo nawyki eliminuja myslenie, a czasem
    > moga stanowiac zagrozenie dla zdrowia. Jeden moj znajomy mial nawyk
    > jezedenia pzrez most i nie zauwazyl ze nawierzchnie mosy zdjeli do
    > remontu. Gdyby myslal zamiast miec nawyki, to by sie nie utopil


    Zgoda, nawyk jest zly jesli zwalnia od myslenia.
    Moze powinienem ująć to inaczej - w moim coding style preferuję ++var
    dla typów dla których ta operacja jest zdefiniowana i w takich konstrukcjach
    pętle for i while do zwiększenia wartości/pozycji liczników, wskaźników i
    iteratorów o jeden.

    >>Dana jest zmienna
    >>
    >>int var = 0;
    >>
    >>dalej użyta jako licznik w pętli.
    >>W celu ziększenia wartości var o 1 mamy kilka możliwości,
    >>rozpatrzmy dwie z nich: ++var lub var++.
    >>
    >>Którą wersję Kolega by wybrał i jak uzasadniłby wybór?
    >>
    >
    > Nie da sie uzasadznic wyboru nie znajac kontekstu w ktorym ta operacja
    > jest uzyta.

    Ano właśnie. Ja nie podałem szczegółów kontekstów a mimo to Kolega
    potrafił wyrazić krytykę, rozumiem że uzasadnioną i o to uzasadnienie
    prosiłem.
    Przyjmuję, że "nawyki eliminuja myslenie" jest tym uzasadnieniem. Zgadzam
    sie z nim.

    >>Ja wybrałbym ++var ponieważ 1) przyzwyczajam się do pre-inkrementacji
    >>dla liczników/indeksów, a to automatyzuje wybób operatora przy
    >>zastosowaniu
    >>iteratorów oraz 2) w przypadku gdy zmienię typ zmiennej var z wbudowanego
    >>na własny, nie muszę wyszukiwać i zmieniać użycia operatorów, bo wiem
    >>iż konsekwentnie używałem pre-inkrementacji.
    >>
    >>Czy Kolegi zdaniem, nawyki opisane w 1 i 2 są dobre czy "dobre" ?
    >>Jeśli zdaniem Kolego są one "dobre", to proszę o wyjaśnienie dlaczego nie
    >>są
    >>dobre.
    >>
    >
    > kazdy nawyk jest dobry dopoki nei jest zatosowany w sytuacji w ktorej
    > powinno sie uruchomic myslenie

    Pełna zgoda.

    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


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

    "Marteno Rodia" <m...@o...pl> wrote in message
    news:60d2054e-875f-464e-b723-553eaa97d168@m24g2000vb
    p.googlegroups.com...
    >
    > albo co jest szybsze: int array[10] czy int *array = new int[10].

    Pierwsze to alokacja na stosie, drugie na tzw. stercie (dynamic storage)
    Ogólna zasada przy optymalizacji, to im mniej alokacji pamięci
    tym lepiej. Alokacja to wolna operacja.

    Polecam poszperać po archiwach tej grupy oraz FAQ'ach,
    linki w mojej stopce.

    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


  • 70. Data: 2009-05-19 09:50:29
    Temat: Re: jak napisać szybki program
    Od: "Mateusz Loskot" <m...@l...net>

    "Piotr Kulinski" <p...@w...pl> wrote in message
    news:z5n0vdd3lspg$.pgn6aqhxqfhq$.dlg@40tude.net...
    > Mon, 18 May 2009 18:15:31 +0100, na pl.comp.programming, Mateusz Loskot
    > napisał(a):
    >
    >> "A.L." <a...@a...com> wrote in message
    >> news:ti4315lppo0dg90vvabkugm4fgf1s93mhi@4ax.com...
    >>> On Mon, 18 May 2009 17:28:34 +0100, "Mateusz Loskot"
    >>> <m...@l...net> wrote:
    >>>
    >>>>
    >>>>
    >>>>Wszystko co Kolega pisze jest gleboko sluszne, jednak moim zdaniem
    >>>>stosowanie notacji prefiksowej, zarówno w odniesieniu do
    >>>>typów użytkownika jak i typów wbudowany jest dobrym nawykiem.
    >>>>Oczywiście tam gdzie jest to poprawnie użyte dla danego algorytmu.
    >>>
    >>> Pozwole sie nie zgodzic. Nie ma nic gorszego nie "dobre nawyki".
    >>
    >> IMHO, to jest uogólnienie.
    >>
    >>> Zwlaszcza nieuzasadnione
    >>
    >> Dana jest zmienna
    >>
    >> int var = 0;
    >>
    >> dalej użyta jako licznik w pętli.
    >> W celu ziększenia wartości var o 1 mamy kilka możliwości,
    >> rozpatrzmy dwie z nich: ++var lub var++.
    >>
    >> Którą wersję Kolega by wybrał i jak uzasadniłby wybór?
    >>
    >> Ja wybrałbym ++var ponieważ 1) przyzwyczajam się do pre-inkrementacji
    >> dla liczników/indeksów, a to automatyzuje wybób operatora przy
    >> zastosowaniu
    >> iteratorów oraz 2) w przypadku gdy zmienię typ zmiennej var z wbudowanego
    >> na własny, nie muszę wyszukiwać i zmieniać użycia operatorów, bo wiem
    >> iż konsekwentnie używałem pre-inkrementacji.
    >>
    > czy przypadek 1 czy 2 to zależy od dalszego kontekstu programu

    Zgadza się, dlatego zaznaczyłem w 1 że chodzi o zwiększenie licznika
    pętli o jeden, nie dodałem że z jednoczesnym przypisaniem starej/nowej
    wartości innej zmiennej, etc.

    > bardzo dobry przykład, podałeś AL
    > int var = 0;
    > int i=0;
    >
    > /*1*/ i=var++; //i=0
    > lub
    > /*2*/ i=++var; //i=1
    >
    > ... więc wszystko zależy od dalszego kontekstu.

    Zgoda pełna.

    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

strony : 1 ... 6 . [ 7 ] . 8 ... 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: