-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: Mario <m...@...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: PIC vs AVR
Date: Tue, 08 Apr 2014 00:06:29 +0200
Organization: Netia S.A.
Lines: 55
Message-ID: <lhv8es$c0h$1@mx1.internetia.pl>
References: <533ddbbb$0$2158$65785112@news.neostrada.pl> <lhpavu$914$1@dont-email.me>
<lhpeqj$ct4$1@speranza.aioe.org> <lhpgfo$kjn$1@dont-email.me>
<lhpluc$v7a$1@speranza.aioe.org> <lhpr39$4rf$1@dont-email.me>
<lhq0sf$7gn$1@speranza.aioe.org> <lhrd9u$agv$1@dont-email.me>
<lhrhae$j9a$1@speranza.aioe.org> <lhrk97$6kg$1@mx1.internetia.pl>
<lhs0th$qtp$1@speranza.aioe.org> <lhs583$vhh$1@mx1.internetia.pl>
<lhs5nm$1fo$1@mx1.internetia.pl> <lhubnd$amu$1@mx1.internetia.pl>
<lhueie$klk$1@mx1.internetia.pl> <lhut4e$4dn$1@mx1.internetia.pl>
<lhuvs6$f3a$1@mx1.internetia.pl> <lhv567$142$1@mx1.internetia.pl>
<lhv6h3$5kv$1@mx1.internetia.pl>
NNTP-Posting-Host: 159-205-85-152.adsl.inetia.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1396909340 12305 159.205.85.152 (7 Apr 2014 22:22:20 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Mon, 7 Apr 2014 22:22:20 +0000 (UTC)
In-Reply-To: <lhv6h3$5kv$1@mx1.internetia.pl>
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.misc.elektronika:662656
[ ukryj 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
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
Najnowsze wątki
- 2025-02-12 Warszawa => Expert Recruiter 360 <=
- 2025-02-12 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-12 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-12 Kraków => PHP Full Stack Developer <=
- 2025-02-12 Karta dźwiękowa stereo
- 2025-02-12 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-12 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-12 Łódź => NodeJS Developer <=
- 2025-02-12 Błonie => Sales Specialist <=
- 2025-02-12 Dziwne zachowanie magistrali adresowej w 8085
- 2025-02-11 Mini pecet
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=