-
Data: 2014-04-08 00:06:29
Temat: Re: PIC vs AVR
Od: Mario <m...@...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2014-04-07 23:35, Sylwester Łazar pisze:
>> Jakbyś nie kombinował z tego przykładu z AVR nie wykażesz, że po
>> kompilacji kod jest wielokrotnie mniej wydajny. Ani w ilości instrukcji
>> ani w czasie wykonywania.
> Po analizie głównej pętli sortującej widać, że:
> stosunek czasu wykonywania kodu w C do czasu wykonywania kodu w ASM
> będzie ok. 3x większy.
>
> W pierwszym poście zrobiłem błąd.
> Podałem:
> "2) Testów czasowych _nie robiłem_, ale główna pętla przepisywania rekordów
> ma w asm: 20 instrukcji,
> a w C po przekompilowaniu: 121 instrukcji.
> Wygląda na to, że w C program działa jakieś 6x wolniej."
> Przeprosiłem za to i skorygowałem.
> Chodziło o 121 bajtów,
> czyli instrukcji tam jest ok. 60.
> Czyli już masz Tc/Tasm = ~3x
> Tc/Tasm = 1,6 jest liczbą nierealną.
>
> Z moich doświadczeń wynika, że:
> czasowo ten stosunek wychodzi jeszcze gorzej.
>
> Ale to, aby było solidnie, należałoby zmierzyć dodając timer.
> i dlatego analiza czasowa NIE BYŁA PRZEPROWADZANA.
>
> Zobacz sobie na metodę qsort().
> Tam używa się rekurencji.
> Czyli jeżeli kompilator, (użyję Twojego języka i mojego)
> jest nieoptymalny/spartolił sprawę w głównej pętli,
> to rekurencji podlega także wykładniczo czas realizacji całości.
>
> I właśnie rekurencyjny qsort() masz zaimplementowany w bibliotece C30
> Microchipa w standardzie.
>
> Może znajdzie się ktoś, kto dokona ANALIZY czasowej, bo ja niestety nie mam
> czasu,
> a tylko ochotę :-)
> A potem powiesz, że zrobiłem to, aby się pochwalić.
Z czego wynikają twoje projekcje na temat mojego ewentualnego
zachowania? Jakiś uraz osobisty?
Twoje rozważania na temat efektów kompilacji na PICach zostały
uzupełnione przez Janusza, który podał efekt kompilacji na AVR (1.6). Z
tego wynika, że mogą być kompilatory dające wydajniejszy kod niż te dla
PICów. Tak więc z tej waszej analizy można co najwyżej wyciągnąć
wniosek, że programiści c powinni unikać platformy PIC, a programiści
asm bardzo przywiązani do architektury nie powinni przechodzić na c bo
mocno stracą na wydajności kodu. Nie wynika jednak z tego ogólna zasada,
że kompilowanie z c ma dawać wielokrotnie mniej wydajny kod.
--
pozdrawiam
MD
Następne wpisy z tego wątku
- 08.04.14 00:12 Michał Lankosz
- 08.04.14 00:28 Pszemol
- 08.04.14 00:58 Sylwester Łazar
- 08.04.14 01:02 Sylwester Łazar
- 08.04.14 02:12 Pszemol
- 08.04.14 02:18 Pszemol
- 08.04.14 08:59 Dariusz Dorochowicz
- 08.04.14 14:01 Mario
- 08.04.14 14:19 Pszemol
- 08.04.14 19:29 Michał Baszyński
- 08.04.14 19:44 Marek
- 08.04.14 21:15 Marek Borowski
- 08.04.14 21:15 Marek Borowski
- 08.04.14 22:41 jacek pozniak
- 08.04.14 23:38 Sylwester Łazar
Najnowsze wątki z tej grupy
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
Najnowsze wątki
- 2024-11-17 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 2024-11-18 Gdynia => Spedytor Międzynarodowy <=
- 2024-11-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-18 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-18 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-11-18 Kraków => Business Development Manager - Network and Network Security
- 2024-11-18 Kraków => Network Systems Administrator (IT Expert) <=
- 2024-11-18 Kraków => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-18 Zdunowo => Senior PHP Symfony Developer <=
- 2024-11-18 Łódź => QA Inżynier <=
- 2024-11-18 Lublin => Senior PHP Developer <=
- 2024-11-18 Gliwice => Specjalista ds. public relations <=
- 2024-11-18 Gdynia => Front-End Developer (React/Three.js) <=
- 2024-11-18 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-18 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=