To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Porównanie języków programowania
#2
Pomysł ciekawy, ja nawet już jakiś czas temu w innym wątku próbowałem też chciałem coś podobnego zrobić, ale na rozwiązanie problemu odpowiedział niestety tylko jeden z kolegów. Zaproponuje go tutaj również, do testu bo jest on ciekawy. Sam problem jest łatwy, ale może powodować nie lada problem (generować duży kod) w przypadku kodu napisanego w C.

Mam jednak pytanie i sugestię co do samego wyniku testu.
Czy porównujemy wielkość i czas potrzebny do wykonanie test od samego początku kodu (resetu procesora)?

Dlaczego o to pytam, jak wiesz za czym procesor wykona pierwszą linijkę naszego kodu, kompilator w kodzie wynikowym umieszcza tablice skoków przerwań, inicjalizację stosu, zmiennych, pamięci itd.

Czasami różnicę, nawet w tym samym kompilatorze, ale miedzy różnymi procesorami są bardzo duże. Przykładowo tablica przerwań miedzy takim archaicznym 90S2313, a amega162 to ze względu na ilość przerwać, oraz w przypadku atmegi trzy bajtowy rozkaz skoku, wielkość początku kodu kilkakrotnie jest dłuży dla 162.

Proponuję, aby jednak tą cześć kody i pracy procesora pominąć, można ewentualnie wykonać osobne porównanie takiej części kodu.

Proponuje, w przypadku kodu, wykonać najpierw kompilację, tzw. pustego programu, w którym były by zawarte tylko zmienne globalne i tą wartość odjąć o wynikowego kodu już całego rozwiązania testu. Podobnie jeśli chodzi o ilość taktów procesora, najpierw określić ile zajmuję taki prolog, zresetować w debugerze licznik i wykonać symulację dla głownego kodu testu.

PS. Ja będę zgłaszał funkcje napisane w bascom i WinAvr
--= SWL SP6-01-396 =--
Cytuj


Wiadomości w tym wątku
Porównanie języków programowania - przez SP5FCS - 29-03-2012, 23:19

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości