-
Data: 2013-07-11 18:20:55
Temat: Re: Why mobile web apps are slow
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia pamiętnego Wed, 10 Jul 2013 01:00:35 -0700, Maciej Sobczak wyjmując
peta oznajmił:
> Trafiłem na fajny artykuł:
>
> http://sealedabstract.com/rants/why-mobile-web-apps-
are-slow/
Uff. Długawy?
> Dosyś długawy, ale w ramach wakacyjnego rozruszania grupy polecam.
> W szczególności tak gdzieś w połowie strony jest wykres pokazujący jak GC wpływa na
wydajność programu w zależności od pamięci, która jest dostępna w systemie w relacji
do tego, jaka jest faktycznie potrzebna.
>
> W ogóle jest tam trochę mocnych stwierdzeń. Sporo odniesień do wszelakich obecnie
używanych języków programowania. Polecam.
Może zacznę od tego, że nie wiem skąd wiedziałem że JS jest bliższy C++ niż 3-5x.
Gość też cytuje ostateczną lambdę, a tam niedawno był artykuł o dialekcie
JS stworzonym dokładnie w celu ominięcia ciężkich pod względem
wydajności punktów w języku. Co prawda komentarze mówiły o braku
"soundness proof" lub też niemożliwości uzyskania takiego, ale
niech to będzie WorkInProgress.
Natomiast gość cytuje wiele rzeczy i - co się podobuje - chce się trzymać
faktów, ale gdy przychodzi do metody benchmarków mówi "oczywista
oczywistość że liczenie md5 jest lepszym benchmarkiem niż harvest kodu
z tysiąca stron www". Co jest bzdurą, nie pamiętam linka ale benchmark
4 języków Google'a pokazał, jak złudne są syntetyki, trochę kombinatoryki
pomieszanej z rekurencją i nagle Java wychodzi poza obszar, do którego
była stworzona. Dla mnie oczywistą oczywistością jest fakt, że syntetyki
pokazują dobrze warunki brzegowe więc nadają się dla autorów kompilatorów,
ale potem przychodzi zonk prawdziwych aplikacji: w gcc odkryli, że
benchmark mozilli daje lepsze wyniki przy -Os niż -O2, co zdecydowanie
nie było ich intencją. Bo nie testowali dużego kodu tylko używali
syntetycznych benchmarków, tak jakby wszyscy niczym firr pisali
50-linijkowe programy.
Co do samego GC, nic nowego, ja bym powiedział że noGC aktualnie robi mi się
pod domem i niedługo nie będzie można okna otworzyć. Ale i tu gość trochę
nagina rzeczywistość. GC, to JVMa przynajmniej, ma kilka opcji, w tym
concurrent GC, które nie tylko nie powoduje przerw ale też - ponieważ sprząta
mniej więcej tak szybko jak przydziela pamięć - ma mniejsze wymagania co
do wolnej pamięci [1]. Wciąż potrzebuje dużej liczby obiektów nadających się
do zwolnienia, żeby mieć sensowną wydajność, ale umówmy się, że różne programy
mają różne podejście do alokacji. Część alokuje masę obiektów non-stop, część
alokuje praktycznie wszystko up-front a potem ma lokalne obiekty, które
formalnie są na stercie ale praktycznie trafiają na stos JITa, albo
jest ich po prostu niewiele.
Co oznacza tyle, że używanie GC nie zwalnia od myślenia o pamięci, nawet
jeżeli autorzy JVM odradzają pool-e obiektów (nic dziwnego) to nawet
w Javie warto czasami alokować obiekty rzadzaiej niż częściej (czytaj:
nie w wewnętrznej pętli), jeżeli mają być większe niż kilka B.
[1] Ok, wiem że link by się przydał, ale z tak wielkim rantem dzisiaj nie
podyskutuję.
--
Edek
Następne wpisy z tego wątku
- 11.07.13 18:41 firr
- 11.07.13 21:06 Edek
- 11.07.13 21:16 firr
- 11.07.13 21:24 Edek
- 11.07.13 21:31 firr
- 11.07.13 21:45 R.e.m.e.K
- 11.07.13 21:48 Edek
- 11.07.13 21:55 bartekltg
- 11.07.13 22:00 Edek
- 11.07.13 22:04 firr
- 11.07.13 22:06 firr
- 11.07.13 22:07 Edek
- 11.07.13 22:09 Przemek O
- 11.07.13 22:19 Stachu 'Dozzie' K.
- 11.07.13 22:24 A.L.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją