-
51. Data: 2009-05-18 16:21:15
Temat: Re: jak napisa? szybki program
Od: A.L. <a...@a...com>
On Mon, 18 May 2009 18:15:57 +0200, Pawe? Kierski <n...@p...net>
wrote:
>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ć".
Byc moze. Tym nieniej, stwierdzenie: "nie optymalzowac jak nie
potzreba" jest gleboko sluszne :)
A.L.
-
52. Data: 2009-05-18 16:28:34
Temat: Re: jak napisać szybki program
Od: "Mateusz Loskot" <m...@l...net>
"A.L." <a...@a...com> wrote in message
news:tlu215d3jfgq75kn250tqtb37d3mlko246@4ax.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"
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.
Maciej nie sprecyzował typu dla 'var', więc uznałem to za ogólne
zalecenie, kóre dotyczy również operatora inkrementacji dla typów innych
niż wbudowane.
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
-
53. Data: 2009-05-18 16:56:54
Temat: Re: jak napisać szybki program
Od: A.L. <a...@a...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".
Zwlaszcza nieuzasadnione
>
>Maciej nie sprecyzował typu dla 'var', więc uznałem to za ogólne
>zalecenie, kóre dotyczy również operatora inkrementacji dla typów innych
>niż wbudowane.
Moja reakcja byla dokladnie odwrotna: poniewaz nie sprecyzowal typu
dla 'var', mogl to byc wbudowany.
Tak na matrginesie, jak ktos potzrebuje ladnej dyskusji nad ++ to
polecam na pzyklad
http://en.allexperts.com/q/C-1040/Increment-operator
s.htm
A.L.
-
54. Data: 2009-05-18 17:15:31
Temat: Re: jak napisać szybki program
Od: "Mateusz Loskot" <m...@l...net>
"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 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.
>>Maciej nie sprecyzował typu dla 'var', więc uznałem to za ogólne
>>zalecenie, kóre dotyczy również operatora inkrementacji dla typów innych
>>niż wbudowane.
>
> Moja reakcja byla dokladnie odwrotna: poniewaz nie sprecyzowal typu
> dla 'var', mogl to byc wbudowany.
Zgoda, kwestia interpretacji. Dlatego dobrze zawsze wyjaśniac propozycje
precyzyjnie.
> Tak na matrginesie, jak ktos potzrebuje ladnej dyskusji nad ++ to
> polecam na pzyklad
>
> http://en.allexperts.com/q/C-1040/Increment-operator
s.htm
Dzięki, zajrzę.
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
-
55. Data: 2009-05-18 17:35:29
Temat: Re: jak napisać szybki program
Od: A.L. <a...@a...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
>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.
>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
A.L.
-
56. Data: 2009-05-18 19:11:41
Temat: Re: jak napisać szybki program
Od: Piotr Kulinski <p...@w...pl>
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
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.
--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień wpw na wp
piotr
-
57. Data: 2009-05-18 19:34:46
Temat: Re: jak napisaae szybki program
Od: Boguś <n...@i...net>
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ł. A pana znajomy widocznie nie umiał balasnować między nawykami a
myśleniem, więc jak najbardziej prawidłowo wyeliminował się z ewolucji.
> kazdy nawyk jest dobry dopoki nei jest zatosowany w sytuacji w ktorej
> powinno sie uruchomic myslenie
Właśnie.
--
Boguś
-
58. Data: 2009-05-18 19:47:14
Temat: Re: jak napisać szybki program
Od: "jelen" <j...@n...rykowisku>
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 ..
-
59. Data: 2009-05-18 20:44:55
Temat: Re: jak napisać szybki program
Od: Maciej Sobczak <s...@g...com>
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.
Wszystko się zgadza, ale współbieżność jest znacznie szerszym pojęciem
od asynchronicznego I/O - w szczególności go nie wymaga.
Porada miała dobre intencje, ale była źle wyrażona. Przyśpieszenie
programu nie bierze się z asynchronicznego I/O, tylko z właściwego
posłużenia się współbieżnością. Różnica pojęciowa jest ogromna, bo
sama naiwna zamiana "zwykłego" I/O na asynchroniczne kompletnie nic
nie daje, jeśli nie przygotuje się całego programu pod tą okoliczność.
Już lepiej zmienić HDD na SDD - i to by była najprostsza porada w
temacie szybkości I/O. ;-)
--
Maciej Sobczak * www.msobczak.com * www.inspirel.com
-
60. Data: 2009-05-18 20:50:12
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 ..
>
Pierdacz sie
A.L.