40%!!
40%!!
To wiadomo od dawna. Ale te 40% to jak liczone? Bo wiesz, 40% z czegos co zabiera 2% czasu to ledwo 1% poprawy...
I tego nikt nie zrobił? Sorry ale to trochę żenua. Gość pozamieniał miejscami zmienne w strukturze i uzyskał 40% zwiększenie wydajności stosu. Nie 1%, nie 4%...a 40%! 30 lat temu niektórzy onanizowali się w jakieś experymentalnej wersji gcc specjalnymi flagami do optymalizacji pod intel dającymi bagatela 15% szybszy kod. Podjarany tym całe libc + kernel + istotne binaria wtedy tą wersją przekompilowałem po to by stwierdzić, że właściwe nie widzę różnicy...
Widziałeś film?
W dniu 06.03.2024 o 09:53, Marek pisze:
To mowisz, ze sprawdzili na 30 letnim komputerze i wyszlo, ze aplikacje dzialaja 40% szybciej?
No to faktycznie, zbrodnia, ze nikt tego wczesniej nie naprawil!
Odsylanie do filmow jako "dokumentacji technicznej oprogramowania" powinno byc karane.
Serio cache w CPU jest od roku? Niesamowite...
Podobnie jak komentowanie nie na temat i bez zrozumienia kontekstu.
A komputer rzeczywiscie 30 lat?
Bo 30 lat ... 1994 ... juz chyba były pecety z 486, a nawet Pentium.
cache w pecetach pojawił sie raptem kilka lat wczesniej, bo gdzies przy 386 zaistniała potrzeba ...
J.
stosu czy sterty?
Ale co - zrobili wyrównanie do granicy słów pamięci?
Niektóre kompilatory same to robiły, bo chyba i procesory wymagały. Intel x86 akurat był zgrabny i nie wymagał, ale jak widać - wydajność może ucierpiec ...
J.
Co komputer? Mówimy o odpowiedniej optymalizacji kodu a nie o komputerze. Ta optymalizacja powinna być już od dawna. Nie od 30 to zapewne od min 20 bo wtedy już były procesory z odpowiednio dużym cache umożliwiającym optymalizację, o której mowa. Oczywiście dyskusyjne może być jedynie czy 20 lat temu wynik optymalizacji byłby na podobnym poziomie 40%. Zakładam wspaniałomyślnie, że każda optymalizacja dająca wynik dodatni jest pożądana.
Zamienili miejscami zmienne w strukturze. ROTFL. Tylko tyle i aż tyle. Obejrzyj film.
Stosu TCP/IP.
12 minut gadania, a mógl strescic w 3 :-)
J.
To było odnosnie Ghosta, który cos pytał/pisał o 3 latach.
Czyli rozumiem, ze czepiasz/nasmiewasz sie, ze nikt tego wczesniej nie zrobił?
No coz - obejrzałem ten film. Zauwaz, ze na intelu poprawy nie zauwazono. Czy moze raczej - intel na obu wersjach jest równie zły, bo
3x wolniejszy. To po co ktos miałby poprawiac, skoro to 1% daje, a i to nie zawsze ? :-) A kiedy sie pojawił procesor, na którym to cos daje?Do czego w ogóle służa te struktury netns_ipv4?
Tych struktur jak sie domyslam, jest sporo w pamieci, ale jak ułozone? Tablica jakas, alokowane dynamicznie? Bo jak duzo i nikt nie zadbał o wlasciwe wyrównanie, to granica linii cache bedzie jakos losowo wypadała w tych strukturach. Nadal zgromadzenie najczesciej uzywanych zmiennych obok siebie moze miec sens, ale co - reszta struktury jest nieuzywana? To może ją skasować? :-)
No i jeszcze ... tam mają karty po 100-200Gb/s ? Wow. Coz to za karty/interfejsy?
Może na słabszej karcie nie ma to znaczenia, bo wąskie gardło jest gdzie indziej ?
A co to w ogóle za konstrukcja/element w strukturze __cacheline_group_begin(netns_ipv4_read_tx);
Jakies wyrównanie ?
J.
Zatem pozwolisz, ze twoje komentarze nie mna temat i bez zrozumienia kontekstu (czyli wszystkie) bede ignorowal. Naczy PLĄK.
W takim razie nie zrozumiales.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required