Optymalizacja własnego języka interpretowanego

0

Napisałem w c++ wstępną implementacją własnego języka interpretowanego(i nie jest to jakiś tam shit wykonujący jedną funkcję jakich wiele widziałem)- wszystko działa prawie tak jak chciałem ( została mi implementacja return i break ale bez tego da się żyć...), jednak jego wydajność pozostawia jeszcze wiele do życzenia- może ktoś podpowie, gdzie szukać optymalizacji? Z językiem c++ mam małe doświadczenie- długo siedzę za to w c, więc mogę robić coś "brzydko" dlatego zwracam się o pomoc do ekspertów. archiwum z aktualnym kodem i przykładowym programem (test.g) wypisującym kolejne liczby od -99 do 0 jest dostępne pod adresem: http://ksanderon.tk/pliki/g.zip

Wszelkie uwagi mile widziane.

0

JIT-owanie do kodu assemblera :)

0

Nie wiem co dokładnie ten program robi, bo nie przebrnąłem przez nieskomentowany kod źródłowy z dziwnymi nazwami zmiennych (w jednej funkcji masz zmienne tmp, temp, temp2, a oraz s1). Pierwsze co się rzuca w oczy to ogromna ilość skoków, którą można zredukować (np. switch). Wszystko masz jako string, co jest głównym powodem wolnej szybkości. Trzeba by zrobić coś w stylu JIT, czyli np. pozmieniać wszystkie identyfikatory na inty (ogólnie coś co może być szybko porównywane), wartości zmiennych walnąć w jakąś unie (lub stary dobry void*), itp.

0

A słyszałeś o profilerach?

1 użytkowników online, w tym zalogowanych: 0, gości: 1