eGospodarka.pl
eGospodarka.pl poleca

  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!not-f
    or-mail
    From: "Andrzej Ekiert" <d...@t...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: [OT] koszt 'virtual' na ARM
    Date: Sat, 05 May 2012 23:54:40 +0200
    Organization: Netia S.A.
    Lines: 65
    Message-ID: <o...@j...jedi>
    References: <4f9d25af$1$1209$65785112@news.neostrada.pl>
    <jnmvba$pbl$1@inews.gazeta.pl> <o...@j...jedi>
    <jnn0o5$ssr$1@inews.gazeta.pl> <o...@j...jedi>
    <jnn2ld$3ti$1@inews.gazeta.pl> <o...@j...jedi>
    <jnomqu$stm$1@inews.gazeta.pl> <o...@j...jedi>
    <jnprj1$oao$1@inews.gazeta.pl> <jns5kg$f21$1@inews.gazeta.pl>
    <jnsacs$rph$1@inews.gazeta.pl> <jnuqev$11e$1@inews.gazeta.pl>
    <jnuugj$ada$1@inews.gazeta.pl> <jo17h0$rvv$1@inews.gazeta.pl>
    <jo2i12$8ms$1@inews.gazeta.pl> <jo37cn$io3$1@inews.gazeta.pl>
    <jo3crt$1k1$1@inews.gazeta.pl> <jo3p45$rtv$1@inews.gazeta.pl>
    <jo43vv$guu$1@mx1.internetia.pl>
    NNTP-Posting-Host: ip-91-192-3-72.techmedia.com.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
    Content-Transfer-Encoding: Quoted-Printable
    X-Trace: mx1.internetia.pl 1336254993 28711 91.192.3.72 (5 May 2012 21:56:33 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Sat, 5 May 2012 21:56:33 +0000 (UTC)
    To: Michoo <m...@v...pl>
    X-Tech-Contact: u...@i...pl
    User-Agent: Opera Mail/10.10 (MacIntel)
    X-Server-Info: http://www.internetia.pl/
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:630635
    [ ukryj nagłówki ]

    Dnia 05-05-2012 o 22:50:52 Michoo <m...@v...pl> napisał(a):


    >
    > Dopisałem do projektu następujące klasy:

    [snip kod]

    > Binarka przytyła po tym o 200 bajtów:

    [snip szczegóły]

    Nie będzie to żaden argument w dyskusji na temat metod wirtualnych, ale z
    ciekawości do małego programu w C+asm (na PIC24) dopisałem następujące
    wiersze:

    const char msg1[] = "foo\r\n";
    const char msg2[] = "bar\r\n";
    const char msg3[] = "foobar\r\n";
    const char msg4[] = "off\r\n";

    Następnie w main():

    const char *msg;
    int ll = recv(0); /* odczyt z czegoś innego niż uart, nieistotne z czego,
    0 to numer kanału */

    if (ll == 1) {
    msg = msg1;
    } else if (ll == 2) {
    msg = msg2;
    } if (ll == 3) { /* tuś się chyba pomylił, ale zostawiłem bez
    else, żeby było tak samo */
    msg = msg3;
    } else {
    msg = msg4;
    }
    uart_send_str(msg);

    Przy -O0 binarka zwiększyła się z 1452 do 1575 bajtów (123 bajty).
    Przy -Os binarka zwiększyła się z 1197 do 1269 bajtów (72 bajty).

    Po poprawieniu buga z "else":
    -O0 : 1452 do 1578 (126)
    -Os : 1197 do 1287 (90)

    Ogólna zmiana przy włączeniu optymalizacji jest mała, bo to program tylko
    do testowania sporego kawałka kodu pisanego w asemblerze i C tam mało jest.

    Sam nie wiem czy i jakie wnioski z tego wyciągać.

    ae

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: