eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjak optymalizować ze względu na znany warunek w wielokrotnie powtarzanym bloku? [2] › Re: jak optymalizować ze względu na znany warunek w wielokrotnie powtarzanym bloku? [2]
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!
    nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-
    mail
    From: "Filip Sielimowicz" <s...@t...tez.wp.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: jak optymalizować ze względu na znany warunek w wielokrotnie
    powtarzanym bloku? [2]
    Date: Mon, 7 Sep 2009 11:13:55 +0200
    Organization: TP - http://www.tp.pl/
    Lines: 51
    Message-ID: <h82j0t$c9b$1@atlantis.news.neostrada.pl>
    References: <h7jeoq$1n93$1@news.ett.com.ua> <h7jet7$1n93$2@news.ett.com.ua>
    NNTP-Posting-Host: efp194.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.neostrada.pl 1252314975 12587 83.14.249.194 (7 Sep 2009
    09:16:15 GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Mon, 7 Sep 2009 09:16:15 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    Xref: news-archive.icm.edu.pl pl.comp.programming:183412
    [ ukryj nagłówki ]


    Użytkownik "gupi man'a'go" <2...@i...sk> napisał w wiadomości
    news:h7jet7$1n93$2@news.ett.com.ua...
    > jak zapisać następujacy program tak, by ładny zapis składniowy nie
    > kosztował nieoptymalnie długiego czasu wykonywania?

    A jakiego rzędu wielkości jest ta 'nieoptymalność' ? Walka o tego if'a z
    warunkeim na prostej zmiennej
    typu bool jest imho bez sensu, jeśli, jak mówisz, otacza on 'dowolne bardzo
    zagłebione struktury wykonawcze'.
    Ja bym się bardziej skupił na tym, by kod był przejrzysty i jak najmniej
    redundancji.
    A jeśli akurat zagłębiona pętla jest wyjątkowo 'ciasna' i walczymy o każy
    takt
    (znaczy się bardzo często wykonywana i prosta - proc_1 i proc_3 są bardzo
    proste a iterator _2 bardzo liczny),
    to rozważyłbym ewentualnie wyłączenie tego warunku 'pętlę wyżej', czyli:
    Być może warto wtedy dodatkowo rozważyć zamiany iteratorów, jeśli iterator_1
    jest liczniejszy niż iterator_2
    (i zamiana jest możliwa)

    int condition;
    for( iterator_1 )
    if( condition )
    for( iterator_2 ) {
    proc_1();
    proc_2();
    proc_3();
    } else
    for( iterator_2 ) {
    proc_1();
    proc_3();
    }

    Jest to jakiś kompromis między redundancją całości a nieoptymalnością.
    Ale jeszcze raz: jeśli umieszczenie ifa wewnątrz ciasnej pętli powoduje
    spadek wydajnosci rzędu 1-5% to IMHO rozważanie tej kwesti
    nie ma uzasadnienia praktycznego. A z tego co piszesz o 'złożoności
    struktur',
    to będzie to jeszcze mniej.
    No i jak ktoś wspomniał - kompilator i tak
    sam często będzie potrafił 'wyprowadzić' zależną od lokalnej 'stałej'
    (zmiennej
    nie zmieniającej się) na zewnątrz pętli.

    Prawdę mówiąc myślałem, że chodzi Ci o problem, gdzie condition nie jest
    zmienną
    ale funkcją, której wynik może sięzmienić albo zmienną współdzieloną przy
    dostępie wielowątkowym. Ale widzę, że tu sprawa jest maksymalnie prosta.
    Ty nie masz większych problemów programistycznych ? :)

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: