Diit.cz - Novinky a informace o hardware, software a internetu

Diskuse k Mozilla převede uživatele Windows na 64bit Firefox v září

Nechápu to "logické" omezení.
Proč vůbec řešit kolik má člověk RAM? Prostě dostane 64bit a tečka.
Jasně, nevyužije to, ale uškodí mu to? Proč vůbec vynakládat prostředky na to, aby instalátor zjišťoval kolik mám RAM a rozhodoval se podle toho.

+1
-9
-1
Je komentář přínosný?

Ano, uškodí mu to. 64bit app si vezme více ram. Já bych postupoval stejně jako Mozilla.
Zdar Max

+1
+7
-1
Je komentář přínosný?

32bit appka snad naadresuje stejně jako 64bit na 2GB systému ne?
Nebo se to bere tak, že si bude brát swap na disku?

+1
-6
-1
Je komentář přínosný?

64bit appka zožerie viac ramky ako 32bitová
(pointre nemajú 32bit ale 64bit takže zaberajú v ramke 2x tolko miesta)

+1
+5
-1
Je komentář přínosný?

Jo a má delší instukce. Jenže ty rozdíly jsou v praxi skoro zanedbatelný.

+1
+2
-1
Je komentář přínosný?

Odpověď na tvou první větu : ne.
Odpověď na tvou druhou větu : nesouvisí.

64bit aplikace většinou(komplikovanější app snad vždy) alokuje více ram. Aby jsi pochopil důvod, musel by jsi znát základy programování.

Jinak na netu se válí spousta porovnání 32bit vs 64bit FF, třeba tady :
https://www.raymond.cc/blog/mozilla-firefox-64bit-build-performance-comp...

Zdar Max

+1
+4
-1
Je komentář přínosný?

> 32bit appka snad naadresuje stejně jako 64bit na 2GB systému ne?

nevim co by jste "naadresoval", ale nektere (casto pouzivane) datove typy maji v 64bit rezimu rozdilnou velikost. Tak trebars ukazovatele jsou dvounasobne vetsi ;) a vzhledem k tomu kolik ukazovatelu bezny program pouziva, kupodivu vetsina programu sezere na 64bit vic pameti.

+1
+2
-1
Je komentář přínosný?

To by mě vážně zajímalo, kde je potřeba miliony pointerů/ukazatelů, že se to znatelně projeví? Při alokaci dat jako obrázky, text, atd. kterýžto datově zabírá místa nejvíc se snad alokuje stejné množství pamětí podle velikosti onoho objektu. Těch pointerů na datové objekty rozmísťované po stránce mohou být klidně tisíce, ale to je stále jen pár kilobajtů rozdílu. Takže kde konkrétně se ta paměť ztrácí? Jaká rozšíření potřebují inicializovat miliony intů, ale je jim jedno jestli je to 16, 32, nebo 64 bitů, takže se spoléhají na výchozí jednotky podle buildu?

+1
+1
-1
Je komentář přínosný?

Vy ste všichni strašně chytří, ale otázka zněla na systému s 2GB RAM.
int má 32bitů i v 64bitové aplikaci a long long má 64bitů i v 32bitové aplikaci, takže tam problém není.
Pointerů nebude tolik, aby se to nějak projevilo.

Zkuste si to, int i long bude vždy 32bit nehledě na architektuře, nebo systému, proto se používá long long pro 64 velká čísla.

Takže jediný rozdíl je v tom KOLIK paměti lze CELKEM alokovat a 32bit aplikace má limit 2GB, jenže 64bit aplikace těžko alokuje více než 2GB na systému, který mám právě 2GB.
Jediný důvod tedy bude ten, že by to alokovalo třeba 4GB a pak by se to začalo ukládat na swap.

Nebo mi ukažte proč by to najednou začalo používat větší datové typy, když 32bit a 64bit má rozdíl jen u pointerů?

A základy programování mám :) Jmenuje se Bakalářský titul z FIT VUT...

EDIT: Toto info se týká minimálně C/C++, pokud Java (nebo v čem je FF napsané) to dělá jinak, tak pardon, ale to by byl jen další důvod proč hatovat Javu :)

+1
-4
-1
Je komentář přínosný?

