kategoria: ANSI C
[#31] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@mateusz_s, post #30

Wracajac jeszcze do problemu z tego watku: Udalo mi sie powtorzyc problem na moim gcc. Troche inny kod ale rezultat ten sam. I szczerze mowiac nie mam pojecia czemu gcc sie gubi w tym wypadku. Jedyne co moge Ci poradzic, to zebys nie uzywal zmiennych globalnych. Jesli szerokosc/wysokosc przekazesz jako parametry do funkcji, lub jesli zrobisz lokalna kopie tych zmiennych przed petla i uzyjesz do warunkowania petli i indeksowania tablicy - gcc generuje optymalny kod:

.L57:
	move.l d0,(a0)+
        dbra d7,.L57

Mozesz jeszcze sprobowac -funroll-all-loops, zeby zobaczyc co sie stanie z petla, ale tu bym byl ostrozny: duzo zalezy od wielkosci petli i tego co sie w niej dzieje. Krotkie petle zazwyczaj wychodza niezle.
W przypadku twojego kodu:
normalna petla (juz taka optymalna, bez mnozen w srodku):
TEST 1: 3134.400 fps   (time: 5s)

z -funroll-all-loops
TEST 1: 4645.800 fps   (time: 5s)
[#32] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@lef, post #31

porownywales z 2.95 moze?
[#33] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@michal_zukowski, post #32

jeszcze nie, zainstaluje sobie potem moze ten cubic ide, tam jest kilka kompilatorów to bym sobie od razu porównał z vbcc
[#34] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@lef, post #31

dzięki.. będę testował także ten parametr..
[#35] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@michal_zukowski, post #32

Tak, 2.95 generuje duzo slabszy kod, nie polecam. I ma ten sam problem ze zmienna globalna.
[#36] Re: [C, RTG] Różne tryby ekranu 16, 24, 32 bpp - a grafika w programie.

@lef, post #35

bardzo ciekawe, dobrze wiedzieć, napisałem o tym problemie w wątku na EAB o gcc 6

ps. ten wątek o błedzie GCC jest tutaj
https://www.ppa.pl/forum/programowanie/42711/-c-gcc-zupelnie-inna-wydajnosc-miedzy-typem-int-a-long-wtf
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem