-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Edek <e...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Why mobile web apps are slow
Date: Thu, 11 Jul 2013 16:20:55 +0000 (UTC)
Organization: ATMAN - ATM S.A.
Lines: 58
Message-ID: <krmm16$8o7$1@node2.news.atman.pl>
References: <7...@g...com>
NNTP-Posting-Host: 159-205-130-95.adsl.inetia.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1373559655 8967 159.205.130.95 (11 Jul 2013 16:20:55
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Thu, 11 Jul 2013 16:20:55 +0000 (UTC)
User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
Xref: news-archive.icm.edu.pl pl.comp.programming:203985
[ ukryj 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
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-01 W-wa naklejki wjazd do centrum
- 2024-07-01 ładowarka zmarła
- 2024-07-01 Koder szuka pracy. Koduję w j.: Asembler, C, C++ (z Qt) i D.
- 2024-07-01 Kraków => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-07-01 Białystok => Full Stack Web Developer (.Net Core, Angular6+) <=
- 2024-07-01 Berlin => Technical Rollouter (Radio Systems Software Installation and
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Gdańsk => Programista Full Stack .Net <=
- 2024-07-01 Zabrze => Junior HelpDesk <=
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Bielsko-Biała => Expert Migration Architect (Azure) <=
- 2024-07-01 Mini Netykieta polskich grup dyskusyjnych
- 2024-07-01 Re: Jak wypełnić polecenie francuskiego sądu blokowania niektórych zapytań DNS? Blokując Francję
- 2024-07-01 Re: Powtórne wezwanie na PO-komisję uzdrowi Ziobrę już w 10 dni
- 2024-07-01 CA -- problem z logowaniem