FF je pisany v jazyku Rust (https://www.rust-lang.org/en-US/).

+1
+2
-1
Je komentář přínosný?

Není, jen pár jeho malých izolovaných částí (mpeg demuxer a nově část CSS enginu tuším), zbytek je v C++ a mozilla se snaží to inkrementálně přepisovat, a podstřelovat tomu části Servo enginu, kterej v rustu je.

+1
+1
-1
Je komentář přínosný?

Můžeme teoretizovat kolik chceme, ale v praxi prostě :

- 32bit program vezme o trochu míň paměti než jeno 64bit protějšek
- na malých množstvích paměti 32bit verze jede o trochu rychleji než 64bit protějšek

(ony ty dva body spolu vlastně souivisí)
nejsem programátor, takže teorie jde trochu mimo mne, ale v praxi to prostě takhle je.
A hlavně rozumný člověk na 2GB instaluje 32bit systém, takže tohle nemusí vůbec řešit.

+1
+5
-1
Je komentář přínosný?

zde diskutujici trochu opomijeji fakt ze 32 vs 64 bit neni jen o pameti ;)

+1
+2
-1
Je komentář přínosný?

I kdyby to psali v c++, tak budou používat různé datové trídy, které si uvnitř uchovávají pointery, případně počet prvků v size_t, která má na 64bit dvojnásobnou velikost, např. prázdný std::vector má v sobě alespoň dva pointery (begin, end) plus kolik prvků je schopný pojmout v size_t. Každý std::string bude taky větší. Jsem si dělal test na jedné dlooouhé stránce, která mi jde ve FF hooodně pomalu. V 32bit verzi obsazeno 900MB. V 64bit verzi obsazeno 1400MB (a taky hooodně pomalé). Musím tam lézt přes chrome, když tam chci něco dohledat.

+1
+1
-1
Je komentář přínosný?

Ajo size_t. Na to sem úplně zapomněl. Teď je otázka jestli se to opravdu vyplatí používat na nedatové proměnné, když builduješ jako 32 I 64. Znám lidi co do toho ukládají i obyčejné hodnoty jako věk a tak, tak to pak roste no.

+1
+1
-1
Je komentář přínosný?

> int má 32bitů i v 64bitové aplikaci
> Zkuste si to, int i long bude vždy 32bit nehledě na architektuře, nebo systému,

Evidentne jste v zivote delal jenom na woknech, takze mluvit o jinych architekturach a systemech je dost zabavni :)

Bavime-li se o x86-64 a C/C++, int je 32bit vsude ale long ma na 64bit linuxu 64 bitu (na 32bit linuxu ma long 32bitu). Jenom ve woknech je long == 32bitu i v 64bit rezimu. Hodte do googlu "llp64 vs lp64" a dozvite se vic :)

> Pointerů nebude tolik, aby se to nějak projevilo

LOL. Ok, mam HTML stranku ktera ma stotisic html prvku, jak je asi browser spracuje ? no nacpe je nejspis do nejakeho stromu. Coz je minimalne 2 pointery pro kazdy element. To je jen strom s nazvy prvku. Pak se pro kazdy element vytvori DOM objekt protoze javascript. Co myslite kolik pointeru asi tak obsahuje jeden DOM objekt ? otevrete si firefox a stlacte F12.

Kazdy ulozeny string znamena pointer, kazda slozitejsi datova struktura ma 2+ pointru na element, kazda virtualni metoda je pointer. Vsech techto veci ma browser tuny.

> A základy programování mám

Jo, je to videt..

+1
+1
-1
Je komentář přínosný?

>llp64 vs lp64
V prní větě jsem zmínil long long, v druhé jsem chybně řekl pouze long, nicméně jsem myslel long long.
Long nepoužívám právě proto, že nemůžu předpokládat jeho velikost, proto int32_t je int a int64_t je long long.

>Pointery v browseru
Pravda, neuvědomil jsem si, že DOM struktura bude mít tolik pointerů. Jsem backenďák, takže dělám spíš s vektorama, než listama :)

> A základy programování mám
Jo, je to videt..
Protože každý programátor musí z hlavy vědět jak se píšou browsery...
Začalo to jako legitimní dotaz, na který jsem čekal legitimní odpověď, ne že mě lidi začnou urážet, že neumím programovat...

+1
0
-1
Je komentář přínosný?

Víš co znamená "humble bragging"? Nediv se, že si lidi rýpnou, když tady tak machruješ.

+1
+1
-1
Je komentář přínosný?

