compiler-optimization

Używanie języka Assembly W C / C++

Pamiętam, że gdzieś czytałem, że aby naprawdę zoptymalizować i przyspieszyć pewną część kodu, Programiści piszą tę sekcję w j ... lera, Twój kod będzie prawdopodobnie działał wolniej, ponieważ często kompilator optymalizuje kod lepszy niż większość ludzi.

Jak wyłączyć optymalizacje kompilatorów w gcc?

Próbuję nauczyć się języka asemblera. Szukałem i znalazłem jak zdemontować plik .c, ale wydaje mi się, że tworzy on jakąś zop ... alizowaną wersję programu. Czy jest jakiś sposób, abym mógł zobaczyć dokładny kod złożenia, który odpowiada mojemu plikowi C.

Program Java działa wolniej, gdy kod, który nie jest wykonywany, jest komentowany

Zaobserwowałem dziwne zachowanie w jednym z moich programów Java. Próbowałem usunąć kod w jak największym stopniu, jednocześn ... ku kodu (lub liczbą wywołań funkcji itp.). Wszelkie dalsze informacje na ten temat będą mile widziane! Edit: używam JDK 1.8.

Czy to błąd JVM czy "oczekiwane zachowanie"?

Zauważyłem pewne nieoczekiwane zachowanie (nieoczekiwane w stosunku do moich osobistych oczekiwań), i zastanawiam się, czy co ... jest to albo błąd w JVM, albo dzieje się dużo dziwnej optymalizacji, która sprawia, że to oczekiwane zachowanie. Co to jest?

Efektywność przedwczesnego powrotu w funkcji

Jest to sytuacja, z którą często spotykam się jako niedoświadczony programista i zastanawiam się nad szczególnie ambitnym, sz ... zególności w tym przypadku nie ma to znaczenia, ponieważ zarówno if/else, jak i return tworzą tę samą gałąź do końca funkcja.

Błąd występujący tylko przy włączonej optymalizacji kompilacji

Natknąłem się na błąd w kodzie, który jest powielany tylko wtedy, gdy kod jest zbudowany z włączoną optymalizacją. Zrobiłem ... maszyną wirtualną z systemem Windows Server 2003 R2 z. NET 3.5 SP1. Korzystanie z systemu zespołu VS2008. Dzięki, Brian

Jak zrobić nieskończoną pustą pętlę, która nie będzie zoptymalizowana?

Standard C11 wydaje się sugerować, że instrukcje iteracji ze stałymi wyrażeniami kontrolującymi nie powinny być optymalizowan ... e istniała. Jak sprawić, by Clang wypuścił właściwą, nieskończoną pętlę bez dostępu do pamięci z włączonymi optymalizacjami?

Model pamięci C++0x i obciążenia spekulacyjne / sklepy

Czytałem więc o modelu pamięci, który jest częścią nadchodzącego standardu C++0x. Jednak jestem nieco zdezorientowany niektór ... w oryginalnym kodzie, a zatem transformacja jest zabroniona. Ten sam argument odnosi się również do przykładu 3.1.3 w N2197.

Jaki rodzaj optymalizacji oferuje const w C / C++? (jeśli w ogóle)

Wiem, że w miarę możliwości należy używać słowa kluczowego const podczas przekazywania parametrów przez referencję lub wskaźn ... 1234 Deklaracje funkcji: const char* foo() Jaki rodzaj optymalizacji kompilatora oferuje każdy z nich (jeśli w ogóle)?

"xor eax, ebp" używany w kompilatorze C++

Próbowałem skompilować kilka fragmentów C++ na VS2010 i przeanalizowałem pliki wykonywalne na IDA Pro. Zauważyłem, że większo ... xor eax, ebp I coś w rodzaju xor ecx, ebp Na dole. Dlaczego tak się dzieje? Optymalizacja kompilatora została wyłączona.

Kompilator przestaje optymalizować nieużywany ciąg znaków podczas dodawania znaków

Jestem ciekaw dlaczego następujący fragment kodu: #include <string> int main() { std::string a = "ABCDEFGHIJKLMNO ... obserwacji albo całkowicie upuszczają nieużywaną zmienną (ellcc) albo generują dla niej kod niezależnie od długości łańcucha.

Dlaczego nie zawsze używać optymalizacji kompilatora?

Jedno z pytań, które zadałem jakiś czas temu miało nieokreślone zachowanie, więc optymalizacja kompilatora powodowała awarię ... m, dlaczego nie zawsze używać kompilatora optymalizacja? Czy Jest jakiś powód, by używać, powiedzmy, -O zamiast -O2 lub -O3?

Wykonanie zmiany rozmiaru std:: vector>

Ogólna koncepcja wydaje się być taka, że std::unique_ptr ma brak narzutu czasu w porównaniu z prawidłowo używanymi wskaźnik ... m wskaźników surowych? Uwaga: Załóżmy, że T jest polimorficzny i drogi w ruchu, więc std::vector<T> nie wchodzi w grę.

Jak zrobić kawiarnię, a nie kawiarnię w Haskell?

Jak przekształcić stałą formę aplikacyjną w, cóż, nie stałą formę aplikacyjną, aby zatrzymać ją na cały okres trwania program ... Peyton-Jonesa do Neila Mitchella, który zadał dokładnie to pytanie-ale ta odpowiedź odnosi się do martwego linku, niestety.

Optymalizacja wartości zwrotnej i efekty uboczne

Return value optimization (RVO) jest techniką optymalizacji obejmującą eliminację kopii, która eliminuje tymczasowy obiekt ut ... tanie, ponieważ na konkretne pytania, o których wspomniałem, nie ma bezpośredniej odpowiedzi w innych, powiązanych pytaniach.

Zmiana kolejności instrukcji odczytu/zapisu w GCC

Prymitywy synchronizacji Linuksa (spinlock, mutex, RCUs) używają instrukcji barrier memory, aby wymusić ponowne uporządkowani ... d architektury pamięci podręcznej. Bardzo przydatny byłby przykładowy kod C i zmodyfikowany kod generowany przez GCC. Dzięki!

Dlaczego kod miałby aktywnie zapobiegać optymalizacji połączeń ogonowych?

Tytuł pytania może być trochę dziwny, ale chodzi o to, że z tego co wiem, nic nie przemawia przeciwko optymalizacji połączeń ... o programistanormalny też powinienem zachować ten umysł? Np. czy istnieją typowe pułapki z optymalizacji połączeń ogonowych?

Dlaczego w Haskell nie ma paralelizmu?

Haskell jest funkcjonalny i czysty, więc zasadniczo ma wszystkie właściwości potrzebne kompilatorowi, aby mógł poradzić sobie ... czego nie ma jeszcze takiej funkcjonalności zaimplementowanej w kompilatorze z flagą lub pragmą? Jakie są praktyczne powody?

GCC: różnica wektoryzacji między dwiema podobnymi pętlami

Podczas kompilacji z gcc -O3, Dlaczego następująca pętla nie wektoryzuje się (automatycznie): #define SIZE (65536) int a[S ... te: Profitability threshold is 7 loop iterations. v.c:9: note: LOOP VECTORIZED. v.c:5: note: vectorized 1 loops in function.