compiler-optimization
benchmarking, Zmiana kolejności kodu, lotna
Decyduję się na testowanie konkretnej funkcji, więc naiwnie piszę kod w ten sposób:
#include <ctime>
#include <ios ... nieulotnej jest konsekwentnie szybka, podczas gdy wersja nieulotna jestniekonsekwentnie (a czasami dramatycznie) wolniejsza.
Jak kompilator tak dobrze optymalizuje tę funkcję?
Więc przeglądałem trochę magii, która jest O3 w GCC (właściwie kompiluję za pomocą Clang, ale to samo jest z GCC i zgaduję, ż ... ym interesującym efektem ubocznym tego pytania byłoby pokazanie kilku ciekawszych optymalizacji, które GCC/Clang może zrobić.
Czy kompilator może zoptymalizować przydzielanie sterty do stosu?
Jeśli chodzi o optymalizację kompilatora, czy jest legalna i / lub możliwa zmiana alokacji sterty na alokację stosu? A może z ... , gdyby Oryginalna wersja opierała się na takich rzeczach, jak niestandardowe alokatory. Czy norma mówi coś konkretnie o tym?
Czy różne poziomy optymalizacji mogą prowadzić do funkcjonalnie odmiennego kodu?
Jestem ciekaw wolności jakie ma kompilator podczas optymalizacji. Ograniczmy to pytanie do GCC i C / C++ (dowolna wersja, dow ... jeśli wiąże się to z nadużywaniem ścisłego aliasingu. (Pod warunkiem, że ktoś pokazujesz mi, jak wysłać bounty komuś innemu.)
Jaka jest różnica pomiędzy opcjami kompilatora /Ox i /O2?
Kompilator C++ firmy Microsoft (cl.exe, dołączony do Visual Studio) oferuje kilka przełączników optymalizacyjnych. Różnica mi ... su kompilacji? Czy jest to po prostu zupełnie bezsensowna "rekomendacja" wynikająca z faktu, że /O2 jest domyślną opcją W VS?
Optymalizacje JIT Hotspot
W wykładzie na temat JIT w Hotspot chcę podać jak najwięcej przykładów konkretnych optymalizacji, które wykonuje JIT.
Wiem tylko o "method inlining" , ale powinno być o wiele więcej. Daj głos na każdy przykład.
Optymalizacja kodu GCC SSE
Ten post jest ściśle związany z innym, który napisałem kilka dni temu . Tym razem napisałem prosty kod, który po prostu doda ... niż pierwszy. Zrobiłem również test z pojedynczymi wartościami dokładności i uzyskałem podobne wyniki. Jaki jest tego powód?
Granice typu Nat w bezkształtnych
W bezkształtnym, typ Nat reprezentuje sposób kodowania liczb naturalnych na poziomie typu. Jest to używane na przykład dla li ...
Czy reprezentacja ta może reprezentować duże liczby, np. 1000000 lub 253, a może spowoduje to rezygnację kompilatora Scali?
W jaki sposób GCC optymalizuje nieużywaną zmienną zwiększoną wewnątrz pętli?
Napisałem ten prosty program w C:
int main() {
int i;
int count = 0;
for(i = 0; i < 2000000000; i++){
... tko wyjaśnij:
wyjściegcc-S-O2 .
jeśli pętla jest zoptymalizowana zgodnie z oczekiwaniami (jedna suma zamiast wielu Sum)?
Czy to błąd optymalizacji kompilatora, czy nieokreślone zachowanie?
Mamy irytujący błąd, którego nie potrafię wyjaśnić wokół tego kawałka kodu:
unsigned char bitmap[K_BITMAP_SIZE] = {0} ;
Set ... np. wygenerowany asembler dla obu konfiguracji, aktualizacja Jak g++ radzi sobie z tym problemem), tak szybko jak to możliwe.
Dlaczego inlining kompilatora generuje wolniejszy Kod niż inlining ręczny?
Tło
[10]}następująca pętla krytyczna kawałka oprogramowania numerycznego, napisanego w C++, zasadniczo porównuje dwa obiekt ... onieważ nie jest to możliwe, ponieważ nie jest to możliwe, ponieważ nie jest to możliwe, ponieważ nie jest to możliwe.]}
Przepisywanie jako praktyczna technika optymalizacji w GHC: czy jest to naprawdę potrzebne?
Czytałem artykuł napisany przez Simon Peyton Jones, et al. nazwa "gra według zasad: przepisywanie jako praktyczna technika o ... s. Algorytm tej automatycznej konwersji wydaje się być dość prosty. Dlaczego więc nie wdrożyć tego zamiast przepisywać reguł?
Funkcja nie wywołana w kodzie zostanie wywołana w czasie wykonywania
Jak poniższy program może wywołać never_called Jeśli nigdy
kod?
#include <cstdio>
static void never_called()
{
std: ... the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Kiedy Hotspot może przydzielić obiekty na stosie? [duplikat]
To pytanie ma już odpowiedź tutaj:
uprawnienia do analizy ucieczki / alokacji stosu za pomocą Java 7
... pytanie jest duplikatem, ale (IMO) odpowiedź poniżej jest lepszą odpowiedzią niż to, co jest dostępne w pytaniu oryginalnym.