Pokud má nějaká stránka sto tisíc HTML prvků, tak je teda pěkně zprasená! To snad nebude běžný příklad. Dal jsem si F12 na celou stránku komentářů a mám tam: 2.3MB, celkem 46485 prvků pro všechny ty stromy. Je to dost, ale stále mi to vychází v řádu stovek kilobajtů pokud budou ty pointery 64 bitové.

Jinak je vidět že daň za moderní featury a komplexní abstrakci, které se stejně využívají jen z několika málo procent, je paměťová nenažranost a nedostatek optimalizací.

+1
0
-1
Je komentář přínosný?

Muzete se sam podivat kolik pointeru je v DOM Node, ktery je jeden pro kazdy tag na strance: https://developer.mozilla.org/en/docs/Web/API/Node ... baseURI, baseURIObject, childNodes, firstChild, lastChild, nextSibling , nodeName , nodePrincipal , ownerDocument , parentNode, parentElement, previousSibling ... to mame 12, a v prakticke implementaci jich bude urcite vic. A to jsme jeste nezacali s javascriptem.

+1
+1
-1
Je komentář přínosný?

Bude mít zjevně informace o stylu, o tom, kde se vyrenderovaný objekt nachází na obrazovce a v jaké vrstvě shora, bitmapovou reprezentaci ... jo bude toho spousta. Stejně mám za to, že rozdíl bude 10-20%. A nevím jestli to jde změřit, protože firefox může držet v paměti všechno možné, pro případ, že se uživatel možná v deseti sekundách vrátí z aktuální stránky zpět na výsledky vyhledávání apod.

+1
0
-1
Je komentář přínosný?

> Těch pointerů na datové objekty rozmísťované po stránce mohou být klidně tisíce

Tisice ? pri dnesnich strankach s megabajty javascriptu ? zkus statisice. 1) javascript 2) DOM objekty 3) virtualni metody, to vsechno pouziva tuny pointru. Samotny kompilator JS je brutalne slozita hracka ktera samozrejme pouziva gajillion pointru.

+1
+1
-1
Je komentář přínosný?

Firefox ve 64bit variantě už používám dlouho. Jen pro srovnání mám spuštěné 2 pc. Na jednom je firefox 64bit, nainstalovaných 7 doplňků, otevřeno 1 okno s touto diskuzí a zabírá v paměti zhruba 270-340 MB - průběžně se to mění. Při 10 otevřených panelech vzrostlo množství zabrané paměti na zhruba 580 MB

Na druhém je firefox 32bit, nainstalovaných stejných 7 doplňků, otevřeno 1 okno s touto diskuzí a zabírá v paměti zhruba 220-280 MB - průběžně se to mění. Při 10 otevřených panelech vzrostlo množství zabrané paměti na zhruba 520 MB.

Ano, 64bit verze si "veme" více paměti, ale že by to bylo tak kruté si nemyslím.

+1
+2
-1
Je komentář přínosný?

A co když mám 32bitový systém se 4 GB RAM? To se mi stáhne 64bitová verze, která následně při pokusu o instalaci oznámí, že na tomhle fungovat nebude a nazdar?

+1
0
-1
Je komentář přínosný?

Když máš 4GB a 32bit, tak je to tvoje blbost, protože Windows alokuje max 3.5GB

+1
-6
-1
Je komentář přínosný?

Zatímco 64bit systém sežere víc paměti, aplikace taky a vyjde to plus mínus stejně.

+1
0
-1
Je komentář přínosný?

Bohužel se opět pleteš. Windows jsou schopny u 32bit systému alokovat až 64GiB ram. Říká se tomu PAE, má to své režie, ale pokud tu ram potřebuješ, tak se to vyplatí. Limit 2GiB na proces samozřejmě zůstává. Serverové edice to podporují ok, desktopové varianty MS uměle omezuje. Každopádně existují postupy, kdy lze Windows 7 donutit PAE plnohodnotně používat a přehoupnout se i přes 4GiB, který MS softwarově nastavuje. Nějaké pojednání viz zde :
http://www.unawave.de/windows-7-tipps/32-bit-ram-barrier.html?lang=EN
Zdar Max

+1
+1
-1
Je komentář přínosný?

A na Linuxu jde technicky rozjet Visual Studio.
Bavíme se o normální situaci pro normální lidi, pochybuju, že si někdo kdo má 4GB RAM a 32bit Win zapíná PAE...

+1
-1
-1
Je komentář přínosný?

