Mój kolega dzisiaj zaangażował klasę o nazwie ThreadLocalFormat, która zasadniczo przeniosła instancje klas formatu Java do lokalnego wątku, ponieważ nie są one bezpieczne dla wątków i „stosunkowo drogie” do utworzenia. Napisałem szybki test i obliczyłem, że mogę stworzyć 200 000 instancji na sekundę, zapytałem go, czy tworzy tyle, na które …
Niedawno zadałem pytanie na temat przepełnienia stosu, aby dowiedzieć się, dlaczego isset () był szybszy niż strlen () w PHP . Rodziło to pytania dotyczące znaczenia czytelnego kodu i tego, czy warto poprawić wydajność mikrosekund w kodzie, czy nawet warto. Mój ojciec jest emerytowanym programistą i pokazałem mu odpowiedzi. Był …
Czasami napotykasz sytuację, w której musisz rozszerzyć / ulepszyć istniejący kod. Widzisz, że stary kod jest bardzo ubogi, ale również trudny do rozszerzenia i wymaga czasu. Czy warto zastąpić go nowoczesnym kodem? Jakiś czas temu podobało mi się podejście lean, ale teraz wydaje mi się, że lepiej poświęcić wiele optymalizacji …
„Przedwczesna optymalizacja jest źródłem wszelkiego zła” to coś, co prawie wszyscy z nas słyszeli / czytali. Co mnie ciekawi, jaki rodzaj optymalizacji nie jest przedwczesny, tj. Na każdym etapie tworzenia oprogramowania (projektowanie na wysokim poziomie, szczegółowe projektowanie, wdrażanie na wysokim poziomie, szczegółowe wdrażanie itp.) Jaki zakres optymalizacji możemy rozważyć bez …
Wiele pytań i odpowiedzi na stronach C / C ++, w szczególności lub pośrednio, omawia problemy z wydajnością mikro (takie jak narzut funkcji pośredniej vs. bezpośredniej vs. wbudowanej) lub przy użyciu algorytmu O (N 2 ) vs O (N log N) na lista 100 przedmiotów. Zawsze piszę bez obawy o …
Według Wikipedii reguła optymalizacji programu 90/10 stwierdza, że „90% czasu wykonania programu spędza się na wykonywaniu 10% kodu” (patrz drugi akapit tutaj ). Naprawdę tego nie rozumiem. Co to dokładnie znaczy? Jak 90% czasu wykonania można poświęcić tylko na wykonanie 10% kodu? A co z pozostałymi 90% kodu? Jak można …
Kiedy piszę kod, zawsze staram się, aby mój kod był jak najbardziej czysty i czytelny. Od czasu do czasu przychodzi czas, kiedy trzeba przekroczyć linię i przejść od ładnego czystego kodu do nieco brzydszego kodu, aby był szybszy. Kiedy można przekroczyć tę linię?
Jesteśmy często mówią , że sprzęt nie obchodzi, co język program jest napisany w jak to widzi tylko skompilowany kod binarny, jednak nie jest to cała prawda. Weźmy na przykład pokornego Z80; jego rozszerzenia do zestawu instrukcji 8080 obejmują instrukcje takie jak CPIR, które są przydatne do skanowania ciągów typu …
To jest ogólne pytanie na temat, który uważam za interesujący jako gracz: wąskie gardła procesora / GPU i programowanie. Jeśli się nie mylę, doszedłem do wniosku, że zarówno CPU, jak i GPU obliczają różne rzeczy, ale ten jest lepszy w niektórych obliczeniach niż drugi ze względu na różnicę w architekturze. …
Go jest jednym z niewielu języków, które powinny działać „blisko metalu”, tzn. Jest kompilowane, statycznie wpisywane i wykonuje kod natywnie, bez maszyny wirtualnej. To powinno dać mu przewagę prędkości nad Javą, C # i podobnymi. Wygląda jednak na to, że jest za Javą (patrz: Strzelanie do języków programowania ) Zakładam, …
Czy powinieneś poświęcić czytelność kodu z jego wydajnością? np. 3 linie kodu w 1 linii. W Code Craft autorstwa Pete'a Goodliffe'a przeczytałem, że kluczem jest czytelność. Twoje myśli?
Czy istnieje jakiś kompilator just-in-time dla skompilowanych języków, takich jak C i C ++? (Pierwsze imiona, które przychodzą na myśl, to Clang i LLVM! Ale nie sądzę, że obecnie je obsługują.) Wyjaśnienie: Myślę, że oprogramowanie może skorzystać z informacji zwrotnych dotyczących profilowania środowiska wykonawczego i agresywnie zoptymalizowanej ponownej kompilacji punktów …
Czytałem popularną odpowiedź na temat przewidywania gałęzi z https://stackoverflow.com/q/11227809/555690 i coś mnie dezorientuje: Jeśli dobrze zgadłeś, nadal trwa. Jeśli pomyliłeś się, kapitan zatrzyma się, cofnie i krzyknie na ciebie, aby przełączyć przełącznik. Następnie może ponownie uruchomić inną ścieżkę. Jeśli dobrze zgadniesz za każdym razem, pociąg nigdy nie będzie musiał się …
Chociaż nie jest to obowiązkowe w standardzie C ++, wydaje się, że GCC, na przykład, implementuje klasy nadrzędne, w tym czysto abstrakcyjne, poprzez włączenie wskaźnika do tabeli v dla tej abstrakcyjnej klasy w każdej instancji danej klasy . Oczywiście powoduje to powiększenie rozmiaru każdej instancji tej klasy o wskaźnik dla …
Spotkałem wielu ludzi, którzy są dogmatycznie przeciwni czemukolwiek, co można uznać za „optymalizację” w ogólnym znaczeniu tego słowa w języku angielskim, i bardzo często cytują dosłownie (częściowo) cytat „przedwczesna optymalizacja jest źródłem wszelkiego zła” jako uzasadnienie ich stanowiska, sugerując, że interpretują wszystko, o czym mówię, jako „przedwczesną optymalizację”. Jednak te …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.