10 ms·
64-bit Firefox is the new default on 64-bit Windows
- kbsletten 9y agoWhat is the crash rate improvement all about? I get the address randomization, but what changes in 64 that fixed crashes?
- gruez 9y agotab hoarding = hundreds of tabs = more than 3GB memory used = crash (max userspace memory with large address space aware is 3GB)
- cpeterso 9y agoYes, out-of-virtual-memory crashes (OOM) are, in theory, no longer possible with 64-bit applications. We still do see some OOM crashes from 64-bit Firefox users. 32-bit applications on 64-bit Windows can access a full 4GB virtual address space (if they are compiled with a special linker flag) without needing the 3GB Windows boot-time flag.
- LukeShu 9y agoUnless I'm mistaken, the limit for 32-bit processes on 64-bit Windows is actually 4GB; the 3GB limit is when running on 32-bit Windows. https://msdn.microsoft.com/en-us/library/aa366778.aspx https://msdn.microsoft.com/en-us/library/aa366778.aspx
- user5994461 9y agoOnly 2 to 3 GB are usable by the application, out of the 4GB addressable space. The rest is reserved.
- deleted 9y ago[deleted]
- LukeShu 9y agoOn 32-bit Windows, sure; because the process has to share its 4GB virtual address space with the system (the system getting the upper 1GB/2GB, depending on if 4GT is on). But it is my understanding that on 64-bit Windows, 32-bit processes do not have to share any of their 4GB virtual address space with the system, and can use the entire 4GB. https://msdn.microsoft.com/en-us/library/aa384271.aspx https://msdn.microsoft.com/en-us/library/aa384271.aspx https://msdn.microsoft.com/en-us/library/aa366778.aspx https://msdn.microsoft.com/en-us/library/aa366778.aspx
- cpeterso 9y agoThough as noted in your MSDN link, 32-bit Windows application must use the IMAGE_FILE_LARGE_ADDRESS_AWARE linker flag to opt into a full 4GB virtual address space when running on 64-bit Windows OS. 32-bit applications that were only tested on a 32-bit OS might break if they see pointers above 0x80000000 so, in the name of backwards compatibility, Microsoft wisely kept the 2GB default. :)
- user5994461 9y ago>> 2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default) >> 4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set While we are at it. The flag is a bit in the header of the .exe file. It should be set at compile time in the visual studio option, but it can be set into any file really with an hex editor. Don't expect to be able to use the 4 GB even with the flag. There is a lower hard cap that depends on the version of windows.
- the8472 9y agowin64 FF has been built with LARGEADDRESSAWARE for the last 7 years. https://bugzilla.mozilla.org/show_bug.cgi?id=556382#c28 https://bugzilla.mozilla.org/show_bug.cgi?id=556382#c28
- deleted 9y ago[deleted]
- __s 9y agoThey frame it as '64 bit users with more than 4GB RAM' so a lot of those are OOM related. More discussion @ https://groups.google.com/forum/#!topic/mozilla.dev.platform/hlCGG_Hib1w https://groups.google.com/forum/#!topic/mozilla.dev.platform...
- deleted 9y ago[deleted]
- DiThi 9y agoTo add to what it has been said, some asm.js based scripts (like games) need a relatively big (say, 128-256 mb) and aligned chunk of memory that is frequently not available on 32 bit machines even though there's a lot of free memory.
- PrimHelios 9y agoIs there any reason it needs to be a contiguous block of memory?
- gfodor 9y agoFor one thing, modern game engines often have custom allocators and a large array of performance critical bits of code that assume cache locality. So in general, having the memory involved be non-contigous could break lots of assumptions.
- DiThi 9y agoIt's much simpler and much faster to make a chunk of code completely isolated in user space by masking the addresses it reads/writes to. For example, masking with 0xFFFF is the same as doing modulo 16. Add another bit to the mask and you're doing modulo 32, and so on. That's why I think the block must be not only contiguous, but also aligned. I may be wrong about the alignment now that I think about it. But the contiguous part is clear.
- Const-me 9y agoLegacy code and development time. When I write C++ code that deals with large datasets, I try to avoid large continuous buffers as much as possible. For cache locality, an aligned 1GB buffer is practically the same as a set of 64 aligned continuous buffers, 16MB/each. You’ll only hit RAM latency when crossing the boundary between the buffers, i.e. only 63 times through the whole 1GB of data. One problem is std::vector. The standard says the whole vector must be continuous, i.e. to split large buffer into smaller chunks, one needs to implement a custom container on top of that. Apparently, authors of C++ think the problem will go away by itself, with the switch to 64-bit platforms.
- the8472 9y agoThe limited address space combined with fragmentation due to a non-compactable heap allocations (C/C++) can lead to unsatisfiable allocations long before you actually hit the 4GB limit. And many allocations are not fallible, which means the browser has to OOM-crash if they cannot be satisfied.
- __s 9y ago> If you prefer to stay with 32-bit Firefox after the 64-bit migration, you can simply download and re-run the Firefox 32-bit installer from the Firefox platforms and languages download page. Any reason to do so? It'd have to be some fringe use case of '<4GB RAM system & user doesn't need fast codecs'. If it's a closed business environment I'd imagine they're on IE
- jchw 9y agoPresumably in case there's still bugs, since a lot of the Windows code probably was not really well tested for AMD64. I'd also assume 64-bit builds take up more memory due to having 64-bit pointers. Maybe most importantly they just don't want to assume, at their scale, that there isn't at least one user that might need some time to be able to move to the 64-bit builds for one reason or another.
- deleted 9y ago[deleted]
- cpeterso 9y agoThe only reason someone would stick with a 32-bit browser is for performance reasons. 64-bit applications have a larger memory footprint from all the 64-bit code and pointers. We didn't see much performance difference when testing 2 GB Windows machines hands on, but Firefox telemetry analysis showed that user retention and crash rates were worse for users with <= 2GB than for > 2GB. Only about 1% of Firefox Windows users have < 2GB and about 5% have exactly 2GB. Users with <= 2GB can still install 64-bit Firefox if they really want to by downloading the 64-bit full installer instead of the "stub installer" (a tiny downloader that detects 32- and 64-bit OS and downloads the appropriate full installer). Likewise users with > 2GB can download the 32-bit full installer, too. We wanted the Firefox installer's default to provide the best user experience, but still give users the option to run the (32- or 64-bit) application of their choice. For comparison, 64-bit Chrome's minimum memory requirement is >= 4GB.
- ac29 9y ago> For comparison, 64-bit Chrome's minimum memory requirement is >= 4GB. Not officially (there is no memory system requirement): https://support.google.com/chrome/a/answer/7100626?hl=en https://support.google.com/chrome/a/answer/7100626?hl=en
- sannee 9y agoI have not really written much of Windows code, so forgive my ignorance but: What is actually so hard about porting 32-bit -> 64-bit applications on Windows compared to Linux?
- jdlyga 9y agoWindows is kludgy code built on top of klundgy code. From personal experience, there's different ways Visual Studio handles 32 vs 64 bit applications. A lot of memory issues tend to come up that don't appear in the 32 bit version. Plus there's different directories that are typically used, and potentially a lot of other issues.
- rrdharan 9y agoFrom personal experience porting fairly large and complicated multiplatform userspace application codebase from 32-bit to 64-bit on both Windows and Linux, I think the required effort is about the same. Linux also uses different directories and has "potentially a lot of other issues". Windows uses LLP64 rather than LP64[1] but IMO that's just different not clearly/necessarily better or worse. [1] https://blogs.msdn.microsoft.com/oldnewthing/20050131-00/?p=36563 https://blogs.msdn.microsoft.com/oldnewthing/20050131-00/?p=...
- TOM9099 9y agoThe OS doesn't really matter here. If the original developers made assumptions about the size of the pointers (4 vs 8 bytes) then it's a bit tricky but certainly not impossible.
- donpdonp 9y agowhen I read "Firefox 64" http://dev2017.gamester81.com/wp-content/uploads/streethoopstarupthumbnail.jpg http://dev2017.gamester81.com/wp-content/uploads/streethoops...
- cpeterso 9y agoI helped write this blog post. The early drafts used the term "64-bit Firefox" but we changed to "Firefox 64-bit" for SEO reasons. Apparently, 10x more people land on Mozilla's Firefox blog from web searches for "Firefox 64-bit" than "64-bit Firefox", so the voice of the people won. :)
- Dylan16807 9y agoJust wait for 2018!
- trzeci 9y agoThis is very good news for Emscripten / WebAssembly developers. One of the main limitation in ASM.js / WASM based applications is a size of emulated HEAP. It has to be a contiguous memory block, what is so unlikely to allocate by browser (from my tests it's ~10% of users cannot allocate 256MB for HEAP). It's that due a memory fragmentation. Having 64 bit by default fixes such problem. That's a good move. Well done moz://a
- quazeekotl 9y agoIt dosen't fix the problem unfortunately, the JIT code in firefox is effectively 32bit, it can only operate on a 32bit contigious range.
- azakai 9y agoIt does fix the memory fragmentation problem, in that it's almost guaranteed you'll have a contiguous range you can allocate (assuming you have enough memory in the first place). In practice this has been a serious issue. There is a separate issue of programs that need more than a 32-bit allocation for their memory. Not many apps hit that limit so far, and it's tricky to support anyhow since you need 64-bit ints for pointers and JS doesn't support that well. wasm64 will address this eventually.
- astrodust 9y agoIt's easier to get a contiguous chunk of memory if you're able to wrangle it in the 64-bit space, then slice out a 4GB chunk for 32-bit code.
- chrisseaton 9y agoWhy do you capitalise heap?
- smegel 9y agoMust be a PERL programmer.
- nnethercote 9y ago
- gamedna 9y agoLove the unit-less graph around abstract concepts. https://xkcd.com/833/ https://xkcd.com/833/ That said, kudos for making this the default.
- maroonmoon 9y agoI am not convinced about the stability of 64 bit FF. Even with no add-ons, stability is poor. Hope it gets fixed as more users start using it and more crash data shows up.
- nayuki 9y agoI started using 64-bit Firefox on Windows about a year ago, and carried over all my add-ons. It crashes way less than my 32-bit Firefox, which tends to die after allocating 1.8 GB of memory. What makes you say 64-bit FF is more unstable for you?
- sohkamyung 9y agoI've been using 64-bit Firefox Nightly for some time with few crashes. The last time it crashed, I was politely asked (by the Mozilla developers) to do this: 1. restart Firefox, enter 'about:crashes' in the URL bar 2. find the report ID that corresponds to the crash 3. submit it as part of a bug report to Mozilla's Bugzilla My crash problem was diagnosed within a day and fixed.
- bewresu 9y agoFor a while there I thought Microsoft will ship Firefox as default and halt their browser efforts altogether.
- astrodust 9y agoEdge will go open source before that happens.
- eugeneionesco 9y agoBig parts of Edge are already open source.
- astrodust 9y agoExactly my point.
- Elmar69 9y agoIs this the last "modern browser" to use 64-bit as default?
- Sylos 9y agoWell, it's not Chrome which needed the RAM, nor is it Safari that only needs to support the Mac-ecosystem, nor is it Edge that doesn't need to support anything prior to Windows 10. They only just dropped support for XP and Vista in February...
- baalimago 9y agoNow i respect Mozilla and all that they stand for, but that graph is about as useless as graphs come
- sleepychu 9y agoTwice as secure, crashes maybe 1/5th as many times. Totally bizarre choice to use a graph they could have gone "2X as Secure!" "5X as Stable!"
- tbrock 9y agoHoly moly! Is anyone else wondering why this took so long? It's almost 2018 for god sakes. I don't think I've used a 32-bit program in over a decade. Yeah flash is 32 bit but flash has been dead for the greater part of that decade. Not sure how it could possibly be the case that moz was still shipping 32-bit Firefox as default until yesterday.
- intoverflow2 9y agoThe venn diagram of Firefox users and people who believe Windows 7 32bit is still the best version of Windows and refuse to upgrade probably has a decent amount of overlap. These are the realities of shipping for the minority not the majority. Users who are a blip for some companies end up being huge to others.
- Sylos 9y agoWindows 7 is still the most popular OS, but the adoption of 64-bit OSs is nowadays at around 78%. https://hardware.metrics.mozilla.com/#goto-os-and-architecture https://hardware.metrics.mozilla.com/#goto-os-and-architectu...
- pix64 9y agoVisual Studio, Dropbox, OneDrive, Steam
- mrec 9y agoAre there slam-dunk arguments why 64-bit is always better for applications? If so, I haven't seen them, and neither have various people I follow who seem to know what they're talking about. Example: https://blogs.msdn.microsoft.com/ricom/2016/01/11/a-little-64-bit-follow-up/ https://blogs.msdn.microsoft.com/ricom/2016/01/11/a-little-6...
- JohnTHaller 9y agoThere aren't. For most apps, producing 32-bit-only is preferable. If you're going to produce 32-bit and 64-bit, you should make available a stub installer that downloads the right one or an installer with both in it because most users have no idea if their OS is 32-bit or 64-bit. Mainly because they don't even know what that means.
- theandrewbailey 9y agoMozilla has come a long way. I remember them turning off the nightly 64-bit Windows Firefox build[0], then back on[1] after people complained. [0] http://www.computerworld.com/article/2493395/internet/mozilla-suspends-work-on-64-bit-firefox-for-windows.html http://www.computerworld.com/article/2493395/internet/mozill... [1] http://www.computerworld.com/article/2494189/internet/mozilla-compromises-on-x64-firefox-after-user-backlash.html http://www.computerworld.com/article/2494189/internet/mozill...
- agumonkey 9y agoFirefox 55 feels very near chrome slick on windows (it used to be randomly laggy). Kudos moz