Při provozování vlastního webu a sledováním ostatních webů jako návštěvník, jsem přišel na pár věcí. A v neposlední řadě, nějaký HW a SW k tomu sám musím používat, jako každý.
Seberychlejší přípojka k netu nic neřeší. V první až druhé sekundě se na jedno spojení nedostanete výš než na 100KB/s. Odhaduji, že to je samotným principem TCP/IP a navyšováním rychlosti pokud to linka dovolí. Pokud prohlížeč naváže celkem 10 spojení už to je 1MB/s. Tady už narážíme na problém na serveru, aby dokázal připravit a odeslat během 1s celý 1MB (8Mbit volná kapacita pro jednoho uživatele). Taky by to asi muselo být odbavováno přes SPDY od Googlu, aby v jednom spojení jelo více menších souborů. Ale už si nedovedu představit, že by se takhle během jedné sekundy odbavilo 12 lidí, to už je 100Mbit na serveru.
Ale co jsem tím chtěl vlastně říct? Že mít webové stránky, kde při každém kliknutí čekám několik sekund, než si přečtu pár kilo textu, to je zrůdnost. Funguje to na většině mnou čtených technických webů a o to je to zrůdnost na druhou. Milión dotazů ukazuje prohlížeč a já čekám, než se to natahá z netu. Hrůza. A nedovedu si představit, kdybych si ještě nechal puštěné reklamy.
Web by měl mít soubory do 100KB a pokud budu předpokládat paralelní stahování v deseti spojeních, tak by se (s použitím SPDY – více malých souborů – třeba 5–10KB grafické prvky) měla každá jednotlivá stránka komplet vejít do 1MB, pokud na ní nejsou vyloženě fotky.
U jednoho z hlavních scriptů jsem svojí leností zvětšil HTML základ o 70KB. Stránka pak přesáhla 100KB limit. Prohlížeč zobrazoval stránku průběžně a vykreslil ji neúplnou. Trošku jsem to upravil a zkrátil na 20KB a celá stránka neměla víc než 60–70KB. Pak to fungovalo jak má, stránka se zobrazila najednou, během té jedné sekundy. Kvůli rychlosti jsem taky odstranil téměř všechny externí dotazy na jiné servery (externí statistiky apod.).
Nechápu, jak si většina webových programátorů pochvaluje ty nabubřelé frameworky a tuny javascriptu. Je to sice moderní, rychle se v tom tvoří, ale je to pomalé pro návštěvníky. Dřív jsem si myslel, že by to z hlediska rychlosti neměl být problém, že se to stahuje z webu jen jednou, ale realita je jiná. Pořád na webu čekám, než se něco natáhne (+milion externích serverů). Právě proto, že i když mám linku, která mi dá 1MB/s, tak spojení se servery začíná v prvních sekundách vždy někde na 100KB/s a víc to nepojede. Spousta lidí má mnohem horší technické podmínky a mají třeba jen 2Mbit linku a pro ty to musí být utrpení ten dnešní web. A to vůbec škoda mluvit o používání webu s mobilním připojením s nízkým datovým limitem.
Naštěstí nejsem profesionál a nikdo mě nenutí držet se trendů a můžu si tvořit a optimalizovat podle toho, co si myslím, že je skutečně důležité pro návštěvníka. Návštěvníka nezajímá jestli je to „moderní“ a vyhraju technologickou soutěž v „poměřování pindíků“, návštěvník chce obsah a informace a nebude čekat 5–10s na každé kliknutí.
Na třech počítačích mám stále Lubuntu 10.04, protože v základu je to extra rychlé. Čtvrtý PC zvládá Lubuntu 12.04. Na těch prvních třech už dva mají staré jádro z doby vydání distribuce 10.04. Z jednoho prostého důvodu. Všude jsou obyčejné HDD a se starým jádrem nastartují z GRUBu do desktopu za čistý čas 10s. Když dám aktuální záplatované jádro startuje to 20s. Tomu pak i odpovídá rychlost spouštění aplikací a práce se systémem. Vidím jedinou příčinu: SSD. Těžko to zoptimalizujete, když to budete ladit na PC s SSD, tenhle rozdíl neuvidíte.
Základní pravidlo pro odlehčenou distribuci je, že ji musíte občas spustit na starém železe, na které je určena. Rád bych třeba aktualizoval na Lubuntu 12.04, ale zdá se, že byly vyházeny ovladače všech starších grafických karet a instalace se kvůli tomu nepovede. Už jsem takhle narazil u 12.04 asi čtyřikrát i když PC by s 12.04kou bylo dost rychlé.
Taky jsem metodou pokus omyl zjistil optimální nastavení HW. U starého Athlonu XP mám paměti na 166MHz (DDR333) a sběrnice na 133MHz a frekvence procesoru x11. Jde to přetaktovat někde na 180–190MHz. Ale ani v základu 133MHz ani 180MHz to nejede optimálně, stále dochází k viditelnému zasekávání uživatelského rozhraní na desetiny sekundy a špatně se to používá. V okamžiku, kdy sběrnici nastavím na 166MHz, aby běžela stejně jako paměti, je po problému. Nevím jestli to je problém s deskou, ale prostě se to děje.
V budoucnu budu muset ze softwarového hlediska asi začít víc zkoumat Linux do hloubky, abych mohl používat aktuální software na starém HW. Dělám to z jediného důvodu: všechno novější, co jsem za poslední dobu koupil, odešlo půl roku po záruce. Zato všechen HW starší než 2006 stále přežívá. Naštěstí při upgradu starší věci schovávám a jednu starší věc za druhou postupně vytahuju.
Nebuďte tak nadšení z nového HW, nebudete se radovat dlouho.
Nebuďte nadšení z tuny frameworků na webu a že se vám v tom rychle dělají startupy. Ve světě softwaru a netu můžete nabídnout stejný produkt jako konkurence, software a produkty se kopírují. Můžete se však odlišit optimalizací a rychlostí. SSD si taky vybíráte kvůli rychlosti. Na netu jste však vždycky limitováni 100KB/s hranicí, jak jsem psal na začátku.
Za celý život s počítačema (a platí to i pro mobily) se mi nestalo, že by dnešní SW běžel rychle na dnešním HW včetně dnešní rychlosti netu a webu. Každý rok se to zhoršuje.
Celkově mi dá dost práce najít použitelné kombinace pro každodenní práci, včetně dlouholeté spolehlivosti HW i SW.
Asi profesně nejblíž mám k softwaru jako k oboru a úplně se stydím co se v tomto oboru děje. To už je jen pomalý bloatware a úplně všude, včetně linuxového jádra za poslední rok nebo dva. A samozřejmě frameworky na webu jako další příklad bloatware.
Tiez nenavidim na stranke milion odkazov na fb like, google plus a podobne spomalovace.
Webove frameworky - nemam ich velmi rad, na jednoduche stranky je to ako s kanonom na vrabce, ale velakrat sa to inak neda. Ak robis pre niekoho stranku, a on chce tam rozne efekty, a prechody stranok, automaticke aktualizovanie obsahu na pozadi, tak jednoducho nemas na vyber.
Cas je tvoj nepriatel.
Ked robim klasicke stranky, tak jedine co pouzivam je v php trieda, kde mam definovane casto pouzivane funkcie, ako napr. pripojenie na db, odoslanie emailu...
Ano! Ano! Více lidí, kteří se místo zakulacených průhledných rohů oken zabývají optimalizacemi!
Chce to nový módní styl - "rychlejší je lepší" místo "krásnější je lepší", ať se vyváží ta "krása" věcí jako Gnome 3 a Unity také rychlostí. Tedy, vedle použitelnějších webových stránek.
Jinak spoustu věcí jde pěkně vyladit na úrovni procfs/sysfs.
Jen jedna poznámka - pokud ty "ty nabubřelé frameworky a tuny javascriptu" jako jquery nelinkuješ z vlastního serveru, ale vzdáleně z CDN- tak se velmi často návštěvníkům vůbec nemusí stahovat, protože je už mají v cache. A čím víc serverů je používá a takto linkuje, tím větší pravděpodobnost. ;-)
[1] A co cachování? Necachuješ? Cachujeme vždy a všude. :D
Jestli použít framework či ne - to je otázka ceny. Rozumný FW výrazně urychlí vývoj a vyřeší spoustu věcí, které bych jinak musel pokaždé psát znova - komplexní ošetření formulářových vstupů proti útokům si do jedné univerzální třídy dám jen těžko, stejně jako cachování... Na straně webových frameworků - JEDNOU jsem dělal jednoduchou AJAX aplikaci od nuly a nikdy, nikdy, nikdy víc! Řešení ajaxu mi zabralo víc času, než celý zbytek projektu (což pravda nebylo zase tak moc, ale použitím js frameworku jsem mohl zkrátit vývoj o polovinu).
Podíval jsem se na jeden svůj web - "11 requests ❘ 13.2 KB transferred" - a to tam je jQuery, google analytics a tak. Samozřejmě, když smažu cache, tak to v prvním dotazu vyskočí nahoru na 160 KB, ale s ohledem na zaměření webu mi je to celkem jedno - nových návštěv je minimum, protože mám pokrytou prakticky celou zájmovou skupinu v CZ a SK a tak mi jde hlavně o komfort stávajících uživatelů.
[3] Jop, a pak se najde jedna dira, a je tu miliarda deravych webu ...
Ad rychlost, s tim se da laborovat celkem dost, a i spdy jede pres tcp. Je to hodne o laborovani s nastaveni web serveru, nekdy i IPstacku ... Ovsem, prevazne (99,9999%) je to v aplikaci/webu samotnym, respektive v neschopnosti/vsehoschopnosti autora. Obecne se proste jakakoli (i naprosto zakladni) optimalnizace resi az v okamziku, kdy si nekdo stezuje.
Mam zcela osobni zkusenost - dodavatel se klido odvazi dodat aplikaci, ktera nema v databazi indexy, a to ani naprosto zakladni => pri trochu vetsim objemu dat se proste stane naprosto nepouzitelnou. Zcela osobne sem nektery operace zrychlil 1 000x! ... Neuveritelny, co nektery prasata dokazou stvorit.
Velmi casto narazim samo na nocache a dalsi zhuverilosti (misto aby srv spravne vracel zda byl/nebyl obsah modifikovan ...), o objemu nesmyslnych dat ani nemluve (zcela bezne ma dneska stranka mega a vic ... pricemz uzitecneho obsahu je na nic sotva par kilo ...). Mockrat sem videl CSS primo v kodu (klidne desitky kB) ...
Proste soudoby web pisou prasata a vyjimky potvrzujou pravidlo.
SPEEDY - ten se týká jen https stránek. Při zabezpečeném připojení se poprvé přenáší certifikáty a to může být celkem hodně dat.
Optimalizovat web na první načtení podle mě nemá velký smysl. Pokud se má s webem pracovat - tj. jsem na něm a klikám, tak je podstatné, jak dlouho se načítají další stránky. Tj. mělo by se to udělat tak, že maximálně využiji cache z prvního načtení stránky.
Optimalizovat jen tak pro nic za nic také nemá smysl - pokud to má zákazník platit, tak by se měl programátor zaměřit na místa, která brzdí často nebo hodně. Nemá smysl o 5s zkracovat provádění činnosti, která se dělá 1x za měsíc.
Úroveň programátorů je dána trhem. Napsat základní stránky zvládne skoro každý, kdo si přečte o tom nějakou knihu. Když nemohou konkurovat kvalitou, konkurují cenou. To, co se prezentuje zákazníkovi je to, jak to vypadá. Tj. vzhled prodává a tomu, jak je to napsané zákazník nerozumí a ani nechce rozumět.
Milión dotazů ukazuje prohlížeč a já čekám, než se to natahá z netu. Hrůza.
Až mi přeběhl mráz po zádech.
pokud budu předpokládat paralelní stahování v deseti spojeních, tak by se (s použitím SPDY - více malých souborů - třeba 5-10KB grafické prvky) měla každá jednotlivá stránka komplet vejít do 1MB, pokud na ní nejsou vyloženě fotky.
Pokud vám dělá problém vejít se do 1MB bez obrázků a všech těch nabubřelých frameworků, pak asi děláte něco špatně.
Návštěvníka nezajímá jestli je to "moderní" a vyhraju technologickou soutěž v "poměřování pindíků", návštěvník chce obsah a informace a nebude čekat 5-10s na každé kliknutí.
Ono to jde zároveň moderně i rychle. Není to ale úplně slučitelné s provozem na dvanáct let starém Athlonu XP vyřezávaném ze dřeva, na tom se shodneme.
Máte vůbec samé zajímavé postřehy. Třeba ten minulý o nepřemožitelných tabulkových layoutech s inline styly mě vyloženě nadchl. Jen tak dál.
[9] ...tak já to dám příště do uvozovek pro méně chápající
...já ne: většina stránek má do 100-150KB i s fotkama a mapou
...moderně to jde, mně trochu pomalejc, nemám na to čas. Ale co se týká starého Athlonu XP (2GHz), který mám deset let, tak věřte, že není problém si za 6000-7000kč nějaké PC postavit jednou za dva roky, když za běžný provoz domácnosti za tu dobu otočím víc než půl milionu
...tabulky mám pořád, protože nemusím řešit, jestli se to v tom kterém prohlížeči dobře zobrazuje.. čas od času vyzkouším CSS layout a zobrazení v různých prohlížečích a zatím nic, co by vypadalo na všem stejně, hlavně přetékání textu
Přečteno 28 781×
Přečteno 19 582×
Přečteno 16 963×
Přečteno 15 225×
Přečteno 15 024×