eGospodarka.pl
eGospodarka.pl poleca

  • Data: 2012-05-05 23:54:40
    Temat: Re: [OT] koszt 'virtual' na ARM
    Od: "Andrzej Ekiert" <d...@t...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: