Pytania otagowane jako performance

Pytania związane z poprawą wydajności aplikacji, mogą obejmować zakres od architektury wyboru oprogramowania do wyboru algorytmów.

9
Jak radzić sobie z błędnymi przekonaniami o „przedwczesnej optymalizacji jest źródłem wszelkiego zła”?
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 …

2
Jakie cechy semantyczne Pythona (i innych dynamicznych języków) przyczyniają się do jego spowolnienia?
Nie znam dobrze Python. Staram się lepiej zrozumieć, jakie dokładnie cechy dynamicznych języków (à la Python, Lua, Scheme, Perl, Ruby, ...) zmuszają ich implementacje do powolnego działania. Przykładowo, maszynowość meta Lua 5.3 intuicyjnie spowolniłaby Lua dość powoli, ale w praktyce Lua jest podobno dość szybka (i szybsza niż Python). Mam …

5
Wiele dostępów do bazy danych czy jeden ogromny dostęp?
Jakie jest lepsze podejście, jeśli chodzi o wydajność i optymalne wykorzystanie zasobów: wielokrotny dostęp do bazy danych za pośrednictwem AJAX w celu uzyskania tylko potrzebnych informacji, gdy jest to potrzebne, lub wykonanie jednego dostępu w celu odzyskania obiektu zawierającego wszystkie informacje, które mogą być potrzebne , z dużym prawdopodobieństwem, że …
25 performance  sql 

6
Dlaczego zespół LMAX wykorzystał Javę i zaprojektował architekturę, aby za wszelką cenę unikać GC?
Dlaczego zespół LMAX zaprojektował LMAX Disruptor w Javie, ale wszystkie ich punkty konstrukcyjne minimalizują użycie GC? Jeśli nie chce się uruchamiać GC, to po co używać języka bezużytecznego? Ich optymalizacje, poziom wiedzy o sprzęcie i myśl, którą włożyli, są po prostu niesamowite, ale dlaczego Java? Nie jestem przeciwny Jawie ani …

4
Projektowanie zorientowane na dane - niepraktyczne z ponad 1-2 „członkami” struktury?
Typowym przykładem projektowania zorientowanego na dane jest struktura Ball: struct Ball { float Radius; float XYZ[3]; }; a następnie tworzą algorytm, który iteruje std::vector<Ball>wektor. Następnie dają ci to samo, ale zaimplementowane w projektowaniu zorientowanym na dane: struct Balls { std::vector<float> Radiuses; std::vector<XYZ[3]> XYZs; }; Co jest dobre i wszystko, jeśli …


4
Jak znacznie poprawić wydajność Java?
Zespół LMAX przedstawił prezentację na temat tego, w jaki sposób byli w stanie wykonać 100 000 TPS przy opóźnieniu krótszym niż 1 ms . Utworzyli kopię zapasową tej prezentacji za pomocą bloga , artykułu technicznego (PDF) i samego kodu źródłowego . Niedawno Martin Fowler opublikował doskonały artykuł na temat architektury …

7
Czy zgnilizna oprogramowania odnosi się przede wszystkim do wydajności, czy do niechlujnego kodu?
Definicja Wikipedii z oprogramowania zgniliznę skupia się na wydajności oprogramowania. To jest inne zastosowanie niż ja; Myślałem o tym znacznie bardziej pod względem czystości i wyglądu kodu - pod względem tego, że kod ma wszystkie standardowe cechy jakościowe: czytelność, łatwość konserwacji itp. Teraz wydajność prawdopodobnie spadnie, gdy kod stanie się …

10
Jak uniknąć „Intuicji programisty dotyczącej złej optymalizacji”?
Widziałem artykuł, w którym opublikowano to oświadczenie: Programiści lubią optymalizować kod i nie bez powodu. To takie satysfakcjonujące i zabawne. Ale wiedza, kiedy zoptymalizować, jest znacznie ważniejsza. Niestety, programiści zazwyczaj mają okropną intuicję na temat tego, gdzie faktycznie będą występować problemy z wydajnością aplikacji. Jak deweloper może uniknąć tej złej …
22 java  performance 

11
Czy kod o niskim opóźnieniu czasami musi być „brzydki”?
(Jest to skierowane głównie do tych, którzy mają konkretną wiedzę na temat systemów o niskim opóźnieniu, aby uniknąć odpowiedzi osób niepotwierdzonych). Czy uważasz, że istnieje kompromis między pisaniem „ładnego” kodu obiektowego a pisaniem bardzo szybkiego kodu o niskim opóźnieniu? Na przykład unikanie funkcji wirtualnych w C ++ / narzutu polimorfizmu …
21 java  c++  c  performance  latency 

16
Jakich prostych technik używasz do poprawy wydajności?
Mówię o tym, w jaki sposób piszemy proste procedury w celu poprawy wydajności bez utrudniania czytania kodu ... na przykład, jest to typowe, czego się nauczyliśmy: for(int i = 0; i < collection.length(); i++ ){ // stuff here } Ale zwykle robię to, gdy a foreachnie ma zastosowania: for(int i …

6
Czy warto korzystać z funkcji wirtualnych, aby uniknąć rozgałęziania?
Wydaje się, że istnieją przybliżone odpowiedniki instrukcji do zrównania się z kosztem braku funkcji wirtualnych oddziału mają podobny kompromis: instrukcja a brak pamięci podręcznej danych bariera optymalizacji Jeśli spojrzysz na coś takiego: if (x==1) { p->do1(); } else if (x==2) { p->do2(); } else if (x==3) { p->do3(); } ... …
21 c++  performance 

10
Kiedy lepiej jest zoptymalizować oprogramowanie w celu uzyskania lepszej wydajności, na początku lub na końcu rozwoju?
Jestem młodszym programistą i zastanawiałem się, kiedy najlepiej zoptymalizować oprogramowanie w celu uzyskania lepszej wydajności (szybkości). Zakładając, że oprogramowanie nie jest zbyt duże i skomplikowane w zarządzaniu, czy lepiej poświęcić więcej czasu na jego optymalizację na początku, czy powinienem po prostu opracować oprogramowanie, które poprawnie wykonuje wszystkie funkcje, a następnie …

2
Jak oddzielić interfejs użytkownika od logiki biznesowej, zachowując jednocześnie wydajność?
Powiedzmy, że chcę pokazać formularz, który reprezentuje 10 różnych obiektów na comboboxie. Na przykład chcę, aby użytkownik wybrał jednego hamburgera spośród 10 różnych zawierających pomidory. Ponieważ chcę oddzielić interfejs użytkownika od logiki, musiałbym przekazać formularz reprezentujący ciąg hamburgerów w celu wyświetlenia ich na comboboxie. W przeciwnym razie interfejs użytkownika musiałby …

3
Dlaczego wyrażanie obliczeń jako mnożenie macierzy przyspiesza je?
W samouczku Google MNist z użyciem TensorFlow pokazano obliczenia, w których jeden krok jest równoważny pomnożeniu macierzy przez wektor. Google najpierw pokazuje obraz, w którym każde mnożenie i dodawanie liczbowe, które byłoby potrzebne do wykonania obliczenia, jest zapisywane w całości. Następnie pokazują obraz, na którym jest on wyrażony jako mnożenie …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.