micro-optimization

Która opcja jest lepsza do dzielenia liczby całkowitej przez 2?

Która z poniższych technik jest najlepszą opcją dla podzielenia liczby całkowitej przez 2 i dlaczego? Technika 1: x = x >> 1; Technika 2: x = x / 2; Tutaj x jest liczbą całkowitą.

Jaki jest najlepszy sposób na ustawienie rejestru na zero w x86 assembly: xor, mov lub and?

Wszystkie poniższe instrukcje robią to samo: Ustaw {[1] } na zero. Który sposób jest optymalny (wymaga jak najmniejszej liczby cykli maszynowych)? xorl %eax, %eax mov $0, %eax andl $0, %eax

Co Każdy Programista Powinien Wiedzieć O Pamięci?

Zastanawiam się, ile z Ulricha Dreppera to, co każdy programista powinien wiedzieć o pamięci z 2007 roku, jest nadal aktualne. Nie mogłem również znaleźć nowszej wersji niż 1.0 lub errata.

Kiedy, jeśli w ogóle, rozwijanie pętli jest nadal przydatne?

Próbowałem zoptymalizować jakiś niezwykle krytyczny dla wydajności kod (algorytm szybkiego sortowania, który jest nazywany mi ... jakość branch predictors na nowoczesnym sprzęcie, kiedy, jeśli w ogóle, jest rozwijanie pętli nadal przydatna optymalizacja?

Czy można powiedzieć predyktorowi gałęzi, jak prawdopodobne jest podążanie za gałęzią?

Żeby było jasne, Nie będę się starał o jakąkolwiek przenośność, więc wszelkie rozwiązania, które przywiążą mnie do określoneg ... ywając GCC 4.1.2 i ISA x86, jeśli ma to znaczenie), aby powiedzieć predyktorowi gałęzi, że powinien buforować dla tej gałęzi?

Dlaczego moja aplikacja spędza 24% swojego życia na sprawdzaniu wartości null?

Mam binarne drzewo decyzyjne o znaczeniu krytycznym dla wydajności i chciałbym skupić to pytanie na pojedynczej linii kodu. P ... emat to: Czy mogę użyć do tego szybszej struktury danych niż drzewo? mikro optymalizacja iteracji poprzez drzewo w C #

Najszybszy sposób na usunięcie wszystkich niedrukowalnych znaków z łańcucha Java

Jaki jest najszybszy sposób na usunięcie wszystkich niedrukowalnych znaków z String w Javie? Do tej pory próbowałem i mierzy ... rozwiązań (działające rozwiązanie JNI, ktokolwiek?). Referencje [106]}repozytorium GitHub z pakietem benchmarkingowym

Dziwne użycie?: "w kodzie "typeid"

W Jednym z projektów, nad którymi pracuję, widzę ten kod struct Base { virtual ~Base() { } }; struct ClassX { bool isH ... { bool isHoldingDerivedObj() const { return typeid(nonnull(*m_basePtr)) == typeid(Derived); } Base *m_basePtr; };

Czy MOV x86 naprawdę może być "darmowy"? Dlaczego nie mogę tego odtworzyć?

Ciągle widzę ludzi, którzy twierdzą, że instrukcja MOV może być wolna w x86, z powodu zmiany nazwy rejestru. Nie mogę tego ... V jest wolny, jak twierdzą ludzie? Jeśli tak, to co to jest? A jeśli nie, to dlaczego wszyscy twierdzą, że MOV jest za darmo?

Koszt obsługi wyjątków w Pythonie

W innym pytaniu zaakceptowana odpowiedź sugerowała zastąpienie (bardzo taniego) polecenia if W kodzie Pythona blokiem try/ex ... st różnica (pod względem wydajności), aby mieć obsługę wyjątków, a nie mieć jednego, a nie mieć compare-to-zero if-statement?

Jaki jest najszybszy sposób na znalezienie liczby parzystej lub nieparzystej?

Jaki jest najszybszy sposób na znalezienie liczby parzystej lub nieparzystej?

Dzielenie zmiennoprzecinkowe a mnożenie zmiennoprzecinkowe

Czy istnieje (nie-mikrooptymizacja) wzrost wydajności przez kodowanie float f1 = 200f / 2 W porównaniu do float f2 = 20 ... orytmiczne / architektoniczne, które powodują, że > podział jest znacznie bardziej skomplikowany w sprzęcie niż mnożenie

Dlaczego n++ wykonuje się szybciej niż n=n+1?

W języku C, Dlaczego n++ wykonuje się szybciej niż n=n+1? (int n=...; n++;) (int n=...; n=n+1;) Nasz instruktor zadał to pytanie na dzisiejszej lekcji. (to nie jest zadanie domowe)

' …!= null ' or ' null!= "najlepszy występ",

Napisałem dwie metody sprawdzania wydajności public class Test1 { private String value; public void notNull(){ if( v ... ć? (pomoże mi to udowodnić, że pierwsza implementacja null jest dobra pod względem wydajności jak i w aspekcie czytelności:))

Jak zmusić GCC do założenia, że wyrażenie zmiennoprzecinkowe jest nieujemne?

Są przypadki, w których wiesz, że pewne wyrażenie zmiennoprzecinkowe zawsze będzie nieujemne. Na przykład, przy obliczaniu dł ... więc wyklucza to również przypadek x*x bycia NaN. Jestem w porządku z kompilatorem, platformą, procesorem itp. rozwiązania.

Przekazywanie wskaźnika null do lokacji nowy

Domyślny Operator new jest zadeklarowany w 18.6 [wsparcie.dynamiczne] ¶1 z wyjątkiem nie rzucającym-Specyfikacja: void* ope ... iowanym zachowaniem jest używanie wskaźnika null z umieszczeniem nowego, więc Kompilatory nie są już wymagane do sprawdzania.

Który z tych fragmentów kodu jest szybszy w Javie?

A) for(int i = 100000; i > 0; i--) {} B) for(int i = 1; i < 100001; i++) {} Odpowiedź znajduje się na tej stronie (pytanie 3). Nie mogę tego rozgryźć. dlaczego? ze strony internetowej: 3. a

Dlaczego pozycja funkcji w pliku c++ wpływa na jej wydajność

Dlaczego pozycja funkcji w pliku c++ wpływa na jej wydajność? Konkretnie w poniższym przykładzie mamy dwie identyczne funkcje ... tel Sandy Bridge i7-2600 i Intel Xeon X5482. Dlaczego to się dzieje? Jakie narzędzia są dostępne do zbadania czegoś takiego?

Czy wydajność jest zmniejszona podczas wykonywania pętli, których liczba uop nie jest wielokrotnością szerokości procesora?

Zastanawiam się, jak działają pętle o różnych rozmiarach na najnowszych procesorach x86, jako funkcja liczby uops. Oto cytat ... x / 4) iteracje, a nie po prostu x / 4. Czy to prawda dla niektórych lub wszystkich ostatnich procesory kompatybilne z x86?

Dlaczego mulss wykonuje tylko 3 cykle na Haswell, różni się od tabel instrukcji Agnera? (Rozwijanie pętli FP z wieloma akumulatorami)

Jestem nowicjuszem w optymalizacji instrukcji. Zrobiłem prostą analizę na prostej funkcji dotp, która jest używana do uzyska ... add231ss xmm0, xmm1, DWORD PTR [rsi+rax] add rax, 4 cmp rdx, rax jne .L3 ret