Autorowi tłumaczonego artykułu udało się, jak dużej ilości osób, zainstalować Windowsa 10 na Raspberry Pi 2. Następnie stworzył on prostą aplikację w C# na tą platformę pod Windowsem. Zaciekawiło go jaka jest różnica wydajności, pomiędzy Windowsem 10 IoT a Raspbianem, uruchomionymi na tej samej platformie sprzętowej. W tym celu napisał on prostą aplikację w C#, która pozwolić ma na porównanie wydajności
Kod
Przeprowadzane będą w kilku wątkach proste obliczenia w pętli. Liczba wątków równa jest 4, ponieważ Raspberry Pi 2 ma 4 rdzenie CPU - pozwoli to w pełni obciążyć procesor.
Pamiętać należy, że test został zrealizowany z delikatnie różnym kodem (na Windowsie nie da się uruchamiać aplikacji w C# w trybie konsolowym) i przy wykorzystaniu różnych kompilatorów.
Raspbian
Kompilator Mono JIT w wersji 4.0.1
Kompilacja:
Windows 10
Aplikacja napisana w Microsoft .net 4.5
Natomiast interfejs użytkownika:
Do skompilowania aplikacji wykorzystano Visual Studio 2015 w trybie Release.
Jak łatwo zauważyć do obliczeń (metody DoStuf i Iterate) wykorzystano zmienne statyczne, co zapobiegnie ich opymalizacji przez kompilator.
Wyniki
Każdy program został uruchomiony na RPi 10 razy i obliczono średni czas jego realizacji. Dla porównania sprawdzono też jego działanie na komputerze osobistym (Intel Core i5-4590). Wyniki są dosyć zaskakujące (im krótszy czas tym lepiej).
Jak łatwo zauważyć czas realizacji zadania jest pięć razy większy na Raspbianie niż na Windowsie. Czemu? czy coś jest nie tak z programem, albo może to wynik optymalizacji kodu przez kompilator? Aby to rozwiązać autor sprawdził kod IL. Metody Iterate i DoStuf kompilują się do takiego samego kodu:
Wywołania programów także są podobne w obu przypadkach. Autor przeprowadził także podobny test z wykorzystaniem tylko jednego wątku i rezultaty były takie same.
Źródło:
http://druss.co/2015/05/raspberry-pi-2-benchmark-linux-vs-windows/
Kod
Przeprowadzane będą w kilku wątkach proste obliczenia w pętli. Liczba wątków równa jest 4, ponieważ Raspberry Pi 2 ma 4 rdzenie CPU - pozwoli to w pełni obciążyć procesor.
Pamiętać należy, że test został zrealizowany z delikatnie różnym kodem (na Windowsie nie da się uruchamiać aplikacji w C# w trybie konsolowym) i przy wykorzystaniu różnych kompilatorów.
Raspbian
Kompilator Mono JIT w wersji 4.0.1
Kod: C#
Kompilacja:
mcs /debug- /optimize+ /platform:arm bench.csWindows 10
Aplikacja napisana w Microsoft .net 4.5
Kod: C#
Natomiast interfejs użytkownika:
Kod: text
Do skompilowania aplikacji wykorzystano Visual Studio 2015 w trybie Release.
Jak łatwo zauważyć do obliczeń (metody DoStuf i Iterate) wykorzystano zmienne statyczne, co zapobiegnie ich opymalizacji przez kompilator.
Wyniki
Każdy program został uruchomiony na RPi 10 razy i obliczono średni czas jego realizacji. Dla porównania sprawdzono też jego działanie na komputerze osobistym (Intel Core i5-4590). Wyniki są dosyć zaskakujące (im krótszy czas tym lepiej).
Jak łatwo zauważyć czas realizacji zadania jest pięć razy większy na Raspbianie niż na Windowsie. Czemu? czy coś jest nie tak z programem, albo może to wynik optymalizacji kodu przez kompilator? Aby to rozwiązać autor sprawdził kod IL. Metody Iterate i DoStuf kompilują się do takiego samego kodu:
Kod: C#
Wywołania programów także są podobne w obu przypadkach. Autor przeprowadził także podobny test z wykorzystaniem tylko jednego wątku i rezultaty były takie same.
Źródło:
http://druss.co/2015/05/raspberry-pi-2-benchmark-linux-vs-windows/
Fajne? Ranking DIY
