-
Data: 2009-06-12 00:53:28
Temat: Re: Problem lekko OT, ale w WinAVR ;-)
Od: "T.M.F." <t...@n...mp.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]>>>> void Rysuj(tRect&t);
>>>> Inaczej kompilator musi utworzyc kopie obiektu tRect i ta kopie dopiero
>>>> przekazac do funkcji.
>>> W C++ moze to byc faktycznie kosztowne.
>> W C tez powinno byc kosztowne. Bo skad kompilator ma wiedziec, ze Rysuj
>> nie modyfikuje struktury tRect?
>
> Nie musi wiedziec. Ma wrzucic cala na stos, co powinno pojsc dosc
> szybko.
Tak sie nie da. Jesli tRect jest gdzies dalej wykorzystywany to
kompilator musi utworzyc jego kopie, zeby zagwarantowac, ze Rysuj jej
nie zmodyfikuje - to wynika ze standardu. Oczywiscie optymalizator moze
zauwazyc, ze nasze tRect jest dalej niewykorzystywane i z tego etapu
zrezygnowac - no ale to juz zaklada, ze optymalizator jest dosc
sensowny. W tym przypadku zapewne sobie poradzi. Jesli przekazesz adres
struktury bedzie to zawsze dzialac jak nalezy.
>>> W pozostalych sytuacjach trzeba by spojrzec w kod wynikowy co lepiej
>>> kompilatorowi wyszlo.
>>> A wracajac do meritum .. wychodzi na to ze najlepiej byloby odwrocic
>>> sprawe - zrobic funcje z 4 parametrami, a nad nia ewentualnie
>>> nadbudowac wersje ze struktura.
>>> I nie korzystac z niej bez potrzeby :-)
>> Niekoniecznie. 4 parametry to w idealnym przypadku 4 8-bitowe rejestry.
>> Zazwyczaj wiaze sie to z ich wczesniejszym odlozeniem na stosie i potem
>> ponownym pobraniem. Przy przekazaniu przez wskazanie mamy tylko dwa
>> 8-bitowe rejestry wskazujace na strukture, co wiaze sie zmniejszym
>> nakladem na przekazanie parametrow. W procedurze czesto jest to
>> optymalizowane jako LD Rx,Z+y, lub podobne.
>
> Sa to pewne zalozenia i wymagaja odpowiedniego procka.
> W wielu moze wyjsc odwrotnie.
Ale mowimy konkretnie o AVR i AVR-gcc.
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Następne wpisy z tego wątku
- 12.06.09 00:56 T.M.F.
- 12.06.09 00:58 T.M.F.
- 11.06.09 19:01 Zbych
- 11.06.09 19:02 Zbych
- 11.06.09 20:16 Adam Dybkowski
- 12.06.09 03:35 T.M.F.
- 12.06.09 03:37 T.M.F.
- 12.06.09 07:54 Zbych
- 12.06.09 08:14 Zbych
- 12.06.09 09:05 Grzegorz Kurczyk
- 12.06.09 15:42 T.M.F.
- 12.06.09 15:47 T.M.F.
- 12.06.09 10:29 Zbych
- 12.06.09 17:14 T.M.F.
- 12.06.09 11:27 Zbych
Najnowsze wątki z tej grupy
- Rapsberry Pi i synchronizacja plików
- RCD 300 mA
- rpi i moduł przekaźników
- Falownik do pompy CO
- Lampa ogrodowa rozłączała różnicówkę
- Inteligentne oświetlenie schodów
- Pytanie do Użytkownika
- Emanuel kiedyś szukał gotowca do chłodzenia leków
- Sprzęty z Lidl-a
- idzie nowe
- Wybuchające pagery
- Jak shakować windę
- Sterowanie bezprzewodowe do wbudowania
- NC vs NO
- Jak dzięki mojemu pomysłowi amerykańce z Google przyspieszyli TV
Najnowsze wątki
- 2024-10-03 Blokowanie informacji - test
- 2024-10-02 Warszawa => Fullstack Developer <=
- 2024-10-02 Katowice => QA Engineer <=
- 2024-10-02 Gdynia => Data Scientist <=
- 2024-10-02 Warszawa => Sales Development Representative (in German) <=
- 2024-10-02 Warszawa => SAP HANA Developer (Middle) <=
- 2024-10-02 Warszawa => SAP S/4HANA FI/CO Senior Consultant <=
- 2024-10-02 Warszawa => Senior SAP HANA Developers <=
- 2024-10-02 Warszawa => Senior PHP Laravel Developer (e-commerce) <=
- 2024-10-02 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-10-02 Warszawa => Software .Net Developer <=
- 2024-10-02 Warszawa => Programista Full Stack .Net <=
- 2024-10-01 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-10-02 GODZINA ZERO #48 - KRZYSZTOF STANOWSKI I ZBIGNIEW KAPIŃSKI PREZES IZBY KARNEJ SĄDU NAJWYŻSZEGO
- 2024-09-30 Rozprawa zdalna brak komputera