-
Data: 2012-05-06 00:26:23
Temat: Re: [OT] koszt 'virtual' na ARM
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 06.05.12 00:30 Jerry1111
- 06.05.12 00:36 Jerry1111
- 06.05.12 01:13 Andrzej Ekiert
- 06.05.12 01:21 Sebastian Biały
- 06.05.12 10:57 Jerry1111
- 06.05.12 12:13 Sebastian Biały
- 06.05.12 13:47 Michoo
- 06.05.12 14:28 Michoo
- 06.05.12 15:04 Sebastian Biały
- 06.05.12 15:19 Jerry1111
- 06.05.12 15:37 Sebastian Biały
- 06.05.12 16:05 Michoo
- 06.05.12 16:12 Sebastian Biały
Najnowsze wątki z tej grupy
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
- skąd my to znamy
- Re: Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-06-27 Re: Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-06-27 A co mnie to koooorwa obchodzi?
- 2024-06-28 nawigacja satelitarna
- 2024-06-28 SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- 2024-06-27 położyłem kafelki
- 2024-06-28 Łódź => International Freight Forwarder <=
- 2024-06-28 Łódź => Spedytor Międzynarodowy <=
- 2024-06-28 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-06-28 Sopot => Team Leader E-Commerce for Foreign Markets <=
- 2024-06-28 Warszawa => Senior React Native Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Software .Net Developer <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=
- 2024-06-28 Warszawa => Programista Full Stack .Net <=
- 2024-06-28 Warszawa => Frontend Developer (React) <=