PAE je defaultně zapnuté už od XP SP2 kvůli NX, na 4GB je omezení jen licenční.

+1
+1
-1
Je komentář přínosný?

Diskuse vznikla nad globálním upgrade FF na 64bit verzi. Vztahuje se tedy pro všechny uživatele FF, né je pro tebou vybrané lidi označované jako "normální".
Aspoň tak jsem to pochopil já.
Zdar Max

+1
+1
-1
Je komentář přínosný?

Pokud si dobre vzpominam, PAE podporovali uz XPcka, ale pak je v nekterem SP vypli, protoze ruzne drivery pro cinsky HW psane cinanmi byly brutalni sracky a absolutne nechodili s PAE :) by me zajimalo jestli tuhle drobnost v dalsich verzich poresili...

+1
0
-1
Je komentář přínosný?

S těmi drivery máš pravdu, ale je to trochu jinak. Licenční omezení na 4 GB se dříve (do XP SP1) vztahovalo čistě na množství paměti. Jenže v momentě instalace např. grafické karty se nějaká paměť přemapovala nad hranici 4 GB a to ty drivery nepobraly. Proto se od XP SP2 to 4GB omezení vztahuje na fyzicky adresovatelný prostor. Paměť, kterou HW vyšoupne nad 4 GB, je memory managerem ignorovaná, proto dnes po instalaci 4GB modulu vidíme třeba jen 2,5 GB RAM.

+1
+1
-1
Je komentář přínosný?

Podle článku (i podle logiky) se přechod na 64-bitovou verzi spustí na 64-bitovém systému s více než 2 GB RAM.

32-bitový systém není 64-bitový, takže se na něm ten přechod nespustí.

+1
+4
-1
Je komentář přínosný?

Na co proboha potřebuje firefox 64-bit rozšíření? Už tak žere příšerně moc ramky.

+1
0
-1
Je komentář přínosný?

Že by x64 instrukce?
Hlavně to není o tom co potřebuje, na 64bit systému je ideální provozvat 64bit aplikace a 64bit Firefox už existuje pradávno, jen na Windows se historicky drží 32bit instalace. Zřejmě postupně utlumí a nakonec zabijí 32bit verzi jako obsolete.

+1
0
-1
Je komentář přínosný?

64bit může být na 64bit systému rychlejší, jelikož se u x64 zjednodušila konvence volání funkcí oproti x86, kde jich bylo více a některé byly pomalejší, než jiné.
Navíc je možné použít plnohodnotnou x64 aritmetiku (64bit registry a ALU) a i pro 32bit datové typy je k dispozici 2x tolik registrů.

+1
+1
-1
Je komentář přínosný?

Nesleduji kolik žere, na to nemám čas. 32bit verze je ale na 32bit desítkách rychlejší než 64bit verze na 64bit desítkách. A to navzdory tomu, že se jedná o slabší NTB oproti silnějšímu PC. Nejrychleji funguje v linuxácké 64bit verzi na Linux Mint Mate 18,2 - 64bit (na 9let starém NTB)). Nastavením to nebude používám synchronizaci a dolazuji všechny verze na identický setup. Konfigurace: oba NTB 4GB RAM a dvoujádra, PC 8GB RAM a čtyřjádro, taktování přibližně stejné (2,1-2,4 Ghz), u všech systém na SSD. Na všech třech strojích trvá spuštění Firefoxu stejně nebo déle než start samotného OS. Logické vysvětlení na to nemám ale je to prostě tak. Zajímalo by mně proč tomu tak je.

+1
+1
-1
Je komentář přínosný?

Když je 32bitový software rychlejší, bývá to často proto, že se více kódu vejde do cache procesoru a teoreticky až 2× více pointerů. Bylo by úžasné kdyby Windows měly něco jako je "x32 ABI" na Linuxu, ale asi by to stejně nikdo nepoužíval.

+1
+1
-1
Je komentář přínosný?

No, tak je vidět, že Mozilla přejímá podobné zmrdosvké praktiky, jaké jsou běžné pro korporátní hajzly. To by jim tak moc udělalo dát uživateli na výběr případně k tomu dát vysvětlení proč a zač?

+1
+1
-1
Je komentář přínosný?

Mate naprostou pravdu ale trvalo vam nez jste si vsimnul. Ze zarizli extensions jste prehledl?

+1
0
-1
Je komentář přínosný?

Pro psaní komentářů se, prosím, přihlaste nebo registrujte.