eGospodarka.pl
eGospodarka.pl poleca

  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.inte
    rnetia.pl!not-for-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: [OT] koszt 'virtual' na ARM
    Date: Sun, 06 May 2012 00:26:23 +0200
    Organization: Netia S.A.
    Lines: 64
    Message-ID: <jo49j1$sg$1@mx1.internetia.pl>
    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> <o...@j...jedi>
    NNTP-Posting-Host: 83.238.197.12
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1336256929 912 83.238.197.12 (5 May 2012 22:28:49 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Sat, 5 May 2012 22:28:49 +0000 (UTC)
    In-Reply-To: <o...@j...jedi>
    X-Tech-Contact: u...@i...pl
    User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:8.0) Gecko/20120216
    Icedove/8.0
    X-Server-Info: http://www.internetia.pl/
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:630637
    [ ukryj nagłówki ]

    On 05.05.2012 23:54, Andrzej Ekiert wrote:
    > 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:
    >
    [...]
    Tylko zauważ, że chciałem tu zaprezentować koszt związany z funkcjami
    wirtualnymi - użycie klas i funkcji wirtualnych do wypisywania kilku
    napisów to 'trochę' głupi pomysł.

    Odpowiednikiem funkcji wirtualnych z którym się spotkałem w C jest
    wskaźnik na funkcję a z wtedy użycie metod wirtualnych to dodatkowy
    koszt VTABLE.

    > } if (ll == 3) { /* tuś się chyba pomylił, ale zostawiłem bez else, żeby
    > było tak samo */
    Rzeczywiście się pomyliłem pisząc kod, ale w poście statystyki są dla
    poprawionego kodu, przeczyłem sam kod.

    >
    > 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).
    + 40 bajtów Os
    + 128 bajtów O0

    >
    > Po poprawieniu buga z "else":
    > -O0 : 1452 do 1578 (126)
    > -Os : 1197 do 1287 (90)
    + 72 bajty Os
    + 132 bajty O0

    Kompiluję na gcc-4.7.0 z:

    COMMON_FLAGS= -ggdb -Os $(INCLUDES) -mcpu=cortex-m3 -mthumb
    -D__thumb2__ -msoft-float -mfloat-abi=soft
    CXXFLAGS=$(COMMON_FLAGS) -std=gnu++11 -fno-exceptions -fno-rtti

    >
    > 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ć.
    >
    Że kod w THUMB jest wydajniejszy niż w PIC32 ;) I że hardcore c++ bez
    optymalizacji jest małą masakrą - całość przy O0 spuchła do 8176 -
    prawie 2 razy (a przebudowałem tylko projekt, bez bibliotek).

    --
    Pozdrawiam
    Michoo

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: