Slashdot Mirror


Firefox Too Big To Link On 32-bit Windows

An anonymous reader writes "Firefox has gotten so large that it cannot be compiled with PGO on a 32-bit linker anymore, due to the virtual memory limitation of 3 GB. This problem had happened last year with 2 GB, which was worked around by adding a/3GB switch to the Windows build servers. Now the problem is back, and things aren't quite that simple anymore." This only affects the inbound branch, but from the looks of it new code is no longer being accepted until they can trim things from the build to make it work again. The long term solution is to build the 32-bit binaries on a 64-bit system.

753 comments

  1. Wow by 0123456 · · Score: 0, Troll

    You mean some people still run a 32-bit OS?

    1. Re:Wow by Anonymous Coward · · Score: 0

      I'm running 16 bit MS DOS 6.22 on a 486 DX-4 you insensitive clod!

    2. Re:Wow by Gothmolly · · Score: 1, Informative

      1080P video has nothing to do with the bitness of your operating system.

      --
      I want to delete my account but Slashdot doesn't allow it.
    3. Re:Wow by Carrot007 · · Score: 0

      Blame MS.

      The sane option for windows from vista on would have been to deny users the choice and install a 64bit os if the hardware supports it.

      Personally I have run 64 bit since xp, although you can only call that a test, vista 64 was ready for all.

      Yes I know, the 1 in 16384 people that insist on having some old POC device. Well they can keep an old machine around for it if it is that important.

      --
      +----------------- | What is the question!
    4. Re:Wow by MacTO · · Score: 3, Insightful

      Some of us actually think that using a web browser is more important than compiling a web browser.

      Seriously. My resource usage rarely goes about 1 GB with multiple applications open. These days, the hard drive is a far bigger bottle neck than RAM. Well, unless you're compiling Firefox it appears.

    5. Re:Wow by mark-t · · Score: 1

      Adobe Acrobat still has no port for 64-bit Linux. At the rate things are going, I'm becoming skeptical they ever will.

      And while I know there are plenty of other PDF readers out there, there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

    6. Re:Wow by Anonymous Coward · · Score: 0

      I hope you are like 16, because this statement makes my head hurt.

    7. Re:Wow by Anonymous Coward · · Score: 5, Funny

      He was just trying to say that 1080p gives him a big endian.

    8. Re:Wow by Anonymous Coward · · Score: 0

      1080P video has nothing to do with the bitness of your operating system.

      I was merely illustrating how I've gone from being ahead of the tech curve to years behind. However I think you'll find that bits and byte order do count when writing a compression codec. In short; you're wrong!

    9. Re:Wow by Anonymous Coward · · Score: 1

      Adobe Acrobat still has no port for 64-bit Linux. At the rate things are going, I'm becoming skeptical they ever will.

      And while I know there are plenty of other PDF readers out there, there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

      If you ever wondered what multilib was for, now you know! And knowing's half the battle.

    10. Re:Wow by mark-t · · Score: 1

      Of course... but on slackware, multilib is an unsupported extension, and slackbuilds are not guaranteed to compile or install correctly on systems that have multilib installed.

    11. Re:Wow by Gideon+Wells · · Score: 0

      It is being phased out. I don't know what the Apple OS is. Windows is effectively 64 bit by default now. All my work computers were native 64 bit Vista new just prior to Win 7. IT department at the time mandated they all be rolled back to XP 32-bit for ease of care.

      Anyways, that is the point. Freaking Skyrim can run on a 32-bit machine if it has to. At FireFox's rate of bloat we won't be asking "Can it run Crysis?" but "Can it run FireFox?"

      --
      by Anonymous Coward: I, for one, welcome the shift from car analogies to pizza analogies. um.. overlords?
    12. Re:Wow by viperidaenz · · Score: 0, Flamebait

      If your usage rarely goes above 1GB then you're not a user of Firefox

    13. Re:Wow by Anonymous Coward · · Score: 0

      You mean some people still run a 32-bit OS?

      Yes, because a 64-bit OS won't install on my 32-bit hardware. And all of my servers, media center boxes, etc, use old hardware that predates this fancy new 64-bit stuff. Even my primary workstation was purchased when 64-bit was still pretty new, so it's an old 32-bit machine. I plan to upgrade it in the next little while, which will mean buying my first ever 64-bit machine and, consequently, 64-bit OS.

      Computers have gotten powerful enough that most people who aren't gamers simply don't need to upgrade as often as in the past. A computer can last many years now, even for many power users.

    14. Re:Wow by phantomfive · · Score: 2

      there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

      Why would you want to do that? I've never seen this feature used (I'm not saying it doesn't have a use, just that I can't conceive of one).

      --
      "First they came for the slanderers and i said nothing."
    15. Re:Wow by Anonymous Coward · · Score: 1

      1080P video has nothing to do with the bitness of your operating system.

      I was merely illustrating how I've gone from being ahead of the tech curve to years behind. However I think you'll find that bits and byte order do count when writing a compression codec. In short; you're wrong!

      You didn't specify a compression codec, you specified a video resolution, which is indeed completely irrelevant to the bit-count of your processor.

      In short, you're wrong. Please stop.

    16. Re:Wow by arkane1234 · · Score: 1

      Having trouble comprehending computer binary sequence, and word size transmissions?
      Hint: It was a joke about 1080p and data transfer through the data bus.

      --
      -- This space for lease, low setup fee, inquire within!
    17. Re:Wow by higuita · · Score: 1

      yes, it true... but that doesnt mean that it doesnt work...

      but if you want to make sure, installl a slackware64, do a mkdir /chroot and install in there a normal slackware.. then do some mount --bind for proc, sys, tmp and dev and do a chroot on that directory to get a full 32bit enviorment.... if you need to use X, export the DISPLAY and copy the xauth cookie for the 32bit apps connect to the 64bit X11 server... problem solved! :)

      --
      Higuita
    18. Re:Wow by mark-t · · Score: 1

      I would have thought the answer was obvious... because I have PDF's that utilize the feature for customizing what features of the document that one wishes to print. It is most practical for maps, but has a few other applications as well.

    19. Re:Wow by plover · · Score: 5, Insightful

      No, it has nothing to do with running Firefox. It has everything to do with running Visual Studio's linker.

      This matters only to Firefox developers.

      Not that they shouldn't care, mind you, as that is some seriously monolithic code. But it won't make any difference to Joe Sixpack.

      --
      John
    20. Re:Wow by rocketPack · · Score: 1, Funny

      You mean some people still run Firefox?

    21. Re:Wow by Anonymous Coward · · Score: 2, Informative

      Old gripe about window-to-the-whole-world is old. And we're talking about builds, not in-use resource consumption... where it behaves just like every other browser.

    22. Re:Wow by bluefoxlucid · · Score: 1

      How about not using shitware?

    23. Re:Wow by mcavic · · Score: 1

      Why not? You can tell just by looking at the version number that Firefox is almost as advanced as IE and Chrome. *rolls eyes*

      As for memory, there was an article a while back I believe, explaining that it takes a million gigs of RAM (I'm exaggerating) to compile/link an Android app, and I still don't get it. What do you have to store in memory aside from a symbol table?

    24. Re:Wow by mark-t · · Score: 1

      Yes... they will work... most of the time in fact. But when they don't, there is absolutely no support offered.

      I had thought about doing a 32bit chroot on a 64-bit system before, but am unsure how I would properly connect the 32-bit system to the 64-bit one for X apps. You've described basically what needs to be done, but I would really need a considerably more detailed step-by-step explanation. I didn't have much luck finding one the last time I gave this any thought.

      It's really just as annoying as hell that Adobe has evidently stopped supporting Acrobat for Linux after v9... but oh well... what can you do, right?

    25. Re:Wow by delt0r · · Score: 1

      I don't think that is correct. Slackware comes multilib capable. So it quite easy to make it multilib and everything works just fine with it. No where have i ever seen a "use at your own risk, this can break 64bit apps". Not only that, but it doesn't. I have this installed on 3 different desktops and 2 laptops without issues.

      --
      If information wants to be free, why does my internet connection cost so much?
    26. Re:Wow by EvanED · · Score: 1

      In this particular case, it's actually doing link-time code generation for optimization purposes.

    27. Re:Wow by peppepz · · Score: 4, Insightful

      And how is this connected to the amount of memory required to link Firefox?

    28. Re:Wow by orangesquid · · Score: 1

      Exactly! Those of us using a REAL operating system like Windows 3.0 never have to worry about mixing 64-bit and 32-bit environments! ;)

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    29. Re:Wow by mark-t · · Score: 1

      It is multilib capable, but multilib is still an unsupported extension.

      No where have i ever seen a "use at your own risk, this can break 64bit apps"

      It doesn't break any standard slackware apps, but it can break some slackbuilds... For what it's worth, I've even seen this happen several times. Their official response on the matter when I sought technical help about it was that multilib is not supported by the slackbuild process, and the recommendation was to not use multilib if I wanted to have reliable slackbuilds.

    30. Re:Wow by mingot · · Score: 4, Funny

      He was gonna answer that question but he took and arrow to the knee.

    31. Re:Wow by GuldKalle · · Score: 2

      People keep saying stuff like this, but in my experience it's just not true. Right now I'm clocking Firefox at 596,900 kB commit + 75,000 kB for the plugin-container.
      I have never seen it above 1 GB, although I've only sampled maybe once/month.
      Are you using another measuring technique than I, or are you just trolling?

      --
      What?
    32. Re:Wow by Jahf · · Score: 2

      This isn't about RUNNING Firefox, but compiling/linking it. I guarantee Skyrim takes more than 500GB under that context.

      However, yes, Firefox has become exceedingly bloated.

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
    33. Re:Wow by Anonymous Coward · · Score: 0

      there needs to be a negative mod point for "stupid"

      your comment would be a perfect recipient.

    34. Re:Wow by Retron · · Score: 0

      I rebooted 3 hours ago and I've got 9 tabs open in Firefox - Slashdot, some weather charts, a Livejournal page, a WoWWiki page, two BBC news items and a couple of xkcd pages. I don't have any addons other than Downloadhelper and Flashblock.
      The commit size of firefox.exe is 1,334,304 KB - over one and a quarter gigabytes for 9 pages! (The private working set is around 30 MB lower, FWIW).
      Although I've got the RAM, 1.3GB for a web brower is just plain silly.

    35. Re:Wow by armanox · · Score: 1

      MacOS 10.5-6 are 64bit if you're hardware supports it (so, only 32bit on PPC G4 and Intel Core Duo). OS 10.7 is 64bit only.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    36. Re:Wow by couchslug · · Score: 1

      I run 32-bit Linux with PAE, and the 4GB/process limit has "restrained" Firefox a few times.

      Funny. Sad if I didn't have 8GB (it's an old T61 so that's all I can fit), but still funny.

      --
      "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
    37. Re:Wow by delt0r · · Score: 1

      Since i do install quite a few things via slackbuilds, do you have a list of things that don't work?

      --
      If information wants to be free, why does my internet connection cost so much?
    38. Re:Wow by ryanov · · Score: 1

      Near as I can tell, there is no advantage to running 64-bit unless you plan to have installed (and to use) significantly more than 4GB of RAM. At or even somewhat above that amount of installed RAM, you are at a disadvantage as everything will use more memory in 64-bit mode than in 32-bit. I have run 32-bit Linux on every laptop I've had in the last several years, 64-bit support or not.

    39. Re:Wow by armanox · · Score: 1

      64bit Microprocessors were new in 1991...I hope you're hardware isn't that old.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    40. Re:Wow by Skapare · · Score: 1

      My ASUS EEE netbook is 32-bit and only 1G RAM. The push for smaller and smaller machines (in the physical sense) is still resulting in small machines in the configuration sense (32 bits or less, 1 GB or less).

      These small machines, of course, must accept lesser functionality to remain small. If that means a meaner leaner Firefox-lite, then so be it. But don't be surprised if you find me running the lite version on my big Xeon powered 2 socket 10 core 20 thread 48GB Xfce based desktop that runs in 64-bit mode. I still code in C and use text consoles, too. I can always link with libbloat if I ever need to make my programs look big.

      --
      now we need to go OSS in diesel cars
    41. Re:Wow by Anonymous Coward · · Score: 2, Insightful

      Even more unfortunate that 3/4 of the whole discussion will be "Re: Wow" as everybody dogpiles unrelated replies onto the frist post, because we all know that for mod points, it's not what you post but where you post it.

    42. Re:Wow by Aighearach · · Score: 2

      Why would you choose slackware and then seek technical help? Are you sure you're their target user?

    43. Re:Wow by Anonymous Coward · · Score: 0

      Could you stop talking in my name please? I am the one that know if it make a difference to me!

      -Joe Sixpack

    44. Re:Wow by PwnzerDragoon · · Score: 1

      If you are hardware that supports it, I'd be more worried about you being Skynet. And that Skynet runs OS X.

    45. Re:Wow by M0j0_j0j0 · · Score: 1

      Yes, but how much time did Skyrim claimed from your own lifetime, see there is always a drawback

    46. Re:Wow by obarel · · Score: 1

      I used to think like that, but now I'm using Window ME and let me tell you, I've seen the light!

    47. Re:Wow by BatGnat · · Score: 3, Funny

      You insensitive clod, I only have a 286 with 640kb, they told me I didn't need any more than that!

    48. Re:Wow by armanox · · Score: 1

      Tired today...grammar not fully processing. Maybe I could go for having 64 bit hardware in me.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    49. Re:Wow by dingen · · Score: 1

      And even then they've been around for 30 years.

      --
      Pretty good is actually pretty bad.
    50. Re:Wow by habig · · Score: 1, Informative

      And we're talking about builds, not in-use resource consumption... where it behaves just like every other browser.

      Nope. It doesn't even behave like the 3.x series (of the very same browser, Firefox!) before rampant version number inflation. A perfectly serviceable "Athlon XP" based system with 750MB of RAM went from just fine to useless (in terms of firefox usage) at the version number break, under both Windows XP and Fedora. Memory footprint was my first suspect, but throwing in more RAM (up to 2.5GB now) helped but didn't make it completely better. Ironically, it's almost ok now under XP and still atrocious under Fedora.

      Something baaad happened. But who cares about old systems, right? Only users, it turns out, not people triaging bugs.

    51. Re:Wow by rcuhljr · · Score: 1
      I love my firefox, but it does in fact use a good chunk of memory. 16 tabs and a couple of days of uptime.

      WS(K) ProcessName
      1024060 firefox

      Apparently the lameness filter hates dashes.

    52. Re:Wow by Yvan256 · · Score: 0

      He took and arrow to the knee?

    53. Re:Wow by Anonymous Coward · · Score: 0

      not in-use resource consumption... where it behaves just like every other browser

      O RLY? I thought Firefox was known to hog resources above and beyond the others when running too.

    54. Re:Wow by sexconker · · Score: 2

      Blame MS.

      The sane option for windows from vista on would have been to deny users the choice and install a 64bit os if the hardware supports it.

      Personally I have run 64 bit since xp, although you can only call that a test, vista 64 was ready for all.

      Yes I know, the 1 in 16384 people that insist on having some old POC device. Well they can keep an old machine around for it if it is that important.

      The better option would have been to deny users the choice and only offer 64-bit builds of Vista and 7.
      "But it doesn't work with my 14 year old scanner!!!" Then keep using Windows XP?

      There were already growing pains with Vista (shitty GPU drivers from AMD and Nvidia, a new audio framework, and users not being administrator by default), so it would have been the perfect time to force everyone to move to x64. They couldn't force people to switch with 7 because they wanted to get people off of Vista ASAP (even though Vista itself was fine). Oh well, hindsight is 20/20 and what not.

      It would be cool if there was a solution to properly handle a 32-bit driver in a 64-bit host environment, but there isn't. (Is there? Even if you use a 32-bit VM on a 64-bit host, you can't do shit.)

    55. Re:Wow by sexconker · · Score: 1

      This isn't about RUNNING Firefox, but compiling/linking it. I guarantee Skyrim takes more than 500GB under that context.

      However, yes, Firefox has become exceedingly bloated.

      500 GB?
      Well shit. I thought I was fine when I built my desktop with 16GB. Well, it was 2 months ago, I guess it is time for an upgrade.

    56. Re:Wow by icebraining · · Score: 2

      Iceweasel, 35 tabs open, 1 week uptime, 352MB of resident memory ;)

    57. Re:Wow by miserere+nobis · · Score: 1

      YM every other browser that, if I accidentally forget and leave it open with a few tabs on different websites overnight, will have become unresponsive and eaten half of my system memory by the time I come back in the morning? FF is noticeably different than any other browser when it comes to in-use resource consumption, in my experience, not that it has much to do with the original story.

    58. Re:Wow by armanox · · Score: 1

      64bit computing yes, hence why I specified microprocessors. I really hope that his hardware isn't as old as 64bit computing....

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    59. Re:Wow by omnichad · · Score: 1

      I know nothing about this, but with X being a display protocol, couldn't you run X in 64-bit and connect to it from a 32-bit app just fine?

    60. Re:Wow by TheRealMindChild · · Score: 2

      It would be cool if there was a solution to properly handle a 32-bit driver in a 64-bit host environment, but there isn't. (Is there? Even if you use a 32-bit VM on a 64-bit host, you can't do shit.)

      In the beginning, Microsoft used Thunking to be able to use 16-bit drivers (and other DLLs) on a 32-bit system (Windows 95). This halted in Windows 98 (driver wise) due to horrible stability problems. Eventually, Microsoft moved to Windows on Windows (WOW) which provided an adequate environment for 16-bit apps to run on 32-bit Windows NT. However, if you have a 64-bit version of Windows, you don't have WOW, but WOW64, which runs 32-bit apps on 64-bit Windows, and has no support for 16-bit Windows applications.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    61. Re:Wow by Anonymous Coward · · Score: 0

      This post has absolutely no value at all, but its +5 insightful.. I mean wholly fucking anal drip...

      Either the mods today should be fucking ashamed, are this cocksucker has sock puppets that he uses to mod his own posts up.

    62. Re:Wow by Drinking+Bleach · · Score: 1

      I would be dismayed if Skyrim really took more than a couple hundred megabytes to compile, given that you're only compiling the engine, which is likely small and even a piece of shit computer from 10 years ago could probably compile it in under 30 minutes. The game's assets (music, graphics, whatever) have no bearing on this.

    63. Re:Wow by Anonymous Coward · · Score: 3, Informative

      Making the usage of Firefox fast is the whole point of PGO, a process that uses up orders of magnitude more when compiling and linking an executable than without PGO. So, in order to get the fastest speeds out of the Firefox binary, the Firefox build process optimizes and uses lots of RAM in the process. The problem is that the MSVC linker is 32-bits, so the *linker* is running out of memory ONLY WHEN FIREFOX IS COMPILING AND OPTIMIZING. The executable that is generated is not as large, does not use as much memory, and is faster than if Firefox was built with a "straight" boring old build process.

      The whole point of this exercise is to save assholes like you more time by making your browser faster and more responsive so you can post snarky criticisms of Firefox (without understanding the problem) faster.

      Your welcome, asshole.

    64. Re:Wow by mark-t · · Score: 1

      I seem to remember issues with FreeCAD and OpenCASCADE. There were about half a dozen or so others.... I don't recall the names of any of the others offhand.

    65. Re:Wow by Robert+Zenz · · Score: 1

      You mean some people still run Windows?

      FTFY

    66. Re:Wow by shutdown+-p+now · · Score: 1

      I suppose you couldn't enchant my toolchain? The dull old linker barely links Skyrim...

    67. Re:Wow by Rich0 · · Score: 1

      The better option would have been to deny users the choice and only offer 64-bit builds of Vista and 7.
      "But it doesn't work with my 14 year old scanner!!!" Then keep using Windows XP?

      The reason Windows is so popular in the corporate world is because they don't do stuff like what you suggest. You're thinking about a $50 scanner, but maybe in the corporate world they have 300 $5000 multi-function devices. Or, maybe they have 100 $100k mass spectrometers. Or, maybe they've got a $15M MRI machine. If your vendor doesn't release new drivers then you can't upgrade your OS. Sure, you can run XP for a while, but not forever if you want security patches. Do you really want to throw away a $15M MRI machine that works fine because your OS isn't getting security updates any longer?

      Microsoft has generally supported their OS FAR longer than just about anybody else, and this is one of the reasons that they're so hard to displace. In the linux world we call "long term support" a few years. Microsoft still supports XP, and that was out not long after Y2K. Think about what you were doing around Y2K...

    68. Re:Wow by bstag · · Score: 1

      This post has absolutely no value at all, but its +5 insightful.. I mean wholly fucking anal drip... Either the mods today should be fucking ashamed, are this cocksucker has sock puppets that he uses to mod his own posts up.

      anal drip... hmm bad low calorie chips.

    69. Re:Wow by Z00L00K · · Score: 1

      And it's the linking, not compilation that's the problem.

      However it also means that it may be a question of the application structure rather than anything else. Time to see how much that can be broken out to shared libraries (DLL:s) and also see how much that shall be public and how much that shall be internal to each DLL.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    70. Re:Wow by hairyfeet · · Score: 0

      There is no advantage to running 64bit LINUX....FTFY. Not trying to insult, its just the differences in the arches. With Windows you have what is called "superfetch" which will learn what programs you use and load them into RAM at the appropriate times that you usually use them which of course makes programs faster to load. AFAIK there is no equivalent to superfetch in Linux so i doubt having extra RAM would help there.

      Besides why not max the board/laptop out when the price is cheap? I loaded 8Gb in my netbook, will it run fine on less? Sure but the difference between 4gb and 8Gb was a whole $6 so it simply made no sense to go smaller. this new box I'm building for my sweetie will have 8Gb for it simply because at less than $20 a stick there really isn't a point on skimping anymore. So as long as the board will take it why not load it up while the prices are cheap?

      I learned that lesson the hard way when I didn't load up my last box with DDRs when it was cheap, now to max out the board would be more expensive than simply tossing the board and CPU and replacing them. It won't be long before DDR 4 comes out and then DDR 3 will go the way of DDR, so might as well load up friend.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    71. Re:Wow by Nutria · · Score: 1

      FF8 on 64-bit Linux was using 3.2GB RAM just now before I closed a FF window that had a bunch of dynamic pages.

      Real RAM usage shot up to 7.3GB and virtual memory exploded to 22.1GB. The kernel OOM killer finally saved the system.

      --
      "I don't know, therefore Aliens" Wafflebox1
    72. Re:Wow by Anonymous Coward · · Score: 0

      You forgot to mention that you're still gay.

      He didn't want to get modded Redundant.

    73. Re:Wow by sexconker · · Score: 1

      In the corporate world they also have companies behind those expensive machines that can write a proper driver (when forced to).
      In the corporate world they also have people who will say "We should not upgrade to X because of Y".
      In the corporate world they also have bosses who will say "Why upgrade to X? Our Y already works, why spend $Z?".

      XP will get security updates until April of 2014.
      I'm pretty sure there's no one in the world that has anything that meets all of the following criteria:

      1) Doesn't have a 64-bit driver
      2) Is so complicated/critical/magical that no one can write a 64-bit driver for it
      3) Can't be run on a locked-down 32-bit system past April, 2014 because of security FUD
      4) Had enough support to make it work on 32-bit Vista/7

    74. Re:Wow by ewanm89 · · Score: 1

      Actually, Skyrim uses more and more the more you travel and explore. Which is why some of us enabled the use of >32bit addressing by patching the binary.

    75. Re:Wow by westyvw · · Score: 1

      I am in the same boat. Couple of hours in (started with a restored session) 8 tabs, 3 plugins. 256 megs. Not anywhere near what other people see. Wonder if using Noscript and blocking unnecessary javascript helps?

    76. Re:Wow by westyvw · · Score: 1

      Let me know when there is a decent alternative. If Rekonq wasnt so crashy I would consider it.

    77. Re:Wow by knorthern+knight · · Score: 1

      > I know nothing about this, but with X being a
      > display protocol, couldn't you run X in 64-bit
      > and connect to it from a 32-bit app just fine?

      Emphatic yes. One day I decided to do a pure 64-bit Gentoo linux install (pure as in no multi-lib). I use one freeware Windows app that has to be run under WINE. Then I found out the hard way that WINE will not build under a 64-bit-only system. I ended up building a 32-bit Gentoo guest under QEMU-KVM. Wine runs on the 32-bit guest, using the display of the 64-bit host. A chroot would probably also work.

      --

      I'm not repeating myself
      I'm an X window user; I'm an ex-Windows user
    78. Re:Wow by anubi · · Score: 2

      I still get calls to support industrial processes driven by DOS based machines.

      I am an old guy, raised with these beasts. I know the innards of these things like the back of my hand.

      The harbinger of death seemed to be a dearth of disk drives compatible with old DOS machines. Even my stream of disk drives from the recycler is drying up. But it looks like SanDisk and Syba have pulled me and my customer's arse out of the fire again.

      Its hard to throw away an enormous expensive piece of machinery because its controller ( which has been doing exactly what it needed to do for 25 years ) isn't supported anymore.

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

    79. Re:Wow by Anonymuous+Coward · · Score: 1

      but am unsure how I would properly connect the 32-bit system to the 64-bit one for X apps

      That's trivial -- you just have to mount /home and /tmp (either as normal partitions or with --bind) inside the chroot, and they will find the X11 socket and the .Xauthority file just fine.

      But you don't really need a chroot for that. You can install the 32bit libraries and ld-linux.so somewhere and then starting them with a script like LD_LIBRARY_PATH=/32libs /32libs/ld-linux.so "$@".

    80. Re:Wow by Anonymous Coward · · Score: 0

      I have over 50 tabs open for about a week, mostly documentation pages for VTK and QT and ITK. I dont run any addons at all, and the commit size of my firefox is 356MB.

      Seems like to me one of your add-ons or Flash is leaking.

    81. Re:Wow by unixisc · · Score: 1

      A lot of people still have CPUs that are still 32-bit only, and haven't grown their RAM beyond 3GB. That's one of the biggest hurdles in going from XP to 7.

    82. Re:Wow by unixisc · · Score: 1

      One would have to specify x64 processors to qualify them as new. Otherwise, every RISC CPU had become 64-bit before - MIPS R4x00, Alpha AXP, PA 8x00, Poewr, UltraSparc. Two of them even ran Windows NT, so MS did have the opportunity of having a 64-bit OS ready in advance for the server & workstation markets on RISC, but never took it.

    83. Re:Wow by Rich0 · · Score: 1

      In the corporate world they also have companies behind those expensive machines that can write a proper driver (when forced to).

      Uh, clearly you've never owned one of those high-end machines. It is pretty common for them not to receive long-term support, since the vendor wants you to buy a new one, and the people who buy those machines rarely have any IT background and ask questions in advance like "how long will you support the OS?"

      In the corporate world they also have bosses who will say "Why upgrade to X? Our Y already works, why spend $Z?". XP will get security updates until April of 2014.

      Yup - and we'd be running XP on such a machine until around then. However, what if the machine still isn't ready for replacement then? If you want it on the network then there are a lot of issues with not upgrading the OS.

      3) Can't be run on a locked-down 32-bit system past April, 2014 because of security FUD

      Well, we've certainly taken this approach for our NT-based machines. However, this is really not a great position to be in. Good security means defense in depth, and you just don't have that when you're running an OS that hasn't been patched in 10 years. The world's greatest perimeter firewall won't help you if somebody plugs a flash drive into the thing.

      But, you've actually made my point for me in some sense - the reason that XP is supported until April 2014 is because MS does bend over backwards to provide long-term support for their OSes, and APIs. Why would a company drop 32-bit support if they're willing to support a product for almost 15 years in the first place?

      I'm sure they'll drop 32-bit at some point, but I can't imagine that it costs them a huge amount to keep it as an option, and as long as the benefits outweigh the costs they'll do it - even if it makes the purists cringe. MS has never done anything for the purists - if you could cram 4GB of RAM onto an old 25MHz 486SX motherboard I wouldn't be surprised if Vista booted just fine on it (eventually), even without the floating point instruction set (I have to admit I'm suddenly morbidly curious).

      Sure, on my desktop at home I've been running 64-bit linux since the socket 754 days. However, at work around the same time I was still nursing a VAX along to the graveyard. That's just the nature of long-term capital investments.

    84. Re:Wow by TheRaven64 · · Score: 4, Insightful

      Not that they shouldn't care, mind you, as that is some seriously monolithic code.

      They're talking about using link-time optimisation (LTO). That means that you compile each compilation unit to an intermediate representation and then run optimisations on the whole program. This takes a staggering amount of memory (which is why no one bothered with it off high-end workstations with very expensive compilers until very recently), but can sometimes be worth it. It actually helps modularity, because you can keep your source code nicely separated into independent components without worrying about efficiency, and you can do better data hiding.

      As a trivial example, consider an accessor method. Something like getFoo() { return foo; }. Without LTO, you'd want to put the declaration of the class and this method in the header so that every compilation unit could separately inline it. This reduces modularity, but it saves you the cost of a function call just to access a field in a structure. With LTO, you can make the class opaque (if you're a C++ junkie, using the Pimpl pattern, if you're a C programmer by just not declaring the struct in the header). You'll get a single copy of the function emitted, and then the link-time optimiser will inline it everywhere.

      --
      I am TheRaven on Soylent News
    85. Re:Wow by TheRaven64 · · Score: 2

      There is no advantage to running 64bit LINUX....FTFY

      Not true at all. There are several advantages to running code compiled for x86-64 instead of for x86. If you're on *NIX, then one of the big ones is that x86-64 has rip-relative addressing, while x86 lacks eip-relative addressing. In position-independent code, this means that any call to a static function or access to a static variable is cheaper. Windows doesn't use position-independent code for DLLs on 32-bit (it tries to load them at a fixed address and performs load-time relocations if it can't), so that's not a problem, but on *NIX.

      There are other advantages. One of the big ones is that anything targeting x86-64 will default to using SSE for floating point instead of x87. This is generally at least slightly faster in the silicon, but it's also much easier to generate good SSE code for the register-register SSE coprocessor (with lots of registers!) than for the stack-based x87 (with only a handful).

      Then, of course, there's the fact that you have a lot more general-purpose registers with x86-64, so you need far fewer stack spills to do the same thing.

      --
      I am TheRaven on Soylent News
    86. Re:Wow by Anonymous Coward · · Score: 0

      Your welcome, asshole.

      You're welcome, asshole.

    87. Re:Wow by Anonymous Coward · · Score: 0

      40+ tabs, 3 days of up-time, 829,448 KB commit V 5.0. And I regularly hit 60+ tabs, daily while I bring up the news sites in the morning then read and close them through the day. I think 3.6 was much more stable than the newer versions, the newer versions crash on me every few days or even multiple times a day.

    88. Re:Wow by hairyfeet · · Score: 1

      While I agree that the larger registers are worth having, I personally have been running X64 since XP X64 beta, the poster I was responding to said there wasn't any point for general users to go x64, that it was basically for Linux (hinting that it was programmers that needed it) and those really slamming the machine. When I first went to X64 I only had 2Gb of RAM but it STILL made a difference, especially in video transcoding.

      But now even grandma gets major advantages for running X64, with superfetch and the new Windows memory management every drop of that RAM will be put to good use speeding up the OS and preloading programs that are often used.

      You'd think though that someone would write a superfetch for Linux, it shouldn't be hard, just keep a list of what programs are run and when and if RAM is left empty to cache those programs. If the user launches them it'll call them from RAM, and if the user launches a program that needs the RAM dump the cache. I'm sure it would be a little more complex than that to implement but that's the basics of it.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    89. Re:Wow by ryanov · · Score: 1

      Does "preload" do what you're talking about or are we not thinking of the same sort of things?

    90. Re:Wow by Wolfrider · · Score: 1

      --What, you never heard of Vmware? I run 64-bit Linux Mint on my 6-core beast, and my USB Lexmark X2500 is not supported in Linux. Yet I print from it regularly using various 32-bit XP guests, running the native Lexmark 32-bit XP driver.

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
    91. Re:Wow by definate · · Score: 1

      WHOAH! A +1 TROLL!

      One of the rarest of all creatures!

      --
      This is my footer. There are many like it, but this one is mine.
    92. Re:Wow by hairyfeet · · Score: 1

      Not really as superfetch is based on usage patterns. lets say that every weekday i launch Chrome, and on every weekend I launch WMP, what superfetch will do is load Chrome during the week, replacing that with WMP on weekends. basically the longer you use the PC the "smarter" it gets about your usage patterns and the better it will be at predicting what you are gonna launch. For example my PC knows I launch Paragon to make a backup on the day after patch Tuesday so it'll be loaded into RAM the second Wednesday of every month like clockwork waiting for me.

      I'm sure it wouldn't be hard to cook up something similar in Linux, I've just never heard of anyone doing it. When superfetch came out with Vista there were several projects started but IIRC they are all dead code on sourceforge now. Shame as it is a nice feature.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    93. Re:Wow by ryanov · · Score: 1

      There is some indication (though nothing too specific in what I read) that it has some awareness of usage patterns, but I couldn't say. That said, it's hard to imagine application launch being much faster on my current machine anyway. I'm not really going to notice the difference between 3 seconds and whatever would be faster.

    94. Re:Wow by badkarmadayaccount · · Score: 1

      Running 7.0.1 with over 50 add-ons. Non-deterministic swap IO chocking, less often freezes, most often exit without saying a thing. 1.4GHz Celeron M, 2x256MB DDR1 RAM, 40GB 5.4krpm PATA drive, 6y.o. laptop, Arch linux, -pf branch kernel i686 microarch optimizations, Xfce4 vanilla.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    95. Re:Wow by hairyfeet · · Score: 1

      Well I think the better metric would be the intelligent use of RAM, after all DRAM is gonna take the same voltage whether sitting empty or fully loaded so having a large amount of empty RAM simply isn't doing you any good.

      Checking resource monitor in Win 7 just now shows of my 8192Mb of RAM there is only 332Mb free, with 6373Mb being used for caching. With that large a cache it is more likely that when i launch a program its exe and .dlls will be already loaded and waiting on me thus speeding up performance. While you are correct that with modern desktops that extra caching simply won't be felt by most i could really tell a difference in my netbook when i went from 2Gb to 8Gb thanks to the larger cache and superfetch. I got around an extra 40 minutes on my battery, from 5:30 to a little over 6:15 simply because that much larger cache and superfetch keeping my apps loaded meant the drive could stay spun down more.

      One thing i don't know why the Linux guys haven't ripped off yet is the new UI tweaks like jumplists and breadcrumbs. Frankly once you've used jumplists and breadcrumbs going back to the old way of file management feels like a real step back. With breadcrumbs I can instantly jump through a file tree without having to drill up or down through folders, and having nearly every app have the last 10 things you did instantly accessible simply by right clicking on the icon is just too damned nice.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    96. Re:Wow by DaVince21 · · Score: 1

      Of course. Not too long ago, all netbooks were still 32-bit. Those devices haven't magically become 64-bit systems.

      --
      I am not devoid of humor.
    97. Re:Wow by ryanov · · Score: 1

      I use the file manager 3 or 4 times a month. Maybe that is part of it.

  2. Trying to do too much by bobcat7677 · · Score: 5, Insightful

    And this would be the point where the fact that the Firefox devs have been trying to do too much with a "browser" becomes beyond blatantly obvious. Firefox team: get your stuff together or you will die a slow death of attrition.

    1. Re:Trying to do too much by dn15 · · Score: 5, Funny

      And this would be the point where the fact that the Firefox devs have been trying to do too much with a "browser" becomes beyond blatantly obvious.

      Firefox is a great operating system, if only it included a decent browser :P

    2. Re:Trying to do too much by jlebar · · Score: 5, Informative

      Chrome doesn't even try to build with PGO, last time I checked.

      http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/533e94237691e2f6

    3. Re:Trying to do too much by Grizzley9 · · Score: 3, Interesting

      I'd already have switched to Chrome if not for FF's Live Bookmarks. Reading a bunch of different sites, multiple times a day it makes for an easy scan of story titles to see if anything is worth looking at. Otherwise I'd switched long ago and was sad Chrome didn't come with it. I don't want to manage a dedicated app.

    4. Re:Trying to do too much by maztuhblastah · · Score: 4, Informative

      An excellent takeaway from this article.

      Unfortunately, it's completely incorrect. TFA is talking about the build process on a 32-bit host, specifically that VS builds using profile-guided optimization require more memory than is available in the address space *DURING THE BUILD PROCESS*, not an issue encountered by the resulting binary.

      I know you want a chance to get in a quick dig at Firefox, but this isn't the article for that.

    5. Re:Trying to do too much by Nethemas+the+Great · · Score: 1

      I don't think they are trying to do "too much" per-se. Rather, they have an underlying architecture that is forcing bloat creating compromises in support of functional requirements. FireFox needs a reboot and this is a symptomatic consequence.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    6. Re:Trying to do too much by arkane1234 · · Score: 1

      It's obvious emacs developers got bored on their current projects ;)

      --
      -- This space for lease, low setup fee, inquire within!
    7. Re:Trying to do too much by lpp · · Score: 5, Insightful

      I think it's still indicative of the problem GP mentions. The more code you are trying to pull in, the larger the footprint during the build process. You don't see a 'Hello world' program requiring a 3GB+ build footprint do you? No, because it's not doing enough to warrant that. Likewise, Firefox apparently *is* trying to do a lot. More than it used to at any rate.

    8. Re:Trying to do too much by Unoriginal_Nickname · · Score: 5, Insightful

      Thank you for posting this. Filling the virtual address space of the linker probably does indicate some problems with the Firefox source code - crazy big translation units, for example - but it doesn't imply anything about the size or quality of the resulting binary.

      I thought people on this site were supposed to know something about computers.

    9. Re:Trying to do too much by Anonymous Coward · · Score: 0

      You aren't saying anything that flies in the face of what the OP posted. Now stop trying to defend that bloatware and come back to common sense with the rest of us. FF has become what people claimed IE was when they left IE. Now either people are going to move on or admit that they took up Firefox to be anti-MS and are now too invested in their pet browser to move on with their heads held up high.

    10. Re:Trying to do too much by scamper_22 · · Score: 1

      Unfortunately, there is a pretty high correlation between what an application does and how big the binary is.

      If it does less things... it has fewer dependencies, less code... and you won't hit that problem.

      Alternatively, if more things were add-ons/plugins that needn't be linked with the main binary, this wouldn't be a problem either.

    11. Re:Trying to do too much by Anonymous Coward · · Score: 2, Insightful

      It's more an indication that compiler writers are taking advantage of the huge amount of memory available for optimization techniques that take a lot of RAM. This is actually a GOOD thing. The bad thing is if it takes RAM while it's running.

    12. Re:Trying to do too much by BZ · · Score: 5, Informative

      Define "too much"?

      It's been over a year since Chrome had to turn off PGO altogether and move to 64-bit builders even without PGO, because they ran into this same problem.

      So maybe your issue is with the fact that all "browsers" as you call them are trying to do too much? They should drop the fast graphics and jits and video and audio support and all that jazz, right?

    13. Re:Trying to do too much by BZ · · Score: 5, Insightful

      The "translation unit" involved here is the whole binary. We're talking about link-time code generation with profile-guided optimization, not regular compiles.

      So it doesn't indicate much of anything about the Firefox source code other than general overall quantity of code being compiled...

    14. Re:Trying to do too much by Anonymous Coward · · Score: 0

      In truth, Firefox is a great browser, but the operating system it includes around it is crap.

    15. Re:Trying to do too much by Xolve · · Score: 1

      Hey even Chrome requires a big machine to compile, don't remember the exact specs.. I got this from a Google Tech Talk/

    16. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Just use Google Reader

    17. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Not familiar with PGO, what does this actually mean? Does it mean that Chrome's footprint is just as big, but they get around it by using some other build system?

    18. Re:Trying to do too much by Anonymous Coward · · Score: 0

      I have no idea what you are smoking, Firefox is the best browser out there and uses the least amount of memory.

    19. Re:Trying to do too much by Anonymous Coward · · Score: 0

      I hear ya. RSS Live Links and Foxish Live RSS mimic live-bookmarks reasonably well, but sometimes run up against the bookmark API's limit on # of bookmark operations per hour (or what have you). The former, at least, also tends to cease updating if I hibernate the comp during a session. Built-in functionality would be alot less flaky, and remove the need for every damn site creating their own personal live-feed extension.

    20. Re:Trying to do too much by maztuhblastah · · Score: 5, Informative

      I think it's still indicative of the problem GP mentions. The more code you are trying to pull in, the larger the footprint during the build process. You don't see a 'Hello world' program requiring a 3GB+ build footprint do you? No, because it's not doing enough to warrant that. Likewise, Firefox apparently *is* trying to do a lot. More than it used to at any rate.

      Well you're right in that Firefox does need a hell rather large amount of RAM to build... but it's not just them; all browsers are trying to do a lot nowadays.

      Chrome doesn't exactly have light build requirements either. In fact, the Chromium project already seems to have dropped 32-bit build environments:

      A 64 bit OS is highly recommended as building on 32 bit OS is constantly becoming harder, is a lot slower and is not actively maintained.

      (From "Build Instructions (Windows) - Build Environment")

      That's why I think that the parent poster's implication that it's due to Firefox becoming "bloated" is basically hogwash. Browsers are more complex than they were in the mid-90s. That's what happens when you add 10+ years of new formats and technologies that must be supported for a browser to be considered "usable". Directing one's ire at Firefox is unwarranted, IMHO.

    21. Re:Trying to do too much by Anonymous Coward · · Score: 0

      You just compared "Hello World" to a browser. Hahahaha.

    22. Re:Trying to do too much by Anonymous Coward · · Score: 0

      My "Hello World" has a 7 billion footprint.

      Yeah, I use the higher estimate, why leave people out?

    23. Re:Trying to do too much by Skapare · · Score: 1, Interesting

      That still shows poor design.

      Much of FF's bloat is due to added features only a subset of users want. What FF should do is what the Linux kernel does. And that is to make lots of parts be separately loaded modules. Unlike the kernel, these can easily be dynamically loaded by the program itself as needed, and even unloaded when not needed. Then stuff a given user never uses would never be loaded (it would just sit in the filesystem as a .so file somewhere). These modules would all be separately compiled (from the common headers that describe interfaces), and ... this is important for this issue ... separately linked.

      --
      now we need to go OSS in diesel cars
    24. Re:Trying to do too much by Skapare · · Score: 1

      Obligatory ...

      Emacs is a great operating system, if only it had a decent editor. :P

      --
      now we need to go OSS in diesel cars
    25. Re:Trying to do too much by Unoriginal_Nickname · · Score: 1

      The object files will contain redundancies, such as symbols and template instantiations. Without good header management the linker (and profiler, since this is done per translation unit) will need vastly more memory.

    26. Re:Trying to do too much by Anonymous Coward · · Score: 0

      it's called iGoogle http://www.google.com/ig ... works cross browser

    27. Re:Trying to do too much by Chrutil · · Score: 1

      In truth, Firefox is a great browser, but the operating system it includes around it is crap.

      Too young to remember emacs perhaps? Kids these days. Now get off my lawn.

    28. Re:Trying to do too much by BZ · · Score: 5, Informative

      > And that is to make lots of parts be separately loaded
      > modules

      This actually leads to pretty serious performance penalties because of the way that web specs tend to interdepend on each other. It also loses you optimization opportunities.

      Pieces of functionality that are not interdependent with other stuff (e.g. audio and video backends, webgl) are in fact either in separate libraries or being moved there.

      For the other stuff, there did use to be more modules. It turned out that in practice most users needed them at startup (to show the browser itself and restore their tabs), so the only thing multiple modules got you was a slower startup and slower runtime code.

      It's not an accident that both Firefox and Chrome ship almost all their code in a single library (binary in the case of Chrome). It turns out that for web browsers specifically this works somewhat better than the alternatives.

      Oh, I just checked and looks like Opera also also links all its code into a single library, at least on Mac.

      And Safari links all the core WebKit code into a single library.

      Not sure what IE does nowadays, but last I checked mshtml.dll in fact included all the actual browser bits.

      Now it may be that all the people involved in all these projects can't design worth anything. Or maybe they did some measurements that you haven't done and found that this approach works better....

    29. Re:Trying to do too much by spam4rakesh · · Score: 1

      Emacs is a great OS and it includes a browser too :)

    30. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Firefox is a great operating system, if only it included a decent browser :P

      Not necessary, you can boot linux in it and run emacs and browse with w3.

    31. Re:Trying to do too much by Murdoch5 · · Score: 1

      Real men use Vi

    32. Re:Trying to do too much by gl4ss · · Score: 1

      nah..

      this _is_ an article for that.
      in addition, they've been stuck on vs 2005.

      the obvious thing for them to do would have been to switch to building on a 64bit os. it's not like you'd like to compile ICS on a friggin nexus either..

      they should seriously re-arrange a lot of things. that would make loading a lot of crap optionary too.

      --
      world was created 5 seconds before this post as it is.
    33. Re:Trying to do too much by BagOCrap · · Score: 1

      Oh, where are the mod points when the voice of insight chimes in?

      --
      -- Chaos, panic, pandemonium... My job here is done!
    34. Re:Trying to do too much by BagOCrap · · Score: 1

      Why, yes, of course! All software should be modular by default.

      Not to be an utter arse, I agree with you to an extent. I'm just having some troubles comparing Firefox to the Linux kernel. Oranges to orange trees, if you like.

      --
      -- Chaos, panic, pandemonium... My job here is done!
    35. Re:Trying to do too much by fahrbot-bot · · Score: 1

      Firefox is a great operating system, if only it included a decent browser :P

      Hmm... Can't Emacs emulate Firefox? Let me see... something like < M-x firefox-mode >

      --
      It must have been something you assimilated. . . .
    36. Re:Trying to do too much by Tolkien · · Score: 5, Informative

      PGO = Profile Guided Optimization. It allows the optimizing compiler/linker to figure out for itself exactly what the critical execution path(s) of the program (the code that runs most frequently) is/are by requiring the user to execute the code with this special pgo-instrumentation of the compiled code as many times as required to cover typical use-cases, and optimize the code based around the execution paths taken. Profile guided optimization is a strictly optional step which can be used to improve program performance (potentially) more or better than the generalized optimizer (/Ox compiler option with MSVC) can. Fuck. Posting this is undoing my moderations. Oh well.

    37. Re:Trying to do too much by TehDuffman · · Score: 1

      I'd already have switched to Chrome if not for FF's Live Bookmarks. Reading a bunch of different sites, multiple times a day it makes for an easy scan of story titles to see if anything is worth looking at. Otherwise I'd switched long ago and was sad Chrome didn't come with it. I don't want to manage a dedicated app.

      Mod parent up. Live bookmarks is the only reason i still use FF and the chrome apps that attempt to replicate come close but aren't there. Should have been in Chrome since version 4...

    38. Re:Trying to do too much by Anonymous Coward · · Score: 0

      I thought people on this site were supposed to know something about computers.

      I believe you are thinking of Yahoo Answers.

    39. Re:Trying to do too much by ceoyoyo · · Score: 3, Insightful

      Just because Chrome is bloated too doesn't mean Firefox isn't.

    40. Re:Trying to do too much by Kuipo · · Score: 1

      I have a friend like that too, what I don't get about that stance is this... Why don't you just use an RSS aggregator like Google Reader if you want to use RSS (which is what their live bookmarks are using)? Once you use an RSS aggregator, it's unlikely that you'll go back to their live bookmarks. They really don't offer much in comparison.

    41. Re:Trying to do too much by Anonymous Coward · · Score: 0

      That's not true, you can run Chrome under Firefox ;-)
      http://www.youtube.com/watch?v=AO-qca9ddqg

    42. Re:Trying to do too much by Khashishi · · Score: 1

      That's a good idea. They could call them "add-ons" or maybe "plugins" or "extensions"

    43. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Dang, I wish Google would just let you add things to one page where you could see different sites' feeds and have them all there with headlines and summaries ready for you to view.
      They could give a trendy name like igoogle.com or something too.

      Try it, it's much better than live bookmarks, and it doesn't bring your browser to a crawl while it tries to update all the live bookmarks at once. Plus, as a benefit, you don't have to use firefox. :)

    44. Re:Trying to do too much by RogerWilco · · Score: 0

      No no no, that's Emacs.

      --
      RogerWilco the Adventurous Janitor
    45. Re:Trying to do too much by KXeron · · Score: 1

      I disagree. Applications should be optimised but many developers aren't doing that anymore as it means more development time.

      Over the years, if you compared in ratio how much resources applications used in 2000-2005 compared to what they use now, you'll see that applications use an unjustified amount of resources. A large problem is this "If your computer can't run X, upgrade your computer" movement instead of pressing developers into reviewing how they can optimise.

      Nearly no modern practical use (read: browsers, office productivity, etc) program can run on a modern average computer anymore without paging to disk, and that is a disturbing trend.

    46. Re:Trying to do too much by youn · · Score: 1

      When did they upgrade from punchcards?

      --
      Never antropomorphize computers, they do not like that :p
    47. Re:Trying to do too much by gbjbaanb · · Score: 1

      I don't suppose the huge web-display system needs to be split into pieces (though I imagine there's not that much overhead to it - you won't get any PGO, but that's not that big an optimisation step as you'll still get it inside each module).

      What could be done is to split the rest of the browser into modules. The code that displays a window doesn't have to be in the same module as the code that figures out how to display the data stream. The bookmarks system could be a separate module that's linked in at the end - its hardly essential that something like that is optimised to the operation of the whole.

    48. Re:Trying to do too much by syousef · · Score: 1

      Real men use Vi

      I'm an evolved man. I use Vi Improved!

      --
      These posts express my own personal views, not those of my employer
    49. Re:Trying to do too much by luserSPAZ · · Score: 1

      Except what BZ just said is that you pretty much need all of those core pieces to start the browser anyway, so splitting them out into separate modules just makes the browser start more slowly.

      Also, cross-module optimization does help quite a bit. Microsoft's PGO optimizer is able to do crazy stuff like speculative virtual call inlining, which is a big deal on a large C++ codebase like Mozilla.

    50. Re:Trying to do too much by BZ · · Score: 0

      > I don't suppose the huge web-display system needs
      > to be split into pieces

      The web-display system is what's being linked here.

      > but that's not that big an optimisation step as you'll
      > still get it inside each module

      Historical performance data from back when there were in fact multiple modules involved says otherwise.

      > The code that displays a window doesn't have to
      > be in the same module as the code that figures out
      > how to display the data stream.

      Firefox uses the web display system to draw its window already. There is no separate code for the window to pull out.

      > The bookmarks system could be a separate
      > module that's linked in at the end

      This may be possible, yes. Though keep in mind that bookmarks and history is a single system in Firefox to some extent, and history is actually a high-performance part of the main html rendering pipeline due to the need to implement visited link coloring and selectors.

    51. Re:Trying to do too much by Anonymous Coward · · Score: 0

      You don't see a 'Hello world' program requiring a 3GB+ build footprint do you?

      Challenge accepted. I'll be back in a bit.

    52. Re:Trying to do too much by shutdown+-p+now · · Score: 1

      No, it doesn't. Link-time code generation is very memory-intensive (consider that the compiler has to maintain any state necessary for the optimizer - like code flow graph - for the entire resulting binary). PGO adds a lot more on top of that. For a sufficiently large project, it is not at all uncommon to hit the 3Gb limit. Firefox is not unique in that.

    53. Re:Trying to do too much by gid · · Score: 1

      With chrome, wrench, options, personal stuff, sigh in with you google account. It even automatically installs your extensions I believe.

    54. Re:Trying to do too much by martin-boundary · · Score: 1

      You don't see a 'Hello world' program requiring a 3GB+ build footprint do you?

      Depends. If it's a recursive template metaprogramming style 'Hello World' program, it might :)

    55. Re:Trying to do too much by Shatrat · · Score: 1

      Chrome isn't bloated though.  It is fast and lightweight.  The example is a counter point to the correlation of compile resources and cruft and bloat in the end product.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    56. Re:Trying to do too much by St.Creed · · Score: 3, Funny

      Don't worry, I've modded you up!

      Oh, wait...

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    57. Re:Trying to do too much by snemarch · · Score: 1

      Not translation units - when doing PGO, you also generally do LTCG across the entire program image, not within translation units. To overcome this, they'd have to split into a bunch of DLLs.

      --
      Coffee-driven development.
    58. Re:Trying to do too much by DJRumpy · · Score: 1

      You raise a good point. I think a good approach to this is to address the misconceptions about 'bloat'. What features would they remove that they consider bloat? They just see a large binary and assume it's 'bloated' when the consumer is the one demanding the additional functionality. Think about that a bit. What features would you remove from Firefox (or any other browser) that you consider irrelevant. Granted there are some features in all browsers I could do without, but not many. They originally started as a simply idea. Display static web pages. They have morphed into dynamic, almost OS like feature sets, and consumer demand just keeps pushing that envelope further and further.

      My idea of bloat is when you have feature creep that tends to make the code less optimized and larger than necessary. It is unavoidable to some extent as you add features between major releases, but a major release is the perfect time to address such issues and I can't imagine of of these major browser vendors not doing just that. To my mind, heavily used features are not bloat.

      If the majority of users want said feature, it is not bloat.

    59. Re:Trying to do too much by Anonymous Coward · · Score: 0

      >> Much of FF's bloat is due to added features only a subset of users want.

      True. In fact I can't stand Chrome because it lacks basically every feature I want.

      If I want a browser which does nothing I connect with telnet, thanks.

    60. Re:Trying to do too much by sl4shd0rk · · Score: 1

      > trying to do too much with a "browser"

      I would be interested in your success with compiling insert_your_browser_here.

      Memory requirements for the compilation process is not necessarily indicative of the resulting binary size or memory usage. Sometimes compilers include optimizations which stress the resources on the host system (I've actually discovered bad ram this way).

      Sure firefox is bloaty but I'll take a little bloat over the other locked-up alternatives. At least I can verify whether "carrierIQ" or similar ilk has not been surreptitiously compiled into my web browser. Besides, who's running windows with 3G anymore? I thought SP3 fixed that.

      --
      Join the Slashcott! Feb 10 thru Feb 17!
    61. Re:Trying to do too much by nurb432 · · Score: 1

      That's why I think that the parent poster's implication that it's due to Firefox becoming "bloated" is basically hogwash. Browsers are more complex than they were in the mid-90s. That's what happens when you add 10+ years of new formats and technologies that must be supported for a browser to be considered "usable". Directing one's ire at Firefox is unwarranted, IMHO

      It is sad that FF has to 'keep up' in the first place. Bloat of everything is way out of control. We need to simplify things. Badly.

      --
      ---- Booth was a patriot ----
    62. Re:Trying to do too much by Murdoch5 · · Score: 1

      haha Nice!

    63. Re:Trying to do too much by Z00L00K · · Score: 1

      Swap to Opera if you want something that's relatively lean and still competent.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    64. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Talk about a brainless argument. Browsers these days are very complex, which among other things include a JIT compiler in of itself. To compare "hello world" with something this large and complex is to scream you have absolutely no clue what the hell you are talking about. Basically it boils down to large, complex applications are large and complex. If this is the least bit surprising to you, give up your geek credentials. And in your specific case, the fact you made this comparison is a very clear indicator you never even had geek credentials. Likewise for those who dimly and erroneously modded you up. Period.

    65. Re:Trying to do too much by Anonymous Coward · · Score: 0

      I think I have just what you're looking for: http://en.wikipedia.org/wiki/Lynx_(web_browser)/ ;-P

    66. Re:Trying to do too much by mackil · · Score: 1

      You don't see a 'Hello world' program requiring a 3GB+ build footprint do you?

      Some come close though...

    67. Re:Trying to do too much by gbjbaanb · · Score: 1

      to take the last part only:

      imagine the history function is a method that's called. Does it really need PGO to speed up a function call? Or even if the display routines store up all links in a page then send them to a history function which returns all the ones that have been visited to be re-coloured after the final display is calculated, really does that need PGO? If one takes .25 seconds to run, would any call optimisation really shave any meaningful time off that number? The history module would still be optimised within itself after all, and just because the code is in a module doesn't mean it would have to manage the history data totally separately at runtime.

      That's what I'm talking about here, and it could well be that the rendering engine is so huge it screws the optimiser by itself, it doesn't mean that a large majority of the non-critical-path codebase could be modularised, ie all the stuff surrounding the page rendering.

      Of course, if such a small modification does make a large performance hit, then you have to wonder what the code paths are like. A certain amount of simplifying might make a much larger difference in such a case.

    68. Re:Trying to do too much by Arancaytar · · Score: 1

      It probably wouldn't be infeasible to emulate Emacs in a Firefox addon, either.

    69. Re:Trying to do too much by syousef · · Score: 1

      Thank you sir.

      --
      These posts express my own personal views, not those of my employer
    70. Re:Trying to do too much by BZ · · Score: 2

      > Does it really need PGO to speed up a function call?

      Depends on how often it has to be called. PGO can in fact speed up function calls (e.g. by inlining; MSVC with PGO will inline virtual methods in many cases).

      > Or even if the display routines store up all links in a
      > page then send them to a history function which
      > returns all the ones that have been visited

      That doesn't work for handling dynamic style changes (which includes style recomputation on any mutation to the DOM). It might be OK for completely static pages, but those are very rare on the web today.

      > Of course, if such a small modification does make
      > a large performance hit, then you have to wonder
      > what the code paths are like.

      You don't have to wonder. The consistent thing with any style system related code is that it will get run a _lot_, because the number of times it's run is O(number of nodes * number of mutations * number of selectors on the page). Those numbers are typically order of "thousands", "thousands", and "thousands" for normal pages, and all three end up in the tens to hundreds of thousands for complicated pages. Browsers do what they can to avoid running this code when possible, but even then it's still very hot code.

    71. Re:Trying to do too much by Anonymous Coward · · Score: 0

      They should drop the fast graphics and jits and video and audio support and all that jazz, right?

      Yes

    72. Re:Trying to do too much by Anonymous Coward · · Score: 0

      I'm Elvis. I use Elvis.

    73. Re:Trying to do too much by Anonymous Coward · · Score: 1

      Perhaps, but there does seem to be a trend of complaining about something that Firefox does, usually ending with "and that's why I use Chrome instead". The problem? Most of the time, Chrome does the exact same thing.

      So, this problem. Firefox's codebase is big and bloated, trying to do too much, and that's why it's having trouble linking. Except Chrome had the same problem, long before.

      Firefox is large (download size, disk space, code size, whatever). Chrome is actually larger. Firefox uses a lot of memory. So does Chrome (in fact, Chrome actually uses more memory than Firefox in certain situations). Firefox is slow on older systems, or systems without a lot of memory. Guess what? So's Chrome. There are new versions of Firefox released too often, which is a release schedule they copied from Chrome. People don't like the Firefox 4+ UI which, basically, is the same as Chrome's.

      The only difference seems to be that Chrome does a better job of covering up some of it's faults, by making slightly different trade-offs. The memory usage is somewhat mitigated by having multiple processes, because it's easier to release memory back to the system when you're done with it, but that same multi-process architecture is also the reason Chrome can use much more memory than Firefox under certain situations. Chrome gets away with it's update schedule because they put a lot more effort into the auto-updater. They don't break extensions as often because their extension API is much less powerful than Firefox's original extension API, but it's roughly equivalent to Jetpack (Firefox's new extension API).

      All modern browsers are huge, complex pieces of software. They're trying to do a lot, on big, complicated web pages, and make it as fast as possible. That requires a lot of code, and it requires a lot of trade-offs. It has to be secure, it has to be fast, and it has to use a reasonable amount of memory. So, generally, they trade increased code complexity for security, speed, and memory usage. They all do this. The alternative is that you have a simple, elegant web browser that nobody uses, because it's a slow, insecure memory hog with no useful features.

    74. Re:Trying to do too much by bejiitas_wrath · · Score: 1

      I am using Internet Explorer 9 x64 to type this, on Windows 7 Ultimate. It has many cool features that Firefox is lacking, such as loading images in place on a web page when browsing with images off. Firefox can load an image in a new tab, but not load it in place. And the speed of IE9 is far greater than Firefox to load as well.

      --
      liberare massarum ex ignorantia, clausa descendit molestie.
    75. Re:Trying to do too much by SEE · · Score: 0

      The idea that Firefox's development has been driven by consumer demand at any point in the last year is utterly ridiculous.

    76. Re:Trying to do too much by danlip · · Score: 1

      Eight Megabytes And Constantly Swapping ... those were the days.

    77. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Fuck firefox, I'm switching back to Lynx.

    78. Re:Trying to do too much by cratermoon · · Score: 1
    79. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Chrome does have bookmark syncing built in though.
      http://support.google.com/chrome/bin/answer.py?hl=en&answer=165139

    80. Re:Trying to do too much by Anonymous Coward · · Score: 0

      Yeah... all browsers are trying to do too much. Welcome to HTML5, where we'll put everything in angle bracket tags including the kitchen sink.

    81. Re:Trying to do too much by GigaplexNZ · · Score: 1

      It's more an indication that compiler writers are taking advantage of the huge amount of memory available for optimization techniques that take a lot of RAM. This is actually a GOOD thing. The bad thing is if it takes RAM while it's running.

      There's a difference between "taking advantage" (using all available RAM) and requiring more (crashing when there's not an abundance).

    82. Re:Trying to do too much by GigaplexNZ · · Score: 1

      Firefox is more than just the rendering engine. The XUL user interface, plugin infrastructure etc are examples of Firefox code that has little to do with rendering web pages.

    83. Re:Trying to do too much by BZ · · Score: 2

      The XUL user interface is written in JS and XUL, not C++, so isn't part of the library in question to start with.

      The extension infrastructure is almost all written in JS, so isn't part of the library either.

    84. Re:Trying to do too much by minus9 · · Score: 1

      "I thought people on this site were supposed to know something about computers."

      I think "were" is the operative word here.

    85. Re:Trying to do too much by Anonymous Coward · · Score: 0

      The real Elvis uses butterflies.

    86. Re:Trying to do too much by unixisc · · Score: 1

      I know it does plenty of things, but it has a browser? Didn't see any reference to that in the O'Reilly books. Is that a text only browser like lincs?

    87. Re:Trying to do too much by AmiMoJo · · Score: 1

      Add fast scrolling to the list. In Firefox I have set it up so that if I hold down ctrl and use the mouse wheel scrolling is a screen at a time. In Chrome is zooms and there is no way of changing that, or even using a different key.

      You could try Google Reader for RSS feeds but it isn't as nice IMHO as Brief in Firefox.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    88. Re:Trying to do too much by theaceoffire · · Score: 1

      Try Google Reader. All the fun of live bookmarks, and they organize themselves based on time (Most recent, older, etc) and allow you to view "Only unread items". That was what made me upgrade from Live Bookmarks.

      --
      I steal signatures. This one used to be yours.
    89. Re:Trying to do too much by Anonymous Coward · · Score: 0

      As a user of Firefox I don't have to deal with such problems. But I think it has become much faster and more pleasant than before. I really prefer it over chrome at the moment.

      The tab groups feature is useful. I use firefox with enormous amounts of tabs open and in spite of that it manages to stay quite snappy. After longer usage, I find that chrome slows down more.

    90. Re:Trying to do too much by Tolkien · · Score: 1

      Ha, beautiful. :)

    91. Re:Trying to do too much by Grizzley9 · · Score: 1

      Huge difference is that you have to manage a whole other site and deal with numerous stories you don't care about. With a live bookmark, you see all the story titles and go straight to the one you want plus it's updated continuously. If you are browsing once a day or less, yeah that might be an option. If I'm hitting /. multiple times a day for current stories, it's much easier just to have the Live Bookmark in a pull down for the latest stories.

  3. The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 4, Funny

    E.g. where's the status bar in recent firefoxes?

    1. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1, Redundant

      It's a status tooltip instead. It pops up in one of the bottom corners, displaying the same info that would have been in the status bar in the past.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    2. Re:The code gets larger, and yet things dissapear! by cruff · · Score: 5, Informative

      I immediately added the Status-4-Evar addon to my Firefox installations, works great.

    3. Re:The code gets larger, and yet things dissapear! by webmistressrachel · · Score: 5, Insightful

      If Seamonkey adopt this silly fade-in fade-out floating toolbar-as-status-bar-replacement, that'll be the end of the Mozilla line for me. Seamonkey has always been the sensible browser for Netscape-heads from way back when since Mozilla Suite died a death and SeaMonkey came into being.

      --
      This tagline was transcoded to result in at least one smirk. If you experience failure to smirk, please consult your Gen
    4. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      Ctrl + /

    5. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1

      That's what's called the "add-on bar." It contains many things that were previously in the status bar, but not the actual status information.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    6. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 2

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      Honestly, I cannot fathom what is preferential about an always-open status bar. For me, the status bar was always of such situational use that the first thing I did on a new browser install was disable it. Having it auto-hide is a much better choice. It's there when you need it (which is to say, rarely), and not there when you don't (which is to say, most of the time). I guess if you really want to see a progress bar for the page load, but then I think everybody should do what Safari does and combine that with the address bar.

      (This isn't a dig at you or anyone who is upset by the lack of a persistent status bar. I am genuinely curious about why it's such a sticking point.)

      --
      If you can't convince them, convict them.
    7. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      Well, this isn't necessarily the fault of having the auto-hide statusbar, I can tell of instances where I don't like it.

      On my netbook (low screen real estate), if a webpage happens to have a link right at the very bottom of the page when the mouse cursor goes over the link, the status bar pops up blocking the link. The mouse isn't on the link anymore so the status bar goes away and the mouse is now on top of the link again so the status bar pops up...and rinse and repeat.

      So I either have to tab to the link or full screen the browser to give a fraction more space underneath the link so the status bar doesn't interfere again.

    8. Re:The code gets larger, and yet things dissapear! by couchslug · · Score: 1

      "E.g. where's the status bar in recent firefoxes?"

      It's wrong to want things which FF developers deign not to give you. 8-P

      --
      "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
    9. Re:The code gets larger, and yet things dissapear! by Merk42 · · Score: 1

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      IE (9+) and Safari don't show a status bar either, so I guess he'll use Opera?

    10. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      Who gives a fuck? Netbooks have limited vertical resolution. Now I don't have to use autohidestatusbar extension.

    11. Re:The code gets larger, and yet things dissapear! by Skapare · · Score: 1

      You can never really understand why, just like I cannot understand why people like you want it to just pop or fade in an out all the time. It's just different preferences by different people. Live with a diverse world since you are stuck with it (short of aliens coming to your rescue ... or ours).

      --
      now we need to go OSS in diesel cars
    12. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 1

      I'm usually pretty good at understanding differing points of view. It's just that in this case, nobody has provided what I deem a satisfactory example of how a popover doesn't accomplish the same task as a permanent status bar. Is it distracting? I could understand that, if that's the case (though I personally don't even notice it).

      --
      If you can't convince them, convict them.
    13. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      Is it distracting? I could understand that, if that's the case (though I personally don't even notice it).

      Yes. I am very terrible at dealing with distractions, while working, and the fewer of them there are, the easier time I will have working. Having bits of the UI floating/fading/whatever while I move the cursor on the window is distracting. I could try to ignore most of it, but that requires more effort on my part. I would rather have a UI that remains static until I click something.

      It's not about being resistant to change or anything. It's just about having less flashy bits killing my attention to my work.

    14. Re:The code gets larger, and yet things dissapear! by hldn · · Score: 1

      and most people can come up with a reason for having a preference instead of just saying it's their preference.

      --
      http://www.accountkiller.com/removal-requested
    15. Re:The code gets larger, and yet things dissapear! by marcosdumay · · Score: 1

      It pops above floats (while the status bar was out of the document area), and doesn't carry the same information once you install some of the thousands of plugins that used it.

    16. Re:The code gets larger, and yet things dissapear! by icebrain · · Score: 2

      My biggest use for the status bar is for verifying where links want to send me to (I don't allow sites to change the status text). It also helps me avoid opening blank tabs when I middle-click on links that turn out to have used javascript instead of a plain old URL (I mean, seariously, people... why the hell do you need f'ing javascript to make a simple link?) Taking that away entirely is a bad move from a security standpoint.

      Popovers are distracting and sometimes require delays to be visible. The status bar stays in one place and responds instantly.

      --
      The meek may inherit the earth, but the strong shall take the stars.
    17. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      It shows you the exact address of links you pop over, to show you where it truly goes.

      Page load status, other information that was actually useful on a constant basis.

      All of these changes came about from the horrific layout of widescreen and portable devices, it's infecting everything in UI's these days.

    18. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 2

      The plugins that used to display info on the status bar now show it on the addon bar instead.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    19. Re:The code gets larger, and yet things dissapear! by ceoyoyo · · Score: 4, Interesting

      The other day a coworker walked in to ask me what I use as my browser. I said Safari. He asked why not Chrome. I told him I had Chrome installed, and used it occasionally. I couldn't remember exactly why I prefer Safari, so I started both of them up. Safari was done launching in a couple of seconds, almost before I had time to click on Chrome. We continued our discussion of why I don't use Chrome while waiting for it to launch.

      Checking the .app size... Safari is 35 MB, Chrome is about a quarter of a gig.

    20. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 2

      What's interesting is Chrome used to be stupid fast at startup on a Mac. The dock icon wouldn't even bounce, it was so quick. But now it takes a couple bounces, even on my new Air. Safari is definitely the better choice on a Mac, but I do fall back to Chrome every now and then (sometimes I have issues streaming Nextflix in Safari, and I don't have that problem with Chrome).

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS. Maybe that's (part of) why it's so much smaller than Chrome.

      --
      If you can't convince them, convict them.
    21. Re:The code gets larger, and yet things dissapear! by unrtst · · Score: 2

      Disclaimer: I haven't used the build that lacks the status bar yet, so I'm not familiar with how it looks/works.

      I can say I do want to see it all the time. I understand the steps that a browser goes through to get and render a page, and I greatly appreciate seeing what it's working on. Is it a DNS lookup, or is it transferring data (possibly a large chunk)? And also seeing the source (ex. when loading slashdot, I see the steps that are getting ads, which is often the slowest part of the transaction but, thankfully, happens after the page content has arrived and is rendering... so I know I can ignore the fact that the page hasn't finished loading if it's just getting ads now).

      I also have a complex DNS setup at home, so seeing when that is hanging helps a lot. (I forward DNS queries for several domains to one of several servers at work over multiple VPNs... they're non-standard (host.name.companyname without any .com etc), and the company consists of about 100 subsidiaries that have been bought up and barely merged over the years, and almost all of them have their own name server and/or AD system. Most users work in an office for one of the subsidiaries, so they just use that one local DNS server that's handed to them via DHCP. On the other hand, I'm a developer that works from home, so I have to use them all, and I also don't want my personal use queries hitting their servers, since this is also my personal computer).

      I dislike the way Chromes status bar works because it's too distracting. Our eyes pick up peripheral movement very very well, so that popover always grabs my eyes for an instant. It's annoying. I prefer a fixed bar, because I can then choose to look at it when I want, and the info is always readily available if I want to see it. The black text changing on a grey background does not cause as harsh of a visual change, so my eyes don't instantly pop there when it changes, and that's a good thing (IMO).

    22. Re:The code gets larger, and yet things dissapear! by PenquinCoder · · Score: 1

      There are more browsers than FF, Chrome, and IE.

    23. Re:The code gets larger, and yet things dissapear! by Rizimar · · Score: 1

      What's disappearing even faster is their user base.

    24. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      the thing that i hate about the status bar is that it's implemented in a terrible way: if i try to click on a link that's in the lower left of the window, then the status bar comes up. except that mousing over the status bar makes it disappear. which leaves my mouse over the link i tried to click initially. which makes the status bar appear... the result is that the status bar flickers in and out rapidly, and i can't actually click on the link until i scroll. plus, on occasion, the whole situation occasionally causes FF to just lock up for a few seconds while it tries to sort out what the hell it's actually doing.

      i got used to the status bar, and rather liked having it there, but i understand the logic behind saying "less chrome = more better". what i don't understand is how they failed to account for this situation, and managed to release such a frustrating experience into the field. would it have been that hard to make the status bar switch sides if it would display over the link i'm activating?

    25. Re:The code gets larger, and yet things dissapear! by Fred+Or+Alive · · Score: 1

      You can switch back to an old style status bar on IE9. (Other stuff like the menu bar can be switched back on as well, should you want to replicate most of IE's traditional cluttered interface).

      Personally, the status bar thing in Firefox 4 confused me, don't like the single menu button? Switch back to a menu bar. Don't like the new tab position? Just switch it back to the old style. But want the old status bar back? No way, it's our way or the highway (well, a third party extension).

      --
      10 PRINT "LOOK AROUND YOU ";
      20 GOTO 10
    26. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      Opera still has a proper status bar, and the UI can be customized *much* better than Chrome or (as a non-FireFox user) FireFox.

      Also, it's only a 15MB download, so that has to say something about the source code.

    27. Re:The code gets larger, and yet things dissapear! by Gr8Apes · · Score: 1

      Safari most definitely will show a status bar.

      --
      The cesspool just got a check and balance.
    28. Re:The code gets larger, and yet things dissapear! by Gr8Apes · · Score: 1

      because popups don't occur with all sites. And the status bar is quicker, it also gives, surprisingly, status when a page is loading, without having to resort to opening up another window to see the current status.

      Additionally - the status bar, AFAIK, cannot be jacked with by JS, while the popup can. Never trust any JS driven information unquestionably.

      --
      The cesspool just got a check and balance.
    29. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      I think everybody should do what Safari does and combine that with the address bar.

      No, no, no, no, and no once more. The address bar is for, just that, the URL. Once you start trying to make the address bar do anything but display the current, and full, URL, you start going the way of Vista/7 and can't tell heads or tails of what side of the FS you're on...

    30. Re:The code gets larger, and yet things dissapear! by tibit · · Score: 1

      Safari, on OS X at least, shows progress bar as the background of the address line edit. It has no status bar, and I don't miss it. It's pointless. Knowing what the browser is doing is pretty much useless. It won't help you if you have a crappy connection. I used to think it was helpful, then I switched to a mac. It's a waste of precious screen real estate. It won't fix your connection for you. If you're tired of waiting, either hit reload or browse elsewhere. This won't depend on whatever the status bar would be showing. You don't have many options. Heck, you have two.

      --
      A successful API design takes a mixture of software design and pedagogy.
    31. Re:The code gets larger, and yet things dissapear! by bonch · · Score: 1

      Ladies and gentleman, I present to you an example of Early Onset Crotchety Syndrome (EOCS). Symptoms of EOCS include getting angry about stupid crap and ranting about things that don't matter, like having a floating toolbar instead of a permanent status bar that's empty most of the time.

      If you or someone you know suffers from EOCS, please, make them go outside for a while.

    32. Re:The code gets larger, and yet things dissapear! by DarkTempes · · Score: 1

      First, people don't like change. When they get used to things working one way and then suddenly it doesn't work according to their expectations they get upset.

      This can in fact be made an even broader generalization: people don't like when their expectations are not met.
      So they don't really need a logical reason for preferring an always-open status bar.

      And the status bar is legitimately important to some of us (but does not need to always be visible).
      Knowing what you're clicking on before you actually click it is important information. Well, assuming javascript hasn't changed the status/you have your browser set to not allow javascript to change the status.
      Knowing what your browser is doing/actively loading is also very useful information. Without a status bar I'd have to pull up something like the Firebug net panel.

    33. Re:The code gets larger, and yet things dissapear! by Robert+Zenz · · Score: 1

      So, checking it under Views-Toolbars did not work?

    34. Re:The code gets larger, and yet things dissapear! by LordLimecat · · Score: 1

      I would hazard that that might be for the same reason IE tends to have lower memory than competitors on Windows, but regardless, safari is NOT so good on windows-- the tables are pretty much reversed, with Safari-on-Win being a bloated, unresponsive beast.

    35. Re:The code gets larger, and yet things dissapear! by novakreo · · Score: 1

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      Opera.

      --
      O frabjous day! Callooh! Callay!
    36. Re:The code gets larger, and yet things dissapear! by rapidreload · · Score: 1

      So, checking it under Views-Toolbars did not work?

      There is no native status bar toolbar anymore. There's the "Add-on bar", which addons can use if they want (such as Status-4-Evar), but without said extension the add-on bar is just a horizontal bar of nothing.

      --
      To all newcomers - people here are very close-minded and can't handle complaints about Linux. Keep this in mind.
    37. Re:The code gets larger, and yet things dissapear! by inject_hotmail.com · · Score: 1

      Personally, and I think this applies to anyone that has a real understanding of how the Internet works, I really...I mean REALLY...like status bars...because...well...it's an instant indication as to what is happening. Not so much needed when everything is running perfectly, but when something isn't right...which is more often than one might surmise is reasonable. Ok, so, to get to the heart of the matter, while a page is loading, or has loaded, if an error occurs, and you don't have a status bar, you'll never know. So, if some element, graphic, or other potentially important feature, isn't loaded, is taking a while to load/access, the status bar will declare an error or indicate the delay...and I will know instantly. I can hit refresh, or determine a course of action resulting in zero wasted time. If I don't have a status bar, and an error occurs, I'll...uhh...wait? (I haaaaate waiting)...or maybe I'll go digging through some menus somewhere to find out...what I could have know in less than 500ms. Move my eyes down, OH, there...it says...an error. Or no error. I can proceed without wasting my time. A 1/4" of persistent space lost is very, very much worth it to me.

      Moving on, combining the progress meter with the URL bar...fine, but that's not a status replacement. Progress is one element of status. A pop-up window for status? Uhhh...naw, I strongly dislike pop-ups of ALL kinds (well, there is one that has its uses, but that's another topic, don't get me distracted)...morphing status bars, those are fine...display the information I need, and that's the end of it. Thanks. Enough said, Mr. Status Bar.

      As for the progress bars prevalent in Vista/7/(OSX?) that tell the user NOTHING about how things are actually progressing...I spit on you, and cast a pox upon your houses. I hate you. You are a progress bar. Your sole purpose in life is to tell me how things are going, and when they are not. You don't do that anymore. So, why are you here? Marquee progress bar: Die! You should have been aborted before you were born for all the times us users think we are almost done a process, and WAIT, WTF IS THIS, the progress is emptying from the left...what the hell?! And now it's starting over again! (Seriously, the programmer knows what he has, where he is, and where he is going...TELL ME already! [or she...I'm not trying to be sexist here]). All you do is prove my console has not become unresponsive...THANKS, but my mouse cursor does that too...and so does my NumLock key/light. I don't need you.

      (Sorry, I don't get out that much)

    38. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS. Maybe that's (part of) why it's so much smaller than Chrome.

      http://nightly.webkit.org/

      OSX 34.3MiB
      Win 34.5MiB
      only ~200KiB difference.

    39. Re:The code gets larger, and yet things dissapear! by vasi · · Score: 3, Informative

      Chrome has to ship its version of WebKit in the .app, while Safari puts its WebKit in /System . Comparing .app sizes is a rather unfair comparison.

      --
      "Hey, who took the cork off my lunch?" -- W. C. Fields
    40. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      WTF?!
      On windows chrome just goes BAM! after I double click. You wouldn't get a word in before it loads. Even on an older Core 2 duo, 2GB DDR2 machine.

      So, on Mac the fastest browser (safari) opens in a few seconds? Screw that.

    41. Re:The code gets larger, and yet things dissapear! by chrb · · Score: 1

      Are you sure? The standalone 64-bit Chrome Linux Ubuntu/Debian .deb is only 24MB. The archive unpacks to 92MB with a 61MB chrome binary. I would be surprised if the OS/X version were so bloated that it was almost 300% bigger.

    42. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      It's still their, they just renamed it to the addon bar.

    43. Re:The code gets larger, and yet things dissapear! by Ptur · · Score: 1

      On this old and slow XP system here at work chrome starts up in mere seconds (5), so either there is something wrong with your machine, or your OS....

    44. Re:The code gets larger, and yet things dissapear! by xenobyte · · Score: 1

      The plugins that used to display info on the status bar now show it on the addon bar instead.

      So now you have the addon bar instead of the status bar if you want a place for your other addons to display their info/status... and the status information previously displayed in the status bar now pops up in addition to the addon bar... Stupid!

      Installing the status-4-evar addon fixes it and moves the status messages back onto the addon bar effectively turning it into the good old status bar. I couldn't live without it now.

      It does have an annoying bug though... If it gets disabled (like when FF changes major version but the addon author is a bit behind) the addon bar reverts to being just an addon bar without a place to put status messages (they don't revert to popping up, they just go missing) and the flexible space that kept the icons right aligned is gone as well, leaving them left aligned which looks strange and annoying.

      In order to fix it you need either to bump the max version of the status-4-evar addon (like I did) or to revert FF to the previous version in which status-4-evar worked, go into status-4-evar's settings and switch the status messages back to popup and then re-upgrade FF. You also need to re-add the flexible space because a working status-4-evar will not re-add it automatically, leaving both the icons and the status messages left aligned so the icons jump right whenever there's a status message to display, and back left when it goes away, which is completely awful.

      --
      "For every complex problem, there is a solution that is simple, neat, and wrong." -- H.L. Mencken (1880-1956) --
    45. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1

      You can use the compatibility reporter addon to force addons to work through version changes.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    46. Re:The code gets larger, and yet things dissapear! by AmiMoJo · · Score: 1

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS.

      Sounds like an anti-trust issue. Prepare for the Mac OS Browser Choice screen in a future update.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    47. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      > I cannot fathom what is preferential about an always-open status bar

      One thing: it never obscures content. Countless times I had the result of the "find" function obscured by the address of the link (when the found text is a link). It's been like this since FF 4 :-(

    48. Re:The code gets larger, and yet things dissapear! by NJRoadfan · · Score: 1

      Maybe it'll be back in Firefox 18, which at this rate should be out in 2 weeks.

    49. Re:The code gets larger, and yet things dissapear! by StuffMaster · · Score: 1

      Fortunately, if they do, there's Status-4-Evar to bring it back. Now if only there was a way to bring back the modal search dialog....I really hate the new search bar.

    50. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 0

      that's because most of Safari is integrated into MacOS X. Only the last little bit needs to be loaded.

    51. Re:The code gets larger, and yet things dissapear! by ceoyoyo · · Score: 1

      Yup. Strange it's so much bigger. Maybe google just wants to keep up with Firefox in the crappiness of their OS X port.

    52. Re:The code gets larger, and yet things dissapear! by badkarmadayaccount · · Score: 1

      Ctrl+/ is too much? Frankly I'm happy for the vertical space. What I want is a more aggressive GC.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  4. interaction of two things by Trepidity · · Score: 5, Informative

    Size of the Firefox codebase is one factor of course, but the amount of RAM needed by Visual Studio to compile code with all optimizations turned on (especially PGO, which is extra RAM-intensive at the compilation stage) is also a major factor. Notice that this only happens in the 32-bit Visual Studio builds specifically.

    1. Re:interaction of two things by Anonymous Coward · · Score: 0

      Whew, thanks for explaining that. I was worried I'd need to be offline for a week while I re-emerge FF on my 32-bit Gentoo box. ;)

    2. Re:interaction of two things by Anonymous Coward · · Score: 0

      don't confuse visual studio with the microsoft compiler suite.

    3. Re:interaction of two things by LanceUppercut · · Score: 3, Informative

      That's just doesn't make any sense. The amount of RAM is not a factor at all. The problem at hand is caused by the amount of _address_ _space_ required, not the amount of RAM. That's a completely different issue. I hope you understand the difference between the RAM and the address space. And the culprit is not VS or Microsoft compiler. The culprit is the rampant massive-scale global namespace pollution, which has been taking place in FF source code for quite a while. Someone was indulging recklessly in Linus-Torvalds-style coding practices. The result is perfectly logical.

    4. Re:interaction of two things by Anonymous Coward · · Score: 0

      you are confused with visual studio and c++ compiler. Visual studio is all 32bit, at least up to 2010. You can choose to use 64bit c++ compiler on 64bit OS. You Visual studio is still 32bit regardless the OS.

    5. Re:interaction of two things by 3p1ph4ny · · Score: 4, Informative

      Sure, except that (especially in C++ code with templates) VS uses FAR less memory than the GNU toolchain when compiling the same code. This isn't a VS problem, it's a Firefox problem.

    6. Re:interaction of two things by shutdown+-p+now · · Score: 1

      Why would global namespace pollution affect the amount of memory required by the compiler, at all? Even if you stuff all your identifiers into namespaces, you still have the same number of identifiers (and then a few more for the namespaces). Same amount of code, too.

    7. Re:interaction of two things by tibit · · Score: 1

      The namespace size is irrelevant to how much virtual memory the linker needs. The Visual Studio linker needs to have address space for two things:

      1. Mapping of all the files it uses.
      2. The internal state used by the compiler backend (LTCG -- link time code generation) and the linker proper.

      With LTCG enabled, object files do not contain assembly, they contain compiler IR (intermediate representation) of the code. The stuff you get after parsing and IR optimizations, before code generation.

      If the linker bombs out on a 32 bit host, it's usually because the input files don't fit into available address space, that's all. The input files contain the IR for all of the code you're linking. They're much bigger (factor of 4 and up, in my limited experience) than the binary object files that contain "just" machine code. You have the same problem when you compile Qt with webkit. You need to use the /3g switch and keep your fingers crossed, or bite the fine bullet and do it on a 64 bit host.

      --
      A successful API design takes a mixture of software design and pedagogy.
    8. Re:interaction of two things by tibit · · Score: 3, Interesting

      Nope. It is the MS linker problem. It's not about memory usage, it's about stupidly memmapping ALL of the input files during startup. So it's very simple to check if you may have a problem: add up the size of all the .obj files. If it's above 1-1.5G or so, it won't fit as linker needs address space for its own transient data and you need to boot with the /3g switch. If it's above 2G or so, then even the /3g switch won't help you -- you need a 64 bit host.

      --
      A successful API design takes a mixture of software design and pedagogy.
    9. Re:interaction of two things by Anonymous Coward · · Score: 1

      Err... no?

      First, this isn't about compiling. It's about linking. For compiling, memory usage just doesn't matter. With GCC, each translation unit is a separate process anyway, and with MSVC, it's still only going to be compiling a few translation units at a time, and dumping the used memory when they're finished.

      The problem is linking and using whole-program optimizations, and profile-guided optimizations. That needs to load the entire program into memory all at once, and analyze it, so it can be more effectively optimized. They do this because it does improve runtime performance quite a lot.

      Second, this is very much a problem with Microsoft's toolchain.

      On Linux, Firefox is built on a 64-bit host, using a 64-bit toolchain, and producing a 32-bit binary. On Mac OS X, Firefox is built using a 64-bit host, a 64-bit toolchain, and produces a 32-bit and 64-bit fat binary. They both use link-time optimizations and profile guided optimizations and, even though GCC may use more memory than Microsoft's compiler, it still works because you have a 64-bit address space, and can just throw more RAM into the machine if you need it.

      With VS, you can't do that. There is a 32-bit and a 64-bit version of the toolchain. The 32-bit toolchain can generate either 32-bit or 64-bit code, but the 64-bit toolchain can only generate 64-bit code. So, if you want a 32-bit binary, you must use the 32-bit version of the toolchain. On a sufficiently large program, you'll run out of address space. Firefox is built on 32-bit hosts with a 3GB / 1GB user / kernel split (giving the compiler 3GB of address space), while Chrome is built on a 64-bit host, giving the compiler 4GB of address space.

      So, that is very much a problem with Microsoft's toolchain. No such problems compiling a 64-bit version on a 64-bit host, of course.

      However, VS 2010 will build Firefox just fine, even on a 32-bit host. Microsoft improved the memory usage of whole-program optimization. Firefox hasn't moved to VS 2010 because... something. I don't know. Maybe they need to target older versions of Windows than VS 2010 will allow. This might be incentive enough to upgrade the build farm to VS 2010.

      Besides, Chrome hit this limitation as well. Years ago.

      OK, so this limitation is arguably an edge case. It only affects very large programs that use PGO. Web browsers are the only things that immediately come to mind, although games are probably getting pretty close. Modern games can have main executables that are much larger than Firefox's XUL DLL. 30MB isn't unheard of. It wouldn't surprise me if game developers tried to use PGO and WPO, but found that it crashed the compiler, so turned it off again. We'd just never hear about it, because we don't have access to their internal discussions.

    10. Re:interaction of two things by Anonymous Coward · · Score: 0

      Same guy again...

      Visual Studio 2010's compilers:

      http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx

      There's a native x86 compiler, but no x64-hosted x86 cross-compiler. That's the problem, basically.

      Yes, Firefox is huge, but not that huge - the component in question (xul.dll) is only 15MB. Chrome's main component (chrome.dll) is 27MB. Webkit by itself is about 10MB. Mass Effect is 20MB.

    11. Re:interaction of two things by Anonymous Coward · · Score: 0

      It is especially a problem with Firefox code base

      1. Not being modular enough
      2. Not using modern open source libraries as dlls (the useless nspr binary build with extras)
      3. Not being mingw/clang friendly on windows.

      On the contrary Chromium (using mulder's updater)

      1. Is modular enough
      2. Uses modern open source libraries as dlls
      3. Is mingw/clang friendly on windows.

      They could both switch to mingw and modern C++ features (I do not mean Cx11).

  5. whose bloat by CSMoran · · Score: 0, Troll

    I think it speaks volumes about the bloat of VS2005 more than about the bloat of FF.

    --
    Every end has half a stick.
    1. Re:whose bloat by Anonymous Coward · · Score: 3, Insightful

      No, no it doesn't, but I'm impressed, turning this against MS instead of complaining about the real culprit, kudos.

    2. Re:whose bloat by EvanED · · Score: 5, Informative

      Speaking of someone who regularly does large C++ builds, MSVS is nowhere near a bad culprit here. The linker is essentially doing code generation -- link time optimization. Why? Because LTO gives a substantial performance benefit. The profile-guided optimization mentioned in the summary gets them about 10% over even doing non-profile-guided LTO.

      One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?

      (Takeaway: broadly speaking, MSVS is actually very competitive, at least compared with GCC, when comparing similar settings.)

    3. Re:whose bloat by tepples · · Score: 5, Interesting

      You're right. As anyone who's read C++ FQA by Yossi Kreinin might guess, C++ itself could be one of the culprits.

    4. Re:whose bloat by kikito · · Score: 2

      "One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?"

      emm ... those single project files?

    5. Re:whose bloat by ohnocitizen · · Score: 5, Funny

      I don't know if the blame is so easy to place. It is kind of like watching one fat guy explain to another why they can't sit on the same bench.

    6. Re:whose bloat by luserSPAZ · · Score: 2, Interesting

      Yes, but you can get a 32->64 cross-GCC toolchain easily. You can't get one of those from Microsoft, so you're stuck with a maximum of 4GB of address space if you run the 32-bit toolchain on a 64-bit Windows system.

    7. Re:whose bloat by Talderas · · Score: 5, Funny

      Can we turn this into a competitive sport? Please?

      --
      "Lack of speed can be overcome. In the worst case by patience." --Znork
    8. Re:whose bloat by EvanED · · Score: 3, Insightful

      Templates out the wazoo. Don't blame me, I didn't design it. (Or write most of it; I'm only tangentially related nowadays.)

      Point being, there are features which, while valuable, are costly. I blame our source, our fondness of templates, and the compilation consequences that templates almost necessitate way more than I blame GCC for having a poor implementation of templates.

      But similarly, going "stupid bloaty MSVC, it shouldn't support this feature which can give double-digit percentage speedup because it takes a lot of memory" is stupid. LTO is costly -- period. It's just very worth it.

    9. Re:whose bloat by EvanED · · Score: 1

      I agree with that, and I don't want to dispute that particular benefit of GCC (or more broadly, open source).

      But saying "I should have a 64->32 linker so that it can use more than 4 GB of memory" is a lot different from saying "MSVC is bloated if linking takes 4 GB". :-)

    10. Re:whose bloat by jlebar · · Score: 1

      One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?

      I believe it, but at least you can run GCC as a 64-bit binary and compile 32-bit binaries. That's a heckuva lot better than the situation here with MSVC.

    11. Re:whose bloat by phorm · · Score: 1

      How big are the single files?

    12. Re:whose bloat by Anonymous Coward · · Score: 0

      Well, an election year is coming up. It's kind of the same thing no?

    13. Re:whose bloat by Anonymous Coward · · Score: 0

      It's a conspiracy! M$ detects the Firefox project and starts consuming RAM like crazy. That way, it slows down progress and gives Firefox a bad name!

    14. Re:whose bloat by EvanED · · Score: 1

      Interesting question. I'll get back to you.

      (They'll be large, but not tremendously large. The real problem arises because of a combination of the size and lots of template use.)

    15. Re:whose bloat by Anonymous Coward · · Score: 0

      how do you think sumo wrestling started?

    16. Re:whose bloat by CSMoran · · Score: 1

      Thanks, but that was not my intention at all -- I have nothing against Microsoft.

      It seems to me that seeing MS-bashing in every post looks like some kind of new ./ fad, I predict in time it might become more fashionable than MS-bashing here.

      --
      Every end has half a stick.
    17. Re:whose bloat by Aighearach · · Score: 1

      same result though, MS sucks, gcc wins.

      Praise Saint IGNUcius!

    18. Re:whose bloat by igomaniac · · Score: 1, Informative

      You're wrong, you can easily output 32-bit binaries with a 64-bit toolchain with MSVC - even from within the Visual Studio IDE if you set up the environment from the command line and then type "devenv /useenv". However you need to be running a 64-bit Windows which presumably the Firefox buildbots aren't.

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    19. Re:whose bloat by Anonymous Coward · · Score: 0

      Anything that can increase preformance while retaining stability belongs as a feature.

    20. Re:whose bloat by marcosdumay · · Score: 1

      No C++ is not one of the culprits.

      That is because this optimization happens on link time, and has no relation at all with the complexity of the compiler.

    21. Re:whose bloat by Anonymous Coward · · Score: 0

      What f-ing culprit? There's no culprit. This is about memory during building, not using. For f-'s sake, Chrome needs more and nobody f-ing complains...

    22. Re:whose bloat by BitZtream · · Score: 1

      You can't get one of those from Microsoft

      Uhm, yes you can. I do it all the time. Its been that way for years. Since at least VS2k5, I don't remember it in 2k3 though.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    23. Re:whose bloat by BitZtream · · Score: 1

      ...

      Which can also use a 64 bit compiler to compile 32 bit applications ...

      Its really fucked up that you think GCC is anything comparable to the MS compilers. GCC is basically the worst compiler on the planet that is known by more than 3 people.

      Intel's compiler is the cream of the crop, MS's is a comfortable second, GCC is a distant last as far as performance, code output and all around quality.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    24. Re:whose bloat by jlebar · · Score: 1

      Are you sure it's not invoking a 32-bit linker? Can you show me some output which convinces me that you're right?

    25. Re:whose bloat by roca · · Score: 2

      You can't. Microsoft simply doesn't offer a 64-bit linker that can produce 32-bit code.

    26. Re:whose bloat by Anonymous Coward · · Score: 0

      If by 'we' you mean 'Americans', then sure you can!

    27. Re:whose bloat by gbjbaanb · · Score: 1

      I suppose you could use a VM based language where the optimisation takes place at run time instead, but they're trying to do all that in one step where it affects the developer (who can take the need to have a super computer to build) rather than the user (who doesn't want to have a super computer to run it), or an interpreted language where you have to write a VM to run it to get any form of acceptable performance.

      Or you write it in something like C++ and complain that the optimiser tool uses too much memory itself (or that the developers didn't modularise it sufficiently)

      Either way, the FQA is a terrible rant with plenty of over-exaggerations, inconsistencies and 'bad things' that were obsoleted decades ago. Ignore it and hope it goes away, or read this for some rebuttals.

    28. Re:whose bloat by Murdoch5 · · Score: 1

      To branch out more, it's really complaining against using bulky languages and IDE's rather then good old C / Asm and a console window.

    29. Re:whose bloat by Anonymous Coward · · Score: 0

      The C++ FQA hurts my head. There may be some good points in there, but they're surrounded by raving lunacy.

    30. Re:whose bloat by shutdown+-p+now · · Score: 1

      When they speak of using VS2005 to build it, it effectively means Visual C++ 8.0 (the command line compiler). I mean, do you seriously think their build system actually launches VS and emulates pressing Ctrl+Shift+B?

    31. Re:whose bloat by shutdown+-p+now · · Score: 1

      You mean, there are people who read C++ FQA and actually take it seriously?

    32. Re:whose bloat by snemarch · · Score: 1

      No, it doesn't, it speaks about the amount of memory required when you try doing code optimization across an entire program image, instead sticking to optimizations inside translation unit boundaries.

      --
      Coffee-driven development.
    33. Re:whose bloat by jthill · · Score: 1

      That FQA betrays vast ignorance about not just C++ but actual computers. His very first complaint presumes you'll just naturally not know anything at all about the language, and just naturally not bother to learn anything about it either. Seriously, I am not making this up: even in C what he's complaining about isn't a problem for anyone who cares. Spot-checking says the pattern continues. I checked half a dozen pages, and every one was well larded with ignorance and cheap shots.

      --
      As always, all IMO. Insert "I think" everywhere grammatically possible.
    34. Re:whose bloat by Anonymous Coward · · Score: 0

      Where do you think the sport of Sumo originated from?

    35. Re:whose bloat by igomaniac · · Score: 1

      Here: http://msdn.microsoft.com/en-us/library/5wy54dk2(v=VS.80).aspx ... However it does not support link-time code generation when you're linking object files in a non-native format.

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    36. Re:whose bloat by Anonymous Coward · · Score: 0

      I don't see it in every post, just yours.

    37. Re:whose bloat by ohnocitizen · · Score: 1

      I too would pay obscene sums of cash to watch obese people play musical chairs. I don't think reality tv even needs an excuse anymore, we could float this in front of a producer and when they woke up from their orgasm induced concussion, they wouldn't be able to sign the appropriate papers fast enough. "Biggest Loser: Musical Chairs Dallas" - coming to a small screen near you.

    38. Re:whose bloat by spongman · · Score: 1

      Microsoft simply doesn't offer a 64-bit linker that can produce 32-bit code

      false.

      you can link x86 code using the 64-bit link.exe

      just use the 32-bit compiler to compile to .obj, then use the 64-bit linker (with the /machine:x86 switch) to link the .objs.

    39. Re:whose bloat by zippthorne · · Score: 1

      ... this feature which can give double-digit percentage speedup because it takes a lot of memory" is stupid. LTO is costly -- period. It's just very worth it.

      That's it?? That's kind of meh, when you think about it. "Speed up" shouldn't be measured in percents. It should be measured in decibels, to match the way users experience it.

      --
      Can you be Even More Awesome?!
    40. Re:whose bloat by CSMoran · · Score: 0

      Yes, I know what PGO is.
      Would you not agree that that amount of memory depends both on what is being linked and on how extravagant the linker is about its memory consumption?

      --
      Every end has half a stick.
    41. Re:whose bloat by luserSPAZ · · Score: 1

      This doesn't work with WPO/PGO, which makes it useless for the purposes of this post.

    42. Re:whose bloat by Anonymous Coward · · Score: 0

      It's only a better situation if the LTO code from gcc 64bit cross for 32bit cross is better than the code from msvc w/o LTO. If it isn't, then it isn't better at all. Have you measured?

      Oh, and it isn't better if the resulting code is buggier, or if you have to spend lots of time filing/fixing bugs in gcc (it's a good hobby project, have fun, but that's not the goal).

  6. Even the best of us suffer from software bloat by Anonymous Coward · · Score: 0

    Take a Zen approach Mozilla, less is more.

  7. Too big to link by Pope · · Score: 5, Funny

    Firefox devs requesting immediate RAM bailout.

    --
    It doesn't mean much now, it's built for the future.
    1. Re:Too big to link by TheGratefulNet · · Score: 5, Funny

      Occupy Swap Space, 2011!

      be there, or be nullified!

      --

      --
      "It is now safe to switch off your computer."
    2. Re:Too big to link by Khyber · · Score: 1

      That would make for a killer Reboot Episode, I think.

      Goddamnit I miss that show.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    3. Re:Too big to link by Randle_Revar · · Score: 1

      Watch out for the OOM killer

    4. Re:Too big to link by troff · · Score: 1

      There are so many concepts nowadays, which could be taught to our "oh, the poor kids, won't somebody teach them real IT concepts, we need more girls as IT students" children, through some clever presentation.

      We could Reboot or TRON so many things. I'd hoped the new TRON movie would try to be clever about things. The British SF magazine whose reviewer labelled the new movie's director as having no balls was right on the money, though - a closed system that hailed from the 1980s (and still ran, no less?). In an era with the Internet, Wi-Fi, virtual machines...

      Sigh.

  8. Well done by Anonymous Coward · · Score: 0, Flamebait

    There's something seriously wrong when a browser hits a 3GB linker limit.
    Imho, the only sane solution is to delete most of the code. It's been crap for years anyway.

    1. Re:Well done by Anonymous Coward · · Score: 2, Insightful

      There's something seriously wrong when a browser hits a 3GB linker limit.
      Imho, the only sane solution is to delete most of the code. It's been crap for years anyway.

      Did you ever try compiling Chromium before you made that statement?

  9. As a potential user... by Anonymous Coward · · Score: 0

    I don't want 90% of the drek Firefox is including. I don't know what most of it is. I want a browser that can run a page with a self-update script and not end up consuming 3gb or memory overnight. I'm trying out Comodo Dragon right now for that, it uses the annoying chome interface, but seems to avoid the rampant growth.

  10. Big deal by GameboyRMH · · Score: 5, Funny

    It takes 16GB to compile Android.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
    1. Re:Big deal by Anonymous Coward · · Score: 0

      Um, Android is an operating system. Firefox is a single application!

    2. Re:Big deal by Anonymous Coward · · Score: 0

      Andoid is an OS, Firefox is just a browser. You might as well compare apples with a car.

    3. Re:Big deal by kikito · · Score: 2

      "You might as well compare apples with a car."

      Not a great analogy. Apple might release a car one day.

    4. Re:Big deal by doconnor · · Score: 1

      There is nothing unusual about an application being bigger then the operating system it runs on.

      Back in the days DOS, most non-trivial applications where bigger then the OS.

    5. Re:Big deal by eexaa · · Score: 1

      Also please compare with chromium.

    6. Re:Big deal by geminidomino · · Score: 2

      Pretty sure the Prius has the Apple-fan car market buttoned up pretty well at this point.

    7. Re:Big deal by Crudely_Indecent · · Score: 1

      It takes 16GB to compile Android

      Android is an entire system, where Firefox is a single application.

      Next thing you'll realize is that cars take up more physical space than car stereos.

      --


      "Lame" - Galaxar
    8. Re:Big deal by GameboyRMH · · Score: 4, Interesting

      Looks like they're having similar problems:

      https://code.google.com/p/chromium/issues/detail?id=21932

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    9. Re:Big deal by Anomalyst · · Score: 1

      But you would have to wear an Apple approved turtleneck in order to drive it

      --
      There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
    10. Re:Big deal by GameboyRMH · · Score: 4, Informative

      Oh, also, it looks like he was trying to say that compiling Chromium with PGO would use at least 9GB of RAM but he hit Shift too early

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    11. Re:Big deal by kimvette · · Score: 1
      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    12. Re:Big deal by Cro+Magnon · · Score: 1

      That might have been true for DOS, but there's no excuse for ANYTHING to be better than Windows! Even Vista would almost run in 3GB.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    13. Re:Big deal by Chris+Mattern · · Score: 1

      Back in the days DOS, most non-trivial applications where bigger then the OS.

      MS-DOS wasn't an operating system; it didn't have hardly any of the functions that even back then were regarded as basic to an OS. MS-DOS was a program loader strapped to a command interpreter.

    14. Re:Big deal by Cro+Magnon · · Score: 2

      Argh, I meant BIGGER than Windows!

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    15. Re:Big deal by Chris+Mattern · · Score: 1

      Oh, and a crappy file system. You got that too.

    16. Re:Big deal by Derek+Pomery · · Score: 2

      Specifically, GameboyRMH here is referring to comment #10
      https://code.google.com/p/chromium/issues/detail?id=21932#c10

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    17. Re:Big deal by Aighearach · · Score: 1

      I switched to linux when Win3.11+win32s extensions quit being able to run common software. About `98. Most commercial games were much bigger than windows then, and things like autocad and photoshop were too.

    18. Re:Big deal by Anonymous Coward · · Score: 0

      Anything? I regularly run FEM simulations that take multiples of (Linux-running) nodes with 32 GBs of RAM and 24 CPUs. I haven't touched Windows in quite a few years, but if it needs more RAM than ANYTHING else, I'm heading straight for the local best-buy equivalent!

    19. Re:Big deal by Anonymous Coward · · Score: 0

      And it will only run on gasoline/electricity bought from an Apple store.

    20. Re:Big deal by ceoyoyo · · Score: 1

      Hm. So the browser runs under the OS, and the web app runs under the browser... we're screwed.

    21. Re:Big deal by BitZtream · · Score: 1

      No, not all Apple users are flaming fags.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    22. Re:Big deal by VisceralLogic · · Score: 1

      Pretty sure the Prius has the Apple-fan car market buttoned up pretty well at this point.

      No, because a lot of us Mac users appreciate aesthetics.

      --
      Stop! Dremel time!
    23. Re:Big deal by atisss · · Score: 1

      And the OS runs as webapp http://bellard.org/jslinux/

    24. Re:Big deal by Anonymous Coward · · Score: 0

      That's not a joke:
      From "http://www.tabletroms.com/index.php/2011/10/23/getting-ready-to-build-ics-from-android-source-code-heavy-duty-machines-required/":

      If you want to build Ice Cream Sandwich from AOSP(Android Open Source Project), these are the preliminary numbers that you should be looking at,

      6GB of download.
      25GB disk space to do a single build.
      80GB disk space to build all AOSP configs at the same time.
      16GB RAM recommended, more preferred, anything less will measurably benefit from using an SSD.
      5+ hours of CPU time for a single build, 25+ minutes of wall time, as measured on a workstation (dual-E5620 i.e. 2x quad-core 2.4GHz HT, with 24GB of RAM, no SSD).
      Never had I imagined that ICS would require such heavy-duty machines to build. Folks, its time to upgrade your machines !

  11. VS 2005? by Anonymous Coward · · Score: 1

    You're two major versions behind, that's the problem.

    It would build just fine in 2010.

    1. Re:VS 2005? by Tridus · · Score: 5, Insightful

      Seems ironic that the FF team is using stuff from seven years and two major versions ago while at the same time bemoaning that anybody might want to keep a version of Firefox for more then 6 weeks - especially enterprise users.

      Interesting how they don't practice what they preach.

      --
      -- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
    2. Re:VS 2005? by luserSPAZ · · Score: 2

      Nope, the issue is still present in Visual C++ 2010. We're planning on switching to that soon, but we either have to work around its lack of support for Windows 2000 / Windows XP pre-SP2, or declare those platforms (and a few million users) unsupported.

    3. Re:VS 2005? by ledow · · Score: 2

      What, exactly, would be wrong with just using gcc for all platforms, like an awful lot of projects do? What's VC++ doing for Firefox that can't be done any other way?

    4. Re:VS 2005? by pz · · Score: 4, Interesting

      I can't speak to Firefox specifically, but in my hands, for my project, VC++ produces code that is VASTLY superior to gcc. With gcc, I can often get significant speedup by hand-optimizing code; with VC++, my bog-simple code gets automatically optimized better than my most aggressive manual efforts. Like it or not, Microsoft has the currently best compiler.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    5. Re:VS 2005? by jlebar · · Score: 5, Informative

      Point taken.

      But FYI: We use VS2005 because it's the last version whose CRT supports Windows XP before SP2 and Windows 2000.

      We would love to upgrade, and are in fact devoting a lot of engineering time towards figuring out if we can upgrade while maintaining compatibility.

    6. Re:VS 2005? by Bacon+Bits · · Score: 1
      --
      The road to tyranny has always been paved with claims of necessity.
    7. Re:VS 2005? by trwww · · Score: 1

      Wild guess, but its probably because FF is built on the mozilla framework, which is used by at least several popular apps. For example I also use Mozilla Thunderbird and ActiveState Komodo every day.

    8. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule. So really they're only behind by one major version. Either way, regardless of which version of VS they use they'll still be dealing with a 4GB wall since Microsoft has never released a 64bit version. I don't think the Firefox team has much choice but to restructure their projects because they simply cannot move the goalposts far enough down field.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    9. Re:VS 2005? by ledow · · Score: 3, Interesting

      Then I find that more worrying than anything. The firefox code is literally so bad that not only do they have to do profile-guided optimisation but must have an optimal compiler with all the options turned up in order to get it to run like the stunned sloth that it does on my systems?

      It just reeks of horrendous code. Makes me wonder what the hell all those other large open-source projects are doing that's so much better than the Firefox code that they can outperform it using "only" the sub-optimal gcc.

    10. Re:VS 2005? by Anonymous Coward · · Score: 0

      What, exactly, would be wrong with just using gcc for all platforms, like an awful lot of projects do? What's VC++ doing for Firefox that can't be done any other way?

      A significant performance boost, that's what.

    11. Re:VS 2005? by DigitAl56K · · Score: 4, Informative

      One of the biggest problems with newer versions is the runtimes using EncodePointer/DecodePointer, which aren't available pre-SP2.

      Try this:
      * Install VS2010
      * In your project configuration(s), under Configuration Properties->General, set "Platform Toolset" to "v90".

      I can use this configuration with VS2010 and the latest Windows SDK and get binaries that work on XP pre-SP2.

    12. Re:VS 2005? by Anonymous Coward · · Score: 0

      Do you have any proof to back up your assertions? If VC++ does in fact produce code "that is VASTLY superior to gcc" then it will be very easy for you, or anyone else, to demonstrate that.

      Or are you just talking out of your ass?

    13. Re:VS 2005? by Anonymous Coward · · Score: 0

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense

      If you can't develop without intellisense, it is a reflection on your worthlessness as a developer, not the IDE. Intellisense is a benefit, it's not a necessity.

    14. Re:VS 2005? by Anonymous Coward · · Score: 1

      Except Microsoft already stopped supporting Windows 2000 and XP SP2 and all versions of XP will stop being supported in 2014.

      It's nice to support your product on deprecated platforms, but at some point, you have to cut your losses and a platform that is no longer supported by its owner seems a reasonable cut off.

    15. Re:VS 2005? by Anonymous Coward · · Score: 0

      Why not switch to using the Intel C/C++ compiler and linker?

    16. Re:VS 2005? by Anonymous Coward · · Score: 0

      I'm a reverser and I can vouch that recent gcc's optimized code is just as good if not better in most cases than microsoft's compiler. If you'd like to tell me I'm wrong, show me the code.

      You're an AC and you cannot vouch for squat. Why on earth would anyone believe otherwise, except to affirm their own preconceptions?

    17. Re:VS 2005? by Anonymous Coward · · Score: 0

      you missed the point. Windows XP pre sp2 is ancient anyway. Supporting windows that old is no longer necessary. We want those users to upgrade their OS for malware prevention.

    18. Re:VS 2005? by igomaniac · · Score: 1

      Are you dumb? ... You're using the VS2010 IDE to run the _exact same_ linker they are having problems with. How does that solve anything?

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    19. Re:VS 2005? by DigitAl56K · · Score: 1

      Are you dumb? ... You're using the VS2010 IDE to run the _exact same_ linker they are having problems with. How does that solve anything?

      It doesn't solve their linker issue. It potentially helps them work around a nasty CRT compatibility issue, which is the part of the thread I replied to.

      No need to be so condescending ;)

    20. Re:VS 2005? by igomaniac · · Score: 1

      Why can't you use the 64-bit toolchain from VS2005 to produce 32-bit binaries?

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    21. Re:VS 2005? by DeathFromSomewhere · · Score: 1

      Ummm what? I use VS 2010 fairly regularly for C++ development and intellisense is very much working. 64 bit versions of the compiler and linker do exist, they just can't target 32 bit.

      --
      -1 overrated isn't the same thing as "I disagree".
    22. Re:VS 2005? by Anonymous Coward · · Score: 0

      Like it or not, currently Microsoft has the best compiler.

      there... optimized that for you

    23. Re:VS 2005? by jlebar · · Score: 3, Informative

      I think what he was trying to say -- in the meanest possible way -- is that the setting you chose tells VS to use the old compiler and linker. It doesn't switch out the CRT -- it switches out the whole toolchain. So using that setting is no different from where we are now, afaik.

    24. Re:VS 2005? by jlebar · · Score: 1

      Because the 64-bit toolchain does not support producing 32-bit binaries. It is not a cross-compiler.

    25. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Sorry forgot the propensity for pedanticism... Intellisense for "managed" C++ and an x86-64 cross-compiler for x86-32.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    26. Re:VS 2005? by Anonymous Coward · · Score: 0

      Like it or not, Microsoft has the currently best compiler.

      I thought intel had the best compiler.

    27. Re:VS 2005? by igomaniac · · Score: 1

      You might want to look into the /Machine:X86 option to the 64-bit linker...

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    28. Re:VS 2005? by ceoyoyo · · Score: 2

      Ah, that's why Firefox is so slow but everyone insists it's not that bad. They're all Windows users!

    29. Re:VS 2005? by Bacon+Bits · · Score: 1

      What does an article about memory usage comparisons between FF and Google Chrome have to do with performance metrics of just Firefox running on Windows, Linux, and WINE under Linux?

      --
      The road to tyranny has always been paved with claims of necessity.
    30. Re:VS 2005? by BitZtream · · Score: 1

      Bullshit.

      Learn to use the linker. Link against the proper base import libraries and not the VS specific import libraries, you'll also stop making it such a fucking pain in the ass to link anything else with your code since you're forcing anyone else to also depend on a specific version of the runtime libraries.

      Link to MSVCRT.lib, NOT msvcrt80.lib, problem solved.

      You'd think for an organization that blows through like a 100 million dollars a year you'd have one developer with a clue on staff, but hey, its Netscape all over again isn't it?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    31. Re:VS 2005? by BitZtream · · Score: 1

      Intel has the best compiler, but its SO insane about optimizations that it ends up out of ordering things to the point that weird hard to understand bugs pop up out of the blue in your code if you switch to Intel's compiler from else where.

      With that said, MS is the best one for general use for the exact reasons you stated, couldn't agree more.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    32. Re:VS 2005? by jlebar · · Score: 1

      According to http://msdn.microsoft.com/en-us/library/x4d2c09s(v=VS.100).aspx , there's no x64 --> x86 cross-compiler.

      I have no idea what happens if I pass /MACHINE:X86, but I imagine it just invokes the 32-bit binary. If you can show that's not true, I know a large number of people who would give you a hug.

    33. Re:VS 2005? by RogerWilco · · Score: 1

      He he he. I was surprised about your second link, where Windows-Firefox on Wine outperforms Linux-Firefox, probably due to the better compiler. Nice test to think of.

      --
      RogerWilco the Adventurous Janitor
    34. Re:VS 2005? by jlebar · · Score: 1

      We binary patch the CRT in order to insert our own memory allocator. This complicates things greatly.

      But if you have a clue that we don't, we gladly accept patches.

    35. Re:VS 2005? by luserSPAZ · · Score: 1

      Uh, what? Visual C++ produces better optimized code than GCC in almost all cases, especially when you toss PGO into the mix. Firefox runs just fine on most people's systems. There are plenty of pathological cases on people's systems that make it perform poorly: poorly-written extensions, poorly-written antivirus software that hooks into our process, horrible disk fragmentation, etc. The list goes on and on, we've seen all of these things in bug reports from users experiencing poor performance. If you're experiencing poor performance, I'd encourage you to file a bug (you can even link the bug here, and we can take a look). Unless you're running on some ancient hardware it's possible there's a reasonable explanation for your situation that has nothing to do with the compiler we're using.

      Your last statement reads like a non-sequitur. What other large open-source project that's comparable to Firefox is producing Windows binaries with GCC that you can compare performance? Unless it's a web browser, comparing performance is like comparing apples and moon rocks.

    36. Re:VS 2005? by jlebar · · Score: 1

      Someone tried this (where test.obj is compiled with 32-bit cl.exe, since there's no 64 --> 32 cl.exe). Here's what we got:

      $ link -MACHINE:X86 -LTCG -OUT:test.exe test.obj
      Microsoft (R) Incremental Linker Version 9.00.30729.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      fatal error C1905: Front end and back end not compatible (must target same proce
      ssor).
      LINK : fatal error LNK1257: code generation failed

    37. Re:VS 2005? by maestroX · · Score: 1

      Try this:

      excellent :-)
      You also might consider using Cygwin.
      *ducks*

    38. Re:VS 2005? by luserSPAZ · · Score: 1

      I really wanted this to work, but it doesn't actually work in combination with PGO:

      (with the VC2008 32-bit compiler)
      $ cl -GL -Fotest.obj -c test.cpp
      Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
      Copyright (C) Microsoft Corporation. All rights reserved.

      test.cpp

      (with the VC2008 64-bit linker)
      $ link -MACHINE:X86 -LTCG -OUT:test.exe test.obj
      Microsoft (R) Incremental Linker Version 9.00.30729.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      fatal error C1905: Front end and back end not compatible (must target same proce
      ssor).
      LINK : fatal error LNK1257: code generation failed

    39. Re:VS 2005? by Anonymous Coward · · Score: 0

      Not to be 'silly' here but why not use one of the older SDKs? You can tell visual studio to not automatically link in the CRT from the current gen and use whatever .lib you like. You just need to reference the correct path to the lib. You can even make vs add it into your solution/makefile for you.

      http://msdn.microsoft.com/en-us/library/3tz4da4a%28v=VS.90%29.aspx

      VS2005/VS2008 has some serious problems with PGO. Such as producing huge unrolled code and thrashing your cache and producing . You can also use pragmas to selectively turn off PGO on bits of code. For example the configuration window probably doesnt need PGO... Or bits of code that are waiting on the internet to feed something back...

      Also in my experience PGO is not fire and forget. It is something you setup and tune.

      This seriously doesnt sound like a 'huge' engineering effort. Just getting someone in who knows how to setup visual studio projects properly. 2-3 weeks you probalby could be full out building demo projects with 2010. And remember 11 is coming (soon).

    40. Re:VS 2005? by luserSPAZ · · Score: 1

      We've looked into this, but the potential for incompatibilities between the CRT headers and the implementation is worrisome. It also hasn't been a real priority to this point because it wasn't a big deal to ship the VC8 CRT alongside Firefox. (And, in fact, until recently, it was pretty necessary because we were building a custom CRT from source so we could patch it to replace the default malloc.)

    41. Re:VS 2005? by snemarch · · Score: 1

      You can do it with relatively few modifications to the CRT source (stuff like leaving out Encode/DecodePointer), there's some hints at stack overflow.

      For Windows 2000 support, you'll need to manually hack ImageVersion flags in the PE, since for some fscktarded reason LINK.EXE refuses to set low enough versions.

      --
      Coffee-driven development.
    42. Re:VS 2005? by snemarch · · Score: 1

      VS2010 has fine intellisense for C++, it just doesn't have for C++/CLI. And while there aren't a 64bit DEVENV, the x64 compiler is a 64bit image. It cannot generate 32bit code, though, only x64.

      --
      Coffee-driven development.
    43. Re:VS 2005? by snemarch · · Score: 1

      Apart from not solving the problem :), doesn't it require having both VS2010 as well as the older VS installed?

      --
      Coffee-driven development.
    44. Re:VS 2005? by snemarch · · Score: 1

      Binary patch the CRT? Why don't you just recompile it from source?

      --
      Coffee-driven development.
    45. Re:VS 2005? by shutdown+-p+now · · Score: 1

      Because 64-bit toolchain in VS2005 can only generate code targeting amd64 and IA64. There's no 64-to-32 cross-compiler (there is only a 32-to-64 one).

    46. Re:VS 2005? by shutdown+-p+now · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule.

      You are considerably confused - VS2010 does have C++ Intellisense; indeed, it was the best in any C++ IDE on the date of release (suffice it to say that it can do code completion on polymorphic Boost lambdas).

      What it doesn't have is C++/CLI code completion. And, indeed, it doesn't have it precisely because it had Intellisense engine rewritten from scratch to fully support all C++ constructs, no matter how convoluted - and they couldn't squeeze C++/CLI support in their release schedule.

      Of course, Firefox is not written in C++/CLI.

    47. Re:VS 2005? by Larry_Dillon · · Score: 1

      > VC++ produces code that is VASTLY superior to gcc

      I thought developers produced code and compilers produced binaries?

      --
      Competition Good, Monopoly Bad.
    48. Re:VS 2005? by pz · · Score: 1

      Source and machine. Both are code.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    49. Re:VS 2005? by alexo · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule. So really they're only behind by one major version. Either way, regardless of which version of VS they use they'll still be dealing with a 4GB wall since Microsoft has never released a 64bit version. I don't think the Firefox team has much choice but to restructure their projects because they simply cannot move the goalposts far enough down field.

      Two words for you: Visual Assist.

    50. Re:VS 2005? by jlebar · · Score: 1

      Yeah. It's complicated for us because we do binary hacks on the CRT in order to install our custom allocator, jemalloc, and because MS stopped distributing the build system for the new CRT. But we're working on exactly the suggestions in that SO post.

    51. Re:VS 2005? by jlebar · · Score: 1

      Because MS stopped providing the build system for the CRT sources. :-/

      You'd think that we'd just figure out how to rebuild it ourselves, since we have the old build system. I don't know why we didn't, but that stuff is so ugly, I really don't want to find out. :)

    52. Re:VS 2005? by Anonymous Coward · · Score: 0

      MSVC produces great code compared to GCC, but the last time I tried it---admittedly a couple of years ago---Intel's C++ compiler generated even better/faster code than MSVC. (At least on Intel CPUs... not sure I'd trust it to generate code that ran decently on AMD.)

      Of course, what took one hour to compile/link/optimize with MSVC (on 2 cores, at the time) took more than 24 hours w/Intel's compiler, so we never used it in production.

    53. Re:VS 2005? by badkarmadayaccount · · Score: 1

      Is GCC Win32 code that suboptimal? Can it be fixed? Could someone please educate me?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    54. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      You'd force yourself out of the Visual Studio tool chain which carries with it a significant amount of extra work. If you don't mind or perhaps you just want to run Eclipse with a C/C++ plugin, or some other solution with both compile and debug support go for it. However, you really won't find anyone using a win32 port of gcc for serious work. The hassles and other negatives involved out weigh any conceivable benefit. If you're allergic to Visual Studio you could go with C++ Builder from Embarcadero (formerly Borland).

      --
      Two of my imaginary friends reproduced once ... with negative results.
    55. Re:VS 2005? by badkarmadayaccount · · Score: 1

      Could you be more specific on the hassles and negatives?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    56. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Visual C++ is not 100% the same as ANSI C++, syntax highlighting, as well as code validation and navigation will be for the former. This has the potential to be a point of irritation.

      You will lose integrated debugging and be forced to use a GDB derivative or compatible. If you're from the camp that sees value in it, this also means among other things no more "edit and continue".

      You will be forced to manage your own make files. Third party utilities can simplify this but it will involve more effort.

      Builds will now have to be launched via command line or by third party tool.

      I'm sure if I took more time to think about it I'd be able to come up with a healthy dose of others but suffice it to say, The majority of what sets Visual Studio apart from a glorified text editor with C++ syntax highlighting (think TextPad or Emacs) is lost. If you really want to do Windows development with the GNU toolset then you would be well advised to ditch Visual Studio and use Eclipse with the C++ plugin which is actually capable of leveraging the toolset. It's free and open-source, with quality and capabilities easily competing with the top commercial tools for the platform. If you're itching to spend money and the GNU toolset isn't important then go with C++ Builder.

      I'm assuming you're craving minimal hassle cross-platform (Windows, Linux, etc.) build capabilities and that's why you want to use GCC and such but still do your dev work in Windows. Usually people go the other way around and use their *NIX environment for their cross-platform dev work. To each their own I guess... Either way you'd do well with Eclipse over VS.

      --
      Two of my imaginary friends reproduced once ... with negative results.
  12. Re:Obligatory by icebones · · Score: 1

    640k? don't you mean 64k? A C64 should be enough machine for everyone

    --
    Life is pain. Anyone who says differently is selling something.
  13. Time to move on, perhaps? by pla · · Score: 2, Insightful

    The long term solution is to build the 32-bit binaries on a 64-bit system.

    No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

    Yes, most people still run 32-bit hardware. And yes, most likely someone would maintain 32-bit backports of FireFox for years to come. But the Mozilla foundation needs to direct their efforts on the reality of the present, not cripple themselves in the interests of backward compatibility.

    FWIW, I write this as someone who would primarily use that 32-bit backport at the moment. But I don't expect Mozilla to support my aging XP boxen any more than I expect them to support the Timex Sinclair 1000 or Atari ST I have stashed in the bottom of a closet somewhere.

    1. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 1

      I'm pretty sure no one actually uses a 64bit browser on their 64bit Windows OS.

    2. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      The long term solution is to build the 32-bit binaries on a 64-bit system.

      No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

      Yes, most people still run 32-bit hardware. And yes, most likely someone would maintain 32-bit backports of FireFox for years to come. But the Mozilla
      foundation needs to direct their efforts on the reality of the present, not cripple themselves in the interests of backward compatibility.

      FWIW, I write this as someone who would primarily use that 32-bit backport at the moment. But I don't expect Mozilla to support my aging
      XP boxen any more than I expect them to support the Timex Sinclair 1000 or Atari ST I have stashed in the bottom of a closet somewhere.

      Well said.

    3. Re:Time to move on, perhaps? by Ephemeriis · · Score: 2

      Yes, most people still run 32-bit hardware.

      Pretty much anything purchased in the last few years is going to be 64-bit capable.

      If you're running 32-bit, it probably isn't the hardware holding you back. It's probably your software.

      I'm still having to reload machines with 32-bit Windows XP because we've got software that won't support anything else.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    4. Re:Time to move on, perhaps? by ampathee · · Score: 2

      If "most people still run 32-bit hardware", then surely the "reality of the present" is that 32-bit builds are needed.

      If Mozilla abandons 32-bit builds, then whoever eventually steps up to maintain these unofficial 32-bit builds will have the same problem. And all the 32-bit users who go to getfirefox.com will get turned away to some random 3rd party site? I'm sure that will help firefox's popularity.

      As you say yourself, 32-bit Windows is far from obsolete. So it would be pretty retarded to just abandon the platform because of a build issue.

    5. Re:Time to move on, perhaps? by jlebar · · Score: 4, Informative

      No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

      Um.

      Some 90% of our users are on 32-bit Windows. Just because *you're* not one of them doesn't mean that they don't matter.

      It's nice that you don't expect us to support your aging XP boxes, but I think you'd find you're the minority in this respect.

      (Also, all phones are 32-bit, and will be for at least the next few years.)

    6. Re:Time to move on, perhaps? by NixieBunny · · Score: 1

      But 32 bit XP computers are the most prevalent type, or nearly so, among the non-developer set. I have four of them at home and one at the office.

      --
      The determined Real Programmer can write Fortran programs in any language.
    7. Re:Time to move on, perhaps? by X0563511 · · Score: 1

      This is during compilation. Meaning, a 32-bit machine can no longer compile it. A 64-bit machine can produce a working 32-bit build just fine.

      It's the build environment, not the project itself.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    8. Re:Time to move on, perhaps? by arkane1234 · · Score: 0

      Atom processors are 32-bit... and they are netbooks, mostly.

      All the push for netbooks by the miscellaneous crowd, and you say that?
      It's a browser.. not a damned operating system. This is the reason I switched away from Firefox, and separately one of the reasons I left Windows over a decade ago.

      --
      -- This space for lease, low setup fee, inquire within!
    9. Re:Time to move on, perhaps? by arkane1234 · · Score: 1

      Great, that eliminates ~40.9% of the internet. How about the rest?

      --
      -- This space for lease, low setup fee, inquire within!
    10. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      Majority or minority, I don't care. If you're holding back progression, get out of the way.

    11. Re:Time to move on, perhaps? by petermgreen · · Score: 1

      At least with a 32-bit browser it crashes when it runs out of address space rather than sending the whole machine into swap-death.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    12. Re:Time to move on, perhaps? by pclminion · · Score: 2, Insightful

      No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

      Hahaha! Uh, no.

      1. The MSVC compiler is a 32-bit program. Sure, it can compile 64-bit code, but it is itself 32-bit, so using a 64-bit OS doesn't even help you. cl.exe is a 32-bit process. Always.

      2. All of Windows is compiled with that compiler. ALL OF WINDOWS. That means there is NOTHING in Windows that requires this much VM in order to build. So Firefox is more bloated than ANY component within Windows.

      Seriously, anybody with the slightest clue about how software works should realize that this is the symptom of some incredibly deep-rooted problems within the architecture of Firefox.

    13. Re:Time to move on, perhaps? by plover · · Score: 5, Informative

      No, you missed a fact.
      Visual Studio 2005 is a 32-bit app on any Windows platform.
      Visual Studio 2010 is a 32-bit app when running on a 32-bit platform.
      Mozilla builds on 32-bit platforms can no longer support the PGO linker.

      Visual Studio 2010 is a 64-bit app on a 64-bit platform.
      Mozilla builds on 64-bit platforms can PGO link just fine.
      When Visual Studio 64-bit compiles a 32-bit app, that app can run only on XP SP2 or later.
      Mozilla has millions of users on pre-XP SP2 platforms.

      So Mozilla has a choice: change nothing but stop PGO linking the 32-bit versions (sub-optimum for 32-bit users), go forward on a 64-bit only path and disenfranchise the old users from getting any new functions, abandon them completely (which is irresponsible in terms of security), cut back on new features for all, or take an axe to the existing code. Only one is an easy choice.

      --
      John
    14. Re:Time to move on, perhaps? by peppepz · · Score: 3, Informative

      Or of Google Chrome, which hits exactly the very same problem.

    15. Re:Time to move on, perhaps? by Bios_Hakr · · Score: 1

      If you are a Mozilla guy (you say *our* users), is there an official 64 bit version for Windows? Linux?

      --
      I'd rather you do it wrong, than for me to have to do it at all.
    16. Re:Time to move on, perhaps? by compro01 · · Score: 2

      Atom processors are 32-bit... and they are netbooks, mostly.

      Netbook Atoms have been 64-bit since late 2008. Everything except the original diamondville single core does 64-bit.

      The only current atoms that don't do 64-bit are the ultra-low-power Z series, which are for UMPCs and tablets.

      --
      upon the advice of my lawyer, i have no sig at this time
    17. Re:Time to move on, perhaps? by DamnStupidElf · · Score: 1

      Everything but the Z line and the N2xx series Atoms are 64-bit.

    18. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      My Atom netbook runs 64-bit Firefox (on Linux) just fine, thank you.

    19. Re:Time to move on, perhaps? by dreemernj · · Score: 3, Insightful

      Possibly not. But part of the reason is that it is not possible to set 64-bit IE9 as the default browser on Windows Vista or 7.

      That, and no official releases of 64bit Firefox, Chrome, (Safari?) or Opera for Windows. So it's really a team effort to keep 64bit browsing off Windows.

      --
      1 (short ton / firkin) = 89.1432354 slugs / keg
    20. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      2. All of Windows is compiled with that compiler. ALL OF WINDOWS. That means there is NOTHING in Windows that requires this much VM in order to build. So Firefox is more bloated than ANY component within Windows.

      Is all of Windows compiled with that compiler, ALL OF IT, at once, into one big library, which they then try to optimize with PGO? No. Windows is many small pieces pasted together to form a larger whole.

      Seriously, anybody with the slightest clue about how software works should realize that this is the symptom of some incredibly deep-rooted problems within the architecture of Firefox.

      This has nothing to do with "how software works". You apparently skipped reading the links in the summary in your rush to post. Next time, spend some time reading, rather than making a post that paints yourself as a pretentious twat.

    21. Re:Time to move on, perhaps? by Mashiki · · Score: 2

      That's 90% of your users. Though steam says that nearly 45% of their users are using a 64bit OS, and it's increasing at a rate of 1% a month.

      --
      Om, nomnomnom...
    22. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      > When Visual Studio 64-bit compiles a 32-bit app

      No risk of that. The 64-bit toolchain does not support compiling a 32-bit binary. But a 64-bit OS means that the 32-bit toolchain can use up to 4 GB. And running VS2010 seems to use about 70 MB less than VS2005, too (yes, that means there's no point in moving to VS2010 for 32-bit builds).

    23. Re:Time to move on, perhaps? by X0563511 · · Score: 2

      Special.

      Third choice: not using a broken toolchain.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    24. Re:Time to move on, perhaps? by jlebar · · Score: 5, Informative

      I am a Mozilla guy.

      There's an official 64-bit version for Linux. We've been shipping that since before I can remember. There are also nightly builds for 64-bit Windows, but we're not shipping these even as Aurora at the moment.

      64-bit Linux isn't listed on most of our download pages. I'd argue it should be there, but I'm not in charge. :)

      Anyway, here are links to get all the builds we produce:

      Nightly builds: http://nightly.mozilla.org/ (has win-64 builds)
      Aurora builds: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/
      Beta builds: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/9.0b6-candidates/build1/ (I don't know the directory for the latest beta build, unfortunately, so you'll have to update this URL each time you go looking.)
      Release builds: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/

    25. Re:Time to move on, perhaps? by FreelanceWizard · · Score: 1

      While I would agree that this is a sign of something curious in Firefox's code, http://msdn.microsoft.com/en-us/library/x4d2c09s(v=VS.100).aspx would seem to disagree with you on the MSVC compiler. In at least VS 2010, there's a x64 native versions of cl.exe.

      --
      The Freelance Wizard
    26. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      (Also, all phones are 32-bit, and will be for at least the next few years.)

      iPhone (since A4) is 64-bit. There are other 64-bit phones as well.

    27. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      I say fuck everything, let's do 256-bit systems.

    28. Re:Time to move on, perhaps? by caseih · · Score: 3, Insightful

      If you say so, but if MS used PGO for things like MS Office, IE, or even the windows explorer shell I'm sure they'd quickly run out of RAM as well.

      So no, Firefox is not more bloated than "*ANY* component within Windows."

      Seriously, anyone with the "slightest clue" about what the article is talking about would understand that this issue is not about "deep-rooted problems" in Firefox. And as the other poster mentions, MS knows about this problem and now has 64-bit binaries of the compiler and linker now so this is less a problem. However it only addresses the issue for 64-bit apps; the 64-bit binaries don't appear capable of compiling and linking 32-bit apps, if I read this correctly.

    29. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      Visual Studio 2010 is not 64 bit on a 64 bit OS. VS11 will be.

    30. Re:Time to move on, perhaps? by spongman · · Score: 3, Informative

      The MSVC compiler is a 32-bit program

      NO:

      C:\vs10\VC\bin\amd64>link /dump /headers link.exe
      Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      Dump of file link.exe

      PE signature found

      File Type: EXECUTABLE IMAGE

      FILE HEADER VALUES
                              8664 machine (x64)

    31. Re:Time to move on, perhaps? by KiloByte · · Score: 1

      A majority of devices bought today use ARM, and there are no 64 bit ARM machines in production. And due to limited memory, phones and tablets are where heavy optimizations are needed the most.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    32. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      1. The MSVC compiler is a 32-bit program. Sure, it can compile 64-bit code, but it is itself 32-bit, so using a 64-bit OS doesn't even help you. cl.exe is a 32-bit process. Always.

      This is wrong on a couple of levels. MSVC has a 64-bit version of the compiler. Unfortunately for Mozilla, while the 32-bit compiler can target x86 or amd64, the 64-bit version of the compiler targets only amd64, so while you're right that they can't use the 64-bit compiler to build their 32-bit app, the parent is correct that if they moved the target platform to 64-bit, they could use the 64-bit compiler.

      This is also wrong on whether moving to a 64-bit OS would help. Right now they're bumping into the 3GB limit because userspace is 3GB and kernel space is 1GB. On 64-bit Windows, a 32-bit app can have a full 4GB of userspace because the kernel can move into an exclusively 64-bit address space. Considering how fast they went from hitting the 2GB limit to hitting the 3GB limit, though, that only delays the pain.

    33. Re:Time to move on, perhaps? by KiloByte · · Score: 1

      No, this just means Windows is compiled with crappy optimizations. You can build Firefox in the conventional one unit at a time mode just as well.

      Seriously, anyone who modded you up has none of that slightest clue you're talking about.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    34. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      Intel said something very similar when they came out with the Titanicium, er, Itanium.

    35. Re:Time to move on, perhaps? by BitZtream · · Score: 1

      What?

      My father in laws machine Dell came that way from the factory, which confused the hell out of me as to why Flash just refused to work on his machine until I was sitting in front of it and noticed it was 64 bit.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    36. Re:Time to move on, perhaps? by BitZtream · · Score: 1

      VisualStudio != MS C++ compiler.

      They are two different applications.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    37. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      Back in the first version of Windows to have a 64-bit release (Win2k?) 64-bit IE was the default on 64-bit Windows.

      The problem is that people's add-ins and toolbars and whatnot don't work on 64-bit IE. You could run it, and basic web browsing worked fine, but so much stuff was broken by lack of 3rd party support that it was a support nightmare.

    38. Re:Time to move on, perhaps? by blackraven14250 · · Score: 1

      Steam users are more likely to be running a 64 bit OS because they're gamers, and actually care about what hardware they're using.

    39. Re:Time to move on, perhaps? by plover · · Score: 1

      Dang, you're absolutely right. It's still a 32 bit toolchain that's emitting 64 bit binaries.

      So the thing I got wrong above should have been:
      When Visual Studio 2010 (regardless of platform) compiles & links a 32-bit app, the binaries are compatible only with XP SP2 or later.
      Correct?

      --
      John
    40. Re:Time to move on, perhaps? by Mashiki · · Score: 1

      Any hardware made in the last 4 years is x64 capable. So that leaves it right down to the OS, and what another person said already. That the current 32bit build should be maintained as is, and a new solid 64branch should be where the main resources are going.

      --
      Om, nomnomnom...
    41. Re:Time to move on, perhaps? by shutdown+-p+now · · Score: 1

      When Visual Studio 64-bit compiles a 32-bit app, that app can run only on XP SP2 or later.

      I believe that would only be the case if the used the runtime library from VS2010. It should be possible to use the 64-bit compiler from VS2010, but explicitly tell it to link the runtime from VS2005.

    42. Re:Time to move on, perhaps? by shutdown+-p+now · · Score: 1

      The MSVC compiler is a 32-bit program. Sure, it can compile 64-bit code, but it is itself 32-bit, so using a 64-bit OS doesn't even help you. cl.exe is a 32-bit process. Always.

      You are simply wrong. As of VS2010, there is a native 64-bit compiler binary (it's the one in VC\bin\amd64 in VS folder). One can trivially verify that it is indeed 64-bit by running it with "-?" and looking at the process in Task Manager - it doesn't have *32 added to the name. Ditto for linker, make and other tools.

    43. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      I was running XP SP2 more than a decade ago on hardware vastly inferior to today's run of the mill hardware.

      Many of the things we do today on normal hardware would be incredibly difficult, if not impossible, on that old laptop of mine (still have it, btw).

      At some point, it really is necessary to stop future support of given hardware (and OSs) simply because further support of the old stuff will simply slow down progress.

    44. Re:Time to move on, perhaps? by msobkow · · Score: 1

      Mozilla has millions of users on pre-XP SP2 platforms

      If there really are people out there running Pre-XP SP2 systems at home or in production, they clearly don't give a damn about performance and usability for the people stuck using such old crap. I would never dream of running anything less than XP-SP3, and even that is old enough that I woudn't expect a vendor to be releasing their latest and greatest software for such an old machine!

      It may be a big user base, but I'm betting the majority of such people are using locked-down corporate images that won't let them install the latest builds of Firefox whenever they want to anyhow, so the loss of being at the forefront of the build queue priorities will not affect that community significantly.

      Anyone running anything older than XP-SP2 is either a dedicated hobbyist or a criminally negligent system administrator. Even if they mean SP2c, that was released in 2007 -- surely any environment where the sys admin has not rolled out an update in 4 YEARS is criminally negligent and not giving a damn about Firefox performance.

      --
      I do not fail; I succeed at finding out what does not work.
    45. Re:Time to move on, perhaps? by snemarch · · Score: 1

      IMHO there's no reason that the browser itself needs to be compiled for x64 - I don't care about the silly purist arguments. Theoretically you can get some speedups for x64, but in the case of a browser you aren't going to take advantage of added x64 stuff... sure, you get more registers, but you also suffer from pointers doubling in size... and there's a lot of pointers involved in DOM and JavaScript.

      Also, I don't see much point in the larger address space for browsers - "4GB should be enough", especially on a browser that uses process isolation for tabs.

      --
      Coffee-driven development.
    46. Re:Time to move on, perhaps? by snemarch · · Score: 1

      It's a 32bit IDE, with a 32bit toolchain for producing 32bit executables, and a 64bit toolchain for 64bit executables :) There's two parts to OS compatibility: 1) the CRT using some fancy new imports for security reasons, 2) setting OS version image fields, and refusing to set lower version numbers. Both can be overcome.

      --
      Coffee-driven development.
    47. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      There still a lot of netbooks out there, with XP and the Atom N270 which is 32bit (diamondville) ...

    48. Re:Time to move on, perhaps? by snemarch · · Score: 1

      Not sure that would work, but Visual Studio ships with the CRT source code... so you can just rebuild a CRT that doesn't depend on the imports not available on previous Windows versions.

      --
      Coffee-driven development.
    49. Re:Time to move on, perhaps? by gnu-sucks · · Score: 1

      Couldn't they just compile the 32 bit version with gcc on windows, and accept that it may not be quite as optimally built?

    50. Re:Time to move on, perhaps? by atisss · · Score: 1

      And majority of ARM are not ARMv7 or higher, so they still don't run Firefox

    51. Re:Time to move on, perhaps? by atisss · · Score: 1

      use ulimit before starting firefox :p

    52. Re:Time to move on, perhaps? by atisss · · Score: 1

      So which was the first? Windows or That compiler?

    53. Re:Time to move on, perhaps? by jlebar · · Score: 1

      The 64-bit ARM architecture is ARMv8, which does not exist in any chip at the moment that I'm aware of.

      http://stackoverflow.com/questions/1308500/is-iphone-os-64-bit-or-32-bit
      http://en.wikipedia.org/wiki/ARMv8#ARM_cores

    54. Re:Time to move on, perhaps? by jlebar · · Score: 1

      VS2010 ships with the CRT source but not the build system.

      I haven't looked at this, but the build system is apparently Very Difficult to recreate.

    55. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      There aren't really any other options on Windows, though.

      There are only three modern compilers that target Windows. Visual Studio, GCC, and Clang.

      GCC on Windows sucks. It's slow (because it was designed around Unix systems, which have completely different performance characteristics than Windows), the linker is terrible, it generates enormous binaries, and it's not very well supported. It works, and you can build Firefox with it, but it's not the best choice. At least on Windows, GCC tends to generate slower code than MSVC does. Not in all cases, and generally not by much, but it is slightly slower.

      Clang just isn't finished yet. It works fine on Mac OS X, which is the main target platform. It works reasonably on Linux. Windows support just isn't there right now, although it's being worked on. I'd expect Clang to be the best available open-source compiler on Windows in a few years, and I'd expect it to have much better support for Windows-specific extensions and compatibility with MSVC than GCC will ever have. It's just not there yet. Right now, Clang tends to produce slightly slower code than GCC in most cases.

      So that just leaves MSVC, at least until Clang matures enough.

      It's a shame though. I generally prefer GCC for a number of reasons, but the Windows version of my stuff is always built with MSVC, even if I have to compromise the code somehow.

    56. Re:Time to move on, perhaps? by toddestan · · Score: 1

      Actually, if anything that's a feature. However, there is now a 64-bit Java plug-in so you can potentially get pwn3d that way.

    57. Re:Time to move on, perhaps? by toddestan · · Score: 1

      What about Intel's compiler?

    58. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      The MSVC compiler targeting 32-bit Windows is a 32-bit program; the MSVC compiler targeting 64-bit Windows is a 64-bit program. There is no 64-bit-hosted toolchain that produces 32-bit programs (at least of the MSVC/Win32 variety; they had a cross compiler for WinCE, and you can probably try to build a 64-bit-hosted gcc/MinGW targeting 32-bit Windows). I recall the MSVC 4 also came with a second CD containing the 16-bit compiler... which probably means they didn't have a cross-compiler then, either. I don't think I've ever checked that's hosted, though.

      Annoyingly, "Win32" vs "Win64" wasn't a valid shorthand in this case...

      (You were looking at the 64-bit toolchain, since you were in the amd64 directory.)

    59. Re:Time to move on, perhaps? by blackraven14250 · · Score: 1

      x64 capable hardware doesn't mean PC manufacturers are all shipping only x64 configurations for the past 4 years. You have to consider that regular, everyday users don't upgrade the way people in tech-related industries do, so expect people with XP to still be all over the place - and they use 32 bit versions nearly exclusively. While dropping 32 bit support is something that lots of places are going to start considering in a year or two, it's not going to happen just yet, when XP has over 30% market share.

    60. Re:Time to move on, perhaps? by Acaeris · · Score: 1

      And?...

      Of course Steam is going to have lots of 64 bit OS users. Lots of gamers will have/be upgrading to an i5 or i7 at the moment to make the most out of CPU intensive games and no matter whether you build it yourself or buy prebuilt, you'd want Win 7 64bit so you can make the most of that processor and the 8Gb of RAM you put in (because what's another £15 on the price).

      Most Firefox users on the other hand probably don't play games on a PC outside of browser based games or solataire, or are using a netbook, or are using their PC at work where IT have probably bought the cheapest thing available from HP at the time of the last upgrade.

    61. Re:Time to move on, perhaps? by cbhacking · · Score: 1

      Got any alternatives you'd like to suggest?

      Most other toolchains don't even offer PGO. Even without PGO, binaries compiled with MSVC outperform binaries compiled with GCC (on Windows, of course, that being what MSVC typically targets). PGO is part of what keeps Firefox competitive, speed-wise, on Windows. Chrome has apparently already abandoned it, but they are built ona faster base to begine with.

      --
      There's no place I could be, since I've found Serenity...
    62. Re:Time to move on, perhaps? by snemarch · · Score: 1

      Hm, I haven't built the VS2010 CRT source, but it wasn't a problem with VS2005 or VS2008. The only thing I found a bit peculiar was that a few things (related to exception handling mostly, iirc) was only available in .obj form, no sources... but that didn't make building it problematic.

      --
      Coffee-driven development.
    63. Re:Time to move on, perhaps? by tzot · · Score: 1

      Different user groups. As an example: lots of grand parents browse the internet; not many of them need beastly machines with lots of RAM to run 3D games. So, what's your point?

      --
      I speak England very best
    64. Re:Time to move on, perhaps? by UpnAtom · · Score: 1

      64-bit Opera for Windows and OSX came out today.

    65. Re:Time to move on, perhaps? by Mashiki · · Score: 1

      I guess my grandmother who runs 3d games mostly puzzles and all that and uses steam doesn't apply? Oh wait...

      --
      Om, nomnomnom...
    66. Re:Time to move on, perhaps? by tzot · · Score: 1

      Of course she applies in my example, don't pretend to be stupid; she's but one point in the statistics (you need to understand that "not many of them" does *neither* mean "absolutely no grandparent needs a beastly machine" *nor* "absolutely no grandparent runs Steam", so your answer is kind of useless in the discussion).

      Unless you really suggest that grandparents that *use Steam* on *non-beastly machines* is a *significant* portion of Steam users? And, to get back to your previous post, do you really suggest that the intersection of the set A="people running the firefox web browser" and set B="people running Steam" is a *significant subset of A* in order to validate your point? Is that your point?

      --
      I speak England very best
    67. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 0

      64 bit opera is coming:
      http://dev.opera.com/articles/view/64-bit-opera-and-out-of-process-plug-ins/

  14. Last paragraph in the TFA is... confusing by HellKnite · · Score: 3, Insightful

    "First tests indicate that, for example, moving parts of the WebGL implementation to one side could save 300 KB. In a test run, the newer version of Visual Studio required less memory than the one that was previously used, and 64-bit Windows offers 4 GB of address space."

    So, first of all, saving 300KB on WebGL seems like a pittance. Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

    1. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 1

      300KB makes a big difference when adding the overhead of PGO and LTCG. Also MSVC only has 32-bit binaries, meaning that even in the best case scenario, where all kernel stuff is pushed into the 64-bit world, it can still only address 4GB.

    2. Re:Last paragraph in the TFA is... confusing by DeathFromSomewhere · · Score: 4, Informative

      An individual 32 bit process (IE the visual studio linker) is limited to 4GB of addressable memory.

      http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits

      --
      -1 overrated isn't the same thing as "I disagree".
    3. Re:Last paragraph in the TFA is... confusing by EvanED · · Score: 5, Informative

      Also MSVC only has 32-bit binaries

      Clarification: the only linker for 32-bit targets is, itself, 32-bits.

      The linker which targets 64-bit Windows is still 64 bits. If they had a 64-bit-to-32-bit cross compiler (they have the reverse, but not 64-to-32) that would solve Mozilla's problem. (Well, for some definition of "their problem.")

    4. Re:Last paragraph in the TFA is... confusing by blueg3 · · Score: 1

      64-bit Windows lets 32-bit applications access 4 GB of virtual address space. A 64-bit application can access much more, but the linker isn't 64-bit.

    5. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 0

      I believe they are saying that 64-bit Windows offers 4GB of address space for 32-bit applications.

    6. Re:Last paragraph in the TFA is... confusing by Fred+Or+Alive · · Score: 4, Informative

      32 bit programmes (with the large address aware flag set) get 4GB of address space on 64 bit Windows, compared to 2GB / 3GB on 32 bit Windows.

      --
      10 PRINT "LOOK AROUND YOU ";
      20 GOTO 10
    7. Re:Last paragraph in the TFA is... confusing by sideslash · · Score: 1

      Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

      The 64 bit architecture does indeed offer 4 GB. Of course, it also offers 8 GB, 16 GB, etc. The article was focused on the 4 GB number because of FF, so it phrased a legitimate fact in a confusing way.

    8. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

      64-bit Windows lets you run 32-bit applications (such as the linker in question) with 4gb of address space. On 32-bit Windows, the OS uses 2GB of address space for itself, or 1GB if you set the /3GB flag on boot.

      There is no MSVC x86-32 compiler which runs as an x86-64 application, unfortunately. This is what you'd need to get a larger-than-4GB address space.

    9. Re:Last paragraph in the TFA is... confusing by X0563511 · · Score: 0

      So? The compiler/linker isn't (or it shouldn't be) a 32-bit process.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    10. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 0

      An individual 32 bit process (IE the visual studio linker) is limited to 4GB of addressable memory.

      Wait, wait, ... wait. Internet Explorer is the visual studio linker?!? Now I know what the problem is.

    11. Re:Last paragraph in the TFA is... confusing by DeathFromSomewhere · · Score: 1

      The tool chain for VC++ 2005 (and even 2008 and 2010) is 32 bit that can cross compile to 64 bit. I think there are 64 bit versions of the tool chain but they don't cross compile to 32 bit. So if you want to target 32 bit platforms, you are stuck with using the 32 bit tools.

      --
      -1 overrated isn't the same thing as "I disagree".
    12. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 0

      They didn't say it in a confusing say, they made an incorrect statement and meant something else. Their grammar was incorrect.

      "64-bit Windows offers 4 GB of address space" is false
      "64-bit Windows offers 4 GB of address space for 32bit executables" would be correct.

      That being said, it was an easy to make mistake, but it is a great example of what I do every day, which is why I'm not a writer.

    13. Re:Last paragraph in the TFA is... confusing by EvanED · · Score: 1

      Correct. There are toolchains for 32-targeting-32, 32-targeting-64, 64-targeting-64, but no 64-targeting-32. (And from what people are saying, no 64-to-32 on the near horizon either.)

    14. Re:Last paragraph in the TFA is... confusing by Nethemas+the+Great · · Score: 3, Informative

      Actually, 4GB of address space on a 64bit Windows is correct with respect to Visual Studio and more specifically the linker since it is only 32bit. Microsoft--even with the crippled (for C++) Visual Studio 2010--has never released a 64bit version.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    15. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 0

      This seems incredibly bizarre to me.

    16. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      So, first of all, saving 300KB on WebGL seems like a pittance.

      And WELCOME to WHY this problem exists in the first place.

      Those little 300KB bits add up into one big 9GB mess because of people saying ... 'its only 300k!'

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    17. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      No, they don't.

      They still get the same amount as they would on 32 bit windows. The kernel is expected to be found in specific places within that 4GB range. Without the /3GB switch, the kernel presents itself across a 2GB range of the Applications address space. In /3GB mode, it presents itself across a specific 1GB portion of that address space.

      The kernel does not mysteriously disappear to 32bit apps when you run them on a 64 bit machine. They still have to talk to it, and they still talk to it in the same 1GB of space that it claimed before.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    18. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      No, they don't.

      They still get the same amount as they would on 32 bit windows. The kernel is expected to be found in specific places within that 4GB range. Without the /3GB switch, the kernel presents itself across a 2GB range of the Applications address space. In /3GB mode, it presents itself across a specific 1GB portion of that address space.

      The kernel does not mysteriously disappear to 32bit apps when you run them on a 64 bit machine. They still have to talk to it, and they still talk to it in the same 1GB of space that it claimed before.

      32bit apps can use AWE to access more than 4GB of ram, but that requires special code and doesn't just work because the machine has more RAM, it also works perfectly well on 32 bit versions of Windows as PAE was designed for just that purpose.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    19. Re:Last paragraph in the TFA is... confusing by luserSPAZ · · Score: 1
    20. Re:Last paragraph in the TFA is... confusing by shutdown+-p+now · · Score: 1

      VS2010 does include an x64 version of the compiler, linker and other tools. It works fine - the only problem is that it only outputs x64 binaries. Mozilla needs a 64-bit compiler that outputs 32-bit code, so it's of no help to them.

    21. Re:Last paragraph in the TFA is... confusing by sideslash · · Score: 1

      I know Visual Studio provides a native x64 compiler. Are you sure there's not an x64 linker? I don't have immediate access to a machine to check this.

    22. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 0

      No, sorry, wrong. The kernel on a 64 bit system is in the top half of 64 bit address space.

      ntdll is loaded into the normal place in WoW, and it redirects calls to the 64 bit ntdll loaded just above the 4GB barrier, which talks to the kernel.

    23. Re:Last paragraph in the TFA is... confusing by snemarch · · Score: 1

      You might want to read up on that :)

      Because the address space on 64-bit Windows is much larger than 4GB, something I’ll describe shortly, Windows can give 32-bit processes the maximum 4GB that they can address and use the rest for the operating system’s virtual memory.

      --
      Coffee-driven development.
    24. Re:Last paragraph in the TFA is... confusing by snemarch · · Score: 1

      Not just Chen, but also Russinovich :)

      --
      Coffee-driven development.
    25. Re:Last paragraph in the TFA is... confusing by Nethemas+the+Great · · Score: 1

      There are native 64bit build tools (compiler/linker) for producing 64bit binaries however, there isn't a 64bit cross-compiler/linker for producing 32bit binaries.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    26. Re:Last paragraph in the TFA is... confusing by spongman · · Score: 1

      There is no MSVC x86-32 compiler which runs as an x86-64 application

      no, but the x64 linker (amd64\link.exe) can take x86 .objs and the "/machine:x86" switch and generate an x86 .exe

      It's probably not supported, and more advanced things may not work, but I just compiled a test app with the x86 compiler and linked it with the x64 linker.

    27. Re:Last paragraph in the TFA is... confusing by spongman · · Score: 1

      Clarification: the only linker for 32-bit targets is, itself, 32-bits

      this is false.

      the x64 link.exe can link x86 .objs into a x86 .exe

    28. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Apparently this works (which surprised most of us on IRC), but doesn't support PGO, unfortunately (though unsurprisingly).

    29. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Except the 64 --> 32 linker cannot use link-time code generation, which is a prerequisite of PGO.

  15. Bloat by ElmoGonzo · · Score: 2

    Sheesh. I can remember when we had to keep the size of the completed application small enough to fit on a 360K bootable floppy.

    1. Re:Bloat by X0563511 · · Score: 1

      ... and I remember when people used to read.

      It's not the completed application exceeding the limit, it's the resource usage of the build environment.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    2. Re:Bloat by Anonymous Coward · · Score: 0

      ... and I remember when people used to read.

      Wow, you must be really old!

  16. Doubt they are using VS by Anonymous Coward · · Score: 0

    I would doubt they are compiling VS. That would be a bad idea for anything but developing. Most likely they are calling the compilers directly. Building on 64 bit targeting 32 bit is easy for .Net. Hope its easy for them too.

  17. Re:Are you serious? by masternerdguy · · Score: 5, Funny

    I guess that America's obesity problem has extended to software.

    --
    To offset political mods, replace Flamebait with Insightful.
  18. Not any better for Google Chrome by Anonymous Coward · · Score: 0

    Google doesn't build Chrome with PGO enabled with Visual Studio for the very same reason. Firefox only reaches the issue now.

    1. Re:Not any better for Google Chrome by viperidaenz · · Score: 1

      So not only is Chrome faster and uses less resources, it also has fewer compile time optimisations? Sounds like Mozilla need to step up their game a bit

    2. Re:Not any better for Google Chrome by BZ · · Score: 1

      Except Chrome uses more resources, in my experience. And may or may not be faster.

      Though I'm looking at it on Mac, not on Windows, where they're just compiled completely differently (e.g. Chrome is 32-bit while Firefox is 64-bit, etc).

  19. Oh, now we admit it is getting bloated by frovingslosh · · Score: 0, Offtopic

    I saw problems months ago, when I accepted the (then) latest update on my older 512 meg XP based HP notebook and Firefox suddenly could no longer open more than just a few tabs before bogging down completely. I mentioned that in Slashdot and the insightful people here told me I was stupid and didn't know what I was talking about.

    --
    I'm an American. I love this country and the freedoms that we used to have.
    1. Re:Oh, now we admit it is getting bloated by GameboyRMH · · Score: 1

      Firefox has been getting lighter and lighter (at least in RAM use) since v4 so I don't get how the update made it slower.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    2. Re:Oh, now we admit it is getting bloated by PsychoSlashDot · · Score: 5, Insightful

      Requirements to run Firefox and resources required to compile Firefox aren't the same thing at all. Your attempt to conflate the two suggests you're stupid and don't know what you're talking about.

      I'd say it nicer but then I'd risk not hitting +5 Funny.

      --
      "Oh no... he found the .sig setting."
    3. Re:Oh, now we admit it is getting bloated by emmons · · Score: 1

      This article isn't about how much RAM Firefox needs when *running*, it's talking about how much RAM Microsoft Visual Studio uses when *compiling* (actually, linking) Firefox.

      --
      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    4. Re:Oh, now we admit it is getting bloated by Anonymous Coward · · Score: 0

      Dude. You have half a gig of probably PC100 and you're surprised a modern browser bogs down? "My decade old laptop should run everything always and never need upgrading to remain fast." Get real.

    5. Re:Oh, now we admit it is getting bloated by Anonymous Coward · · Score: 0

      shit custom decors? wasting framebuffer on stupid shit? clearing memory that shouldn't be cleared and then re-rendering and reloading shit again, to keep stupid membenchmarks down?

    6. Re:Oh, now we admit it is getting bloated by the_leander · · Score: 1

      512mb is plenty even for modern browsers if you pick the right one. Opera 11 worked just fine on an Eeepc 701, for instance (the last version of Firefox that worked on it was 2.0). Likewise Opera mobile works superbly on this Archos g9 80 tablet, which also only has 512mb of ram.

      --
      regards, the_leander
    7. Re:Oh, now we admit it is getting bloated by frovingslosh · · Score: 1

      Of course they are not the same. But they are not unrelated either. As a program grows in memory footprint it generally takes more resources to compile and link. That sure looks like what is happening here. Your flaming name calling is completely inappropriate, you should be able to make your point without it.

      --
      I'm an American. I love this country and the freedoms that we used to have.
  20. I don't understand the issue by msobkow · · Score: 5, Insightful

    It sounds like a build-tool chain problem, not an issue with the eventual binary produced for Firefox.

    Why not just run the 64-bit tools on a 64-bit platform and have them output 32-bit code, the same as can be done by virtually any cross-platform compiler system. I can't imagine worrying about the fact that I can't run the builds on an outdated 32-bit OS as long as I can produce the binaries for such platforms.

    I shudder to think what it would have been like to develop for some of the military communications systems I worked on for my first job if we had to run the compilers on that pathetically slow mil-spec Sperry AN-UYK system (magnetic core memory -- talk about slowing down the CPU! But it's radiation hard!) We only tested on the Sperry -- all builds and editing were done on a VAX.

    In modern terms, could you imagine having to run your editors and compilers on an iDevice instead of OS/X?

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:I don't understand the issue by Anonymous Coward · · Score: 0

      I lot of us compile our own software. Some also often run Operating Systems that have to compile software instead of using binary packages.

      If I want to try the latest and greatest Firefox release on a BSD, I'd have to compile it myself and I have 0 64 bit hardware.

      The mozilla project in its early days had a hard time attracting developers to it's early, already gigantic code base. Why suddenly make it even harder for the hobbyist hacker to participate?

    2. Re:I don't understand the issue by tepples · · Score: 2

      In modern terms, could you imagine having to run your editors and compilers on an iDevice instead of OS/X?

      That depends on how long Apple will continue to sell the MacBook Air instead of replacing it with a high-end iPad, but the purported death of the PC is another topic for another day.

    3. Re:I don't understand the issue by BZ · · Score: 2

      > Why not just run the 64-bit tools on a
      > 64-bit platform

      There is no 64-bit version of the MSVC linker, and no plans for one according to public statements from Microsoft.

      One can run the 32-bit linker on a 64-bit Windows, which gives you 4GB of address space to play with. That's the medium-term solution for Mozilla, but it does require updating the entire Windows build farm to 64-bit Windows and shaking out any compat issues that result. Doable, but will take a few weeks probably.

    4. Re:I don't understand the issue by EvanED · · Score: 5, Informative

      There is no 64-bit version of the MSVC linker

      Clarification (I've posted this a few times): there's no 64-bit version of MSVC that targets 32 bits. There is a 64-bit version which targets 64 bits, but that doesn't help the current situation.

    5. Re:I don't understand the issue by sconeu · · Score: 1

      I remember the AN-UYK. Once upon a time, I got dragged onto a project where some idiot had specified the PDL (pseudocode) as a deliverable.

      I wound up writing something that translated AN-UYK/23 asssembler into PDL.

      It generated stuff along the lines of "SET REGISTER 1 TO the contents of REGISTER 2"... Created about a 5 foot stack of fanfold. The DoD loved it, of course...

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    6. Re:I don't understand the issue by Nethemas+the+Great · · Score: 1

      It's really quite simple. There are no 64bit versions of Visual Studio. The farthest you can move the goalposts is 4GB (when run on a 64bit version of Windows).

      --
      Two of my imaginary friends reproduced once ... with negative results.
    7. Re:I don't understand the issue by BZ · · Score: 1

      Ah, indeed. Thanks for the clarification!

    8. Re:I don't understand the issue by compro01 · · Score: 1

      Why not just run the 64-bit tools on a 64-bit platform and have them output 32-bit code, the same as can be done by virtually any cross-platform compiler system.

      Because thanks to Microsoft's brilliance, the 64-bit tools won't output a 32-bit executable.

      And unfortunately, Microsoft's compiler's optimization methods outclass everyone else.

      --
      upon the advice of my lawyer, i have no sig at this time
    9. Re:I don't understand the issue by arkane1234 · · Score: 1

      Remember that this specific reason was why the Phoenix browser was created? Mozilla (and Netscape Communicator) was such a huge product.. and slow. I definitely agree, and you shouldn't need to compile it just to run something in 32-bit mode as well. With the selection of 32-bit hardware (and in a lot of cases, 32-bit code being the optimized selection due to 64-bit code taking extra memory per pointer/etc), it's silly to jump ship on 32-bit at the current moment. Maybe in 5-10 years, but now is just too early.

      --
      -- This space for lease, low setup fee, inquire within!
    10. Re:I don't understand the issue by arkane1234 · · Score: 1

      Once they get to the point of having a comparable processor & RAM selection between the two, your right on... oh, and iOS not in there. Then, it's simply a monitor and bluetooth keyboard/mouse. Of course, then the iPad will have to have choices of 10 or 13 inch screens.

      --
      -- This space for lease, low setup fee, inquire within!
    11. Re:I don't understand the issue by Anonymous Coward · · Score: 0

      From other comments, I gather that the Visual Studio linker is a 32bit executable only.

    12. Re:I don't understand the issue by msobkow · · Score: 1

      Excuse me, the "updating the entire Windows build farm"?

      Why in God's name would you need more than one computer to be automatically doing the nightly build even if it has to be running the same OS family as the target platform?

      Let's see, build farm, build farm... Linux/RPM, Linux/DEB, Win7/64, Win/32, maybe a BSD, HP-UX, AIX, and Solaris box thrown in for giggles. I count 8 build servers, not a "farm".

      --
      I do not fail; I succeed at finding out what does not work.
    13. Re:I don't understand the issue by msobkow · · Score: 1

      Who says you have to use Microsoft build tools to produce a Win32 executable? As far as I know, Intel still produces the tightest, fastest code for the 32-bit and 64-bit windows APIs, and there are others as well.

      --
      I do not fail; I succeed at finding out what does not work.
    14. Re:I don't understand the issue by BZ · · Score: 1

      > Why in God's name would you need more than one
      > computer to be automatically doing the nightly
      > build

      First of all, there are 4 different nightly builds on Windows (optimized and debug, 32-bit and 64-bit builds).

      But we're not talking just nightly builds. There are per-checkin builds and test runs, for all major browsers; otherwise at the end of the day you'd probably be in a world of hurt with test failures.

      So for each checkin, there are two Windows builds created (debug and optimized) then run through a variety of test suites. And this happens not just for the main integration branch but also for various development branches. It also happens for changes people just want to test (there's a service where you can submit a patch and have it build the patch for you and run tests).

      So the net result is that as of March 2011, there were about 44 build jobs being kicked off per hour according to http://oduinn.com/blog/2011/05/24/infrastructure-load-for-march-2011/ -- that's across Win32, WIn64, Mac32, Mac64, Linux32, Linux64, and Android, so figure about 18 builds per hour on Windows. Each build takes more than an hour, so you need more than 18 build machines to keep up. In practice, there are about 40 at the moment for Windows; you can see the list near the bottom of http://build.mozilla.org/builds/last-job-per-slave.txt

      That's assuming that only the build machines, not the test machines, need to be upgraded, which is a good assumption in this case, I think.

    15. Re:I don't understand the issue by BZ · · Score: 1

      > so figure about 18 builds per hour on Windows.

      Actually, more like 12.5. Arithmetic fail on my part.

    16. Re:I don't understand the issue by BZ · · Score: 1

      > In practice, there are about 40 at the moment for
      > Windows

      Looks like my information is out of date. From one of the people who maintain these machines:

      catlee> we have ~70 win32 builders
      catlee> and ~30 win64

    17. Re:I don't understand the issue by compro01 · · Score: 1

      AFAICT, Mozilla has found that Microsoft's compiler's optimization techniques give better results than the alternatives.

      --
      upon the advice of my lawyer, i have no sig at this time
    18. Re:I don't understand the issue by igomaniac · · Score: 1

      The 64-bit linker can link 32-bit object files, albeit without link-time code generation.

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    19. Re:I don't understand the issue by badkarmadayaccount · · Score: 1

      Problem is the 64-bit version of the tool-chain generates XP SP2+ code.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  21. Is rendering web pages more complicated than... by Anonymous Coward · · Score: 0

    Is rendering web pages more complicated than rendering Defender levels? My C-64 did that with 64k. That's 65536 bytes. That's 16-bit. Really cools sounds. Stuff that moves. Yes, text too.

    I miss it. I also miss software that doesn't suck.

    1. Re:Is rendering web pages more complicated than... by arkane1234 · · Score: 1

      As much as I want to believe what you say (and I think it until I break it apart in my head), it's not quite as simple as rendering something to the screen.
      That's part is a specific subsection of code within the browser. The rest is array indexes, plugin coordinations, and a bunch of other things all happening at the same time. While I'm not a browser coder, I understand the complexities. That being said, once a browser goes over 3G memory use, you start scratching your head.

      --
      -- This space for lease, low setup fee, inquire within!
  22. The problem is VS's PGO architecture by jlebar · · Score: 5, Informative

    Summary should read: Visual Studio is too teh suck to link Firefox on Windows with PGO.

    Firefox links just fine with VS, if you don't use PGO. The problem is that Visual Studio's PGO routine loads all our object files in at once, then uses a ton of memory on top of that. And the linker for 32-bit programs is itself a 32-bit program; if there were a 64-bit x86-32 linker, we wouldn't have this problem. But so far, Microsoft has not given any indication that they will release a 64-bit to x86-32 cross-compiler.

    Note that Chrome doesn't build with PGO at all, last time I checked.

    http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/533e94237691e2f6

    Note: Visual Studio 2010 seems to help a bit, but not much. We use VS 2005 because it's the last version whose CRT supports Windows 2000 and Windows XP before Service Pack 2.

    1. Re:The problem is VS's PGO architecture by thsths · · Score: 2

      > We use VS 2005 because it's the last version whose CRT supports Windows 2000 and Windows XP before Service Pack 2.

      That's all very nice, but if you run an obsolete and out of support OS, why would you want to run the latest browser? Those users should be more than happy with Firefox 3.6.

    2. Re:The problem is VS's PGO architecture by jlebar · · Score: 1

      That's all very nice, but if you run an obsolete and out of support OS, why would you want to run the latest browser? Those users should be more than happy with Firefox 3.6.

      There's talk about switching to VS2010 (and I'm sure that'll be presented as a fait accompli on ./ before it's actually decided, just like all our internal discussions are).

      But 3.6 won't be supported with security updates forever, so we'd really be abandoning those users. Just because your OS is insecure doesn't mean we should give up on providing you with a secure browser. Maybe we should abandon them, but it doesn't necessarily follow.

    3. Re:The problem is VS's PGO architecture by askldjd · · Score: 5, Informative

      Parent is right. The software product I work on also used PGO at one point. Our software is roughly 2-3 million lines of C++ code, and links with 40-50 external libraries. Under Window XP, VS2008 could not link our product with PGO turned on. Before you complain about the bloat of FF, please understand that PGO uses many many times more memory than just compiling a regular release build. This is a Visual Studio linker problem, not FF problem.

    4. Re:The problem is VS's PGO architecture by Anonymous Coward · · Score: 0

      If it's possible to support Windows 2000 and later instead of Windows XP SP3 and later without too much effort, why not? Just because Microsoft makes you upgrade your OS if you want their latest and greatest software does not mean 3rd-part application developers should.

    5. Re:The problem is VS's PGO architecture by Anonymous Coward · · Score: 0

      It looks like people have managed to compile with VS2010 while retaining compatibility with 2k or XP. Have you tried any of the solutions at http://stackoverflow.com/questions/2484511/can-i-use-visual-studio-2010s-c-compiler-with-visual-studio-2008s-c-runtim?

      dom

    6. Re:The problem is VS's PGO architecture by gl4ss · · Score: 1

      ..on a 32bit windows.

      if they ran it on a 64bit variant, they'd have one more gig to bloat what they hard link into it..

      --
      world was created 5 seconds before this post as it is.
    7. Re:The problem is VS's PGO architecture by msobkow · · Score: 1

      Sounds like Microsoft took a step backwards with the newer versions of their compilers. When there were still 16-bit windows systems around, you just set a compiler option to produce Win/16 code instead of default Win/32 code under NT 3.5.

      But I can't say I'm really surprised -- Microsoft would really rather the world stop running 32-bit Windows entirely. I was shocked that they did a 32 bit release of 7 at all, as the OS is enough of a pig that it won't run acceptably on any CPU old enough to require the 32 bit instruction set instead of AMD64 extensions.

      And I'm afraid that I really don't think it's worth the effort and worry of this freakish optimization engine to support the WinXP/WinVista 32-bit user base. Their machines are old enough that they'll blame the old clunker for performance problems, and rightly so.

      --
      I do not fail; I succeed at finding out what does not work.
    8. Re:The problem is VS's PGO architecture by Richard_at_work · · Score: 1

      Why does it have to be anythings "problem"? If you wish to use "expensive feature X" then you have to pay "expensive feature X's cost", its that simple. In this case, PGO has a cost which the compiling system cannot pay when compiling Firefox (and a tonne of other large projects I bet) - that doesn't make it a problem with PGO, it makes it an issue with the compiler options chosen and the solution is to either upgrade the system or lower the cost involved.

      You can't exactly blame anything in this scenario - you are asking the compiler to do X, and it doesnt have unlimited resources to do that.

    9. Re:The problem is VS's PGO architecture by Anonymous Coward · · Score: 0

      That's odd, I'm pretty sure my copy of Visual C++ 4.0 came with two CDs - a yellow one for the Win32 compiler, and a blue one for Win16/DOS. At least, that's what the documentation claimed; I never bothered trying to build 16 bit applications.

  23. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  24. Re:Obligatory by NixieBunny · · Score: 1

    More like 640GB these days.

    --
    The determined Real Programmer can write Fortran programs in any language.
  25. Compare Chrome. Is it a plug-in, app, or OS? by tepples · · Score: 4, Informative

    Let's guess Firefox for Windows is about the size of Google Chrome for Windows because it does about as much. But an HTML5 browser almost has to be an operating system by itself, containing a GUI layout engine (for CSS), a JIT-compiling virtual machine (for JavaScript), a window manager (tabbed document interface), a memory manager (RAM and disk caches), and a task scheduler (for scripts in one tab and scripts in another tab). Is Chrome a plug-in, a single application, or an operating system?

    1. Re:Compare Chrome. Is it a plug-in, app, or OS? by blueg3 · · Score: 1

      In fact, it would probably be better if web browsers were more similar to operating systems -- two of the things that browsers seem to be bad at is memory and cache management and task scheduling (particularly, multiprocessing).

    2. Re:Compare Chrome. Is it a plug-in, app, or OS? by devent · · Score: 1

      And that's exactly the issue I have with the current development of the Web. We already have perfectly good Operating Systems, but now everyone is trying to make the browser into another operating system. And for what, just to deliver applications through the browser instead through the operating system.

      The web foremost purpose is to deliver information. It's a shame that we didn't make any progress in that direction since the first HTML version. It's good that the symptoms of the bad design of the Web are remedied with powerful search engines, or you wouldn't find anything useful. Just try a thought-experiment: What would you do if tomorrow there would be no search engine any more (no Bing, no Yahoo, no Google, no what ever you using)? What would you do with the Web?

      The new video tag is somewhat a good beginning. But why there is no author tag, no table-of-content-tag, no index-tag, etc. Good that we have at least the meta-tag so the search engines can have a clue what the site is about.

      The web is good for content delivering. That's why "applications" like Wikipedia or all the news- and blog-sites are thriving. It is not for real applications (i.e. games, math-applications, IDEs, etc.) and never will be. We already tried that with Flash, Java Applets, SL. So now we try it again, but this time it will be "magical" because it's all Html5.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    3. Re:Compare Chrome. Is it a plug-in, app, or OS? by Anonymous Coward · · Score: 0

      Microsoft already tried to bring those two together, and everyone complained.

    4. Re:Compare Chrome. Is it a plug-in, app, or OS? by ncmusic · · Score: 1

      Now if only someone would embedded the browser as part of the operating system.

    5. Re:Compare Chrome. Is it a plug-in, app, or OS? by Anonymous Coward · · Score: 0

      Yes, no one plays flash games...

  26. Not FF's fault by Anonymous Coward · · Score: 4, Informative

    The software product I work on also used PGO at one point. Our software is roughly 2-3 million lines of C++ code, and links with 40-50 external libraries. Under Window XP, VS2008 could not link our product with PGO turned on.

    Before you complain about the bloat of FF, please understand that PGO uses many many times more memory than just compiling a regular release build. This is a Visual Studio linker problem, not FF problem.

    1. Re:Not FF's fault by luserSPAZ · · Score: 1

      Do you have a source to back that up? I've never been able to find any information saying that Microsoft compiles their OS libraries with PGO. In fact, in their "Debugging in the (Very) Large" paper, they state that they even turned off frame-pointer omission, since it caused more headaches and didn't give them a noticeable speedup.
      http://research.microsoft.com/apps/pubs/default.aspx?id=81176

  27. Official bitch about firefox thread by Anonymous Coward · · Score: 0

    In this thread you reply with problems with firefox and how they are related to code bloat. Technical explanation please! This is a great opportunity to tell the entire world exactly why firefox is bloated- And prove it too!

    I, for one, want to know how the sub 10 megabyte download for windows is considered bloated. No really. I want to know.
    I want to hear why firefox is bloated and chrome, safari, opera, IE, etc are not.

    1. Re:Official bitch about firefox thread by arkane1234 · · Score: 1

      The sub 10 MB download for windows is a stub to install over the 'net. It's not the product.

      --
      -- This space for lease, low setup fee, inquire within!
    2. Re:Official bitch about firefox thread by Anonymous Coward · · Score: 0

      Oh, so the full install is 14 megs.. Wow. Massive bloat here guys.

    3. Re:Official bitch about firefox thread by omnichad · · Score: 1

      The main install for Firefox is now 14MB in the latest version, but it's not a stub install. I've run the installer just fine on an unconnected PC. On the other hand, updates come out so fast, that you could almost consider the download copy a "stub install" that also happens to be a full install of Firefox that then auto-updates over the Internet.

  28. I still play 8-bit video games by tepples · · Score: 2

    I still play 8-bit video games, and the memory card adapter I use to play them has an 8-bit OS.

    1. Re:I still play 8-bit video games by abigor · · Score: 1

      You are pretty much the master of interesting yet perilously-close-to-offtopic comments about circumstances that seem to have a sample size of one, that sample being you.

  29. Old timer chimes in by Okian+Warrior · · Score: 4, Insightful

    Back in my day we didn't have gigabyte memory and disk space was at a premium.

    It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

    This is where your interface and API design skills came in handy. If you could partition some piece of the project off into it's own DLL, you could effectively break up the project into smaller pieces that could be individually compiled.

    That's where the name DLL came from originally: "Dynamic link library". You didn't need to have all the code read into memory when you first executed the application - less commonly used features wouldn't get loaded until they were actually asked for.

    It's not like it is nowadays, where you actually need all the code to be available all the time. "Rich user experience" they call it.

    I suppose it's just the future overtakin' us. Them good old days is gone forever.

    1. Re:Old timer chimes in by jlebar · · Score: 4, Informative

      It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

      Yep, we used to do this. Then we merged them together, because it greatly improves the startup speed of Firefox.

      We have a lot of smart people working on this stuff, believe it or not.

    2. Re:Old timer chimes in by blueg3 · · Score: 1

      This is already a library -- libxul. They can break it into smaller pieces, but that's not the problem. It actually compiles and links fine. The problem is that it's an aggressive form of link-time optimization, which requires that (a) all of the objects being linked together be in memory at once and (b) the linker stores a ton of extra data for performing the optimization. If you give up on link-time optimization (which is very resource-intensive), code modularity works just fine.

    3. Re:Old timer chimes in by arkane1234 · · Score: 1

      I agree, but honestly I feel like we're using the same technology today but with new processor registers, address space sequences, and languages that are higher level so have a huge overhead.
      What ever happened to memory overlay capabilities? Then again, I guess that goes more into old school C and memory management techniques. I've actually thought recently how a well written assembly application would look nowadays compared to C++, Objective-C, or whatever other (non-high level) languages around. Haven't touched it in over 15 years, and it looks ripe for the taking now with so many added registers...

      --
      -- This space for lease, low setup fee, inquire within!
    4. Re:Old timer chimes in by caseih · · Score: 1

      Sure but you're confusing the issues here. Firefox still is produced as a collection of DLLs (modular design as you say). That's not the problem. The problem is that for PGO to work, it has to load all the objects and dlls into memory at once in order to do the optimizations and analyze the interactions between them. Nothing to do with "Rich user experience" as you say. Firefox builds just fine without PGO, but it might be a bit slower.

      I kind of doubt whether Microsoft uses PGO themselves for anything. Certainly a large project like MS Office would require several times the amount of RAM to to PGO than Firefox does.

    5. Re:Old timer chimes in by Sloppy · · Score: 1

      What ever happened to memory overlay capabilities?

      It was obsoleted by personal computers getting virtual memory.

      There were some good things about the "good old days" but overlays are not among them. Even back then, they sucked and were just a hack for fitting more code into your computer than you had address space.

      The only regret I have for overlays being dead, is that part of my brain is permanently wasted on knowing about them. I don't know if knowledge has opportunity cost, but I've always suspected that it does.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    6. Re:Old timer chimes in by steelfood · · Score: 2

      I suppose it's just the future overtakin' us.

      No, it's just waste due to an overabundance of resources. It happens all the time, whenever and wherever the amount of resources effectively becomes unlimited.

      Back in the day, people hand-optimized assembly to squeeze as much program as they could into the memory they were given. Now, people run it through a compiler with some optimization switches and call it a day.

      While there's nothing wrong with the latter, the skill required to do the former is both lost, and made irrelevant because the resources "saved" is not worth the time investment needed to do the optimizations. By the same way of thinking, an overabundance of any resource produces the same result.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    7. Re:Old timer chimes in by Anonymous Coward · · Score: 0

      And then you guys chopped out features like the properties dialog box on images and forced them into plugins.

      Yes, I'm still irritated about that.

    8. Re:Old timer chimes in by Anonymous Coward · · Score: 0

      For some reason I do not believe creating a program which is so large that it causes the linker to run out of address space to be the work of "smart people."

      Let us also keep in mind, that ostensibly a browser's task is to apply formatting and layout to text and images for display. That is all. All of this "web as an application platform" nonsense just leaves me with a bad taste in my mouth. At this point, the browser is an entire operating system to itself, which downloads and executes code from, well, whatever source you point it to, and things like HTML5 only broaden the scope.

      How did application development get to ass backwards?

    9. Re:Old timer chimes in by BitZtream · · Score: 1

      No, you merged a bunch of javascript and HTML together into big zip files. Real code combination, not so much.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    10. Re:Old timer chimes in by jlebar · · Score: 1

      Yes, we did that (omnijar). But in addition, we merged a number of previously-separate libraries into one giant library, libxul.

      I have to admit, it's pretty frustrating to be on a discussion board with someone who insists that I don't understand the project I've worked on for the past few years...

    11. Re:Old timer chimes in by rdebath · · Score: 1

      NO program needs 4GB of code space you'd need of the order of 200 million lines of code in a single executable to get anywhere near it, so with that amount of address space available overlays are unnecessary.

      Also very few programs need more that 4GB of data space. Before today I knew of only two Microsoft applications that would benefit from more that 2GB of data space; MS-SQL and MS-Exchange. Now it appears that that MS C++ compiler & linker could (very) occasionally benefit from a 64bit implementation ... but Microsoft aren't making a 64bit version of VS so it must be really rare as they're pushing hard for 64bit only.

      As for assembly, it was quite a while ago now that C/C++ compliers became better assembly code generators than people. For a modern heavily optimising complier hand written assembler will usually perform worse than the code emitted by the compiler. Not least because of features like the "PGO" that's causing the problem for Firefox where the compiler is trying to find optimisations over the entire executable, not just for small regions of code.

    12. Re:Old timer chimes in by msobkow · · Score: 1

      Well, on the bright side your frustration is a worthy price to pay for the community to hear from someone who actually works on the project and knows what's happening from the inside.

      But you really don't need to provide maximum PGO optimization of a binary to to achieve acceptable performance. Only an idiot would be benchmarking the 32-bit windows executables instead of the 64-bit WinVista/Win7 systems nowadays, and no matter how much you optimize, any system that actually requires 32 bit windows is probably old enough that the users are going to gripe about it being slow no matter what you do.

      It's called an "obsolete platform", and it's time to start gracefully retiring it from the forefront of the build schedules and project priorities.

      --
      I do not fail; I succeed at finding out what does not work.
    13. Re:Old timer chimes in by Anonymous Coward · · Score: 0

      Back in the real old days (CDC 7600) there were things called overlays. This was because you had 64k 60 bit words to work with. So you had code that loaded and unloaded as required, sort of a poor mans virtual memory. (Back at this time Virtual Memory was only in its infancy, and did not exist on CDC machines). People also had to work at shuttling data in and out all be it the 7600 had large core memory you could bulk transfer to/from for data.

    14. Re:Old timer chimes in by martin-boundary · · Score: 1

      Thank you! I was going to mention that. Bloody whippersnappers with their DLLs and SOs these days! 64 bit? 64 bit? They can't HANDLE 64 bit!

    15. Re:Old timer chimes in by shutdown+-p+now · · Score: 1

      It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

      This is where your interface and API design skills came in handy. If you could partition some piece of the project off into it's own DLL, you could effectively break up the project into smaller pieces that could be individually compiled.

      The point of link-time code generation is to have the compiler work with the entire codebase, so that its optimizer can do a complete flow analysis, and have better data to work with. This leads to direct, noticeable improvements in performance of the resulting binary.

      SQLite does something similar for the same reasons - they don't even use LTCG, they just concat all their .c files in one humongous translation unit, and feed it to the compiler. Somewhere on their website there was a FAQ where they have specifically mentioned how much faster this makes the library - IIRC, something on the order of 10%?

    16. Re:Old timer chimes in by snemarch · · Score: 1

      and no matter how much you optimize, any system that actually requires 32 bit windows is probably old enough that the users are going to gripe about it being slow no matter what you do.

      On the other hand, people with dog-old slow systems are the ones who benefit most from aggressive optimizations. And yes, if you don't install a gazillion leaky plugins, I do find that the recent firefox versions run pretty well.

      --
      Coffee-driven development.
    17. Re:Old timer chimes in by snemarch · · Score: 1

      Now it appears that that MS C++ compiler & linker could (very) occasionally benefit from a 64bit implementation ... but Microsoft aren't making a 64bit version of VS so it must be really rare as they're pushing hard for 64bit only.

      DevEnv is 32-bit only for now, but there's both 32bit and 64bit toolchains... the 64bit toolchain can't target 32bit executables, though.

      As for assembly, it was quite a while ago now that C/C++ compliers became better assembly code generators than people. For a modern heavily optimising complier hand written assembler will usually perform worse than the code emitted by the compiler.

      Depends on who is writing the assembly code, really. The benefit of a compiler is that, especially with PGO and LTCG, it can apply a lot of brute force that a human simply wouldn't have the time to do - netting some nice performance benefits. There's really no point in trying to beat the compiler for business apps, but if you're dealing with algorithm-heavy stuff, especially if you can utilize the fancy new CPU instructions, there's speed to be won.

      --
      Coffee-driven development.
    18. Re:Old timer chimes in by snemarch · · Score: 1

      AFAIK, LTCG doesn't work across EXE/DLL boundaries, "only" objects and (static) libraries within the same EXE/DLL - that does still very quickly add up, though. xul.dll is ~11MB on my FF8 install.

      --
      Coffee-driven development.
    19. Re:Old timer chimes in by Anonymous Coward · · Score: 0

      Your smart people are rather dumb by any standards if they can't reduce the footprint while using PGO.

    20. Re:Old timer chimes in by jlebar · · Score: 1

      Well, on the bright side your frustration is a worthy price to pay for the community to hear from someone who actually works on the project and knows what's happening from the inside.

      Thanks. :)

      But you really don't need to provide maximum PGO optimization of a binary to to achieve acceptable performance.

      That's a fair point! But right now, 32-bit Windows builds are all we have. 64-bit Windows builds have been coming Real Soon Now for a while, but I wouldn't hold my breath.

      We (try to) focus our efforts where our users are. The vast majority of our users are on 32-bit Windows, so improving their experience -- however we can do that -- is in general a priority above making Firefox run fast on bleeding-edge hardware. (That's not to say that we won't optimize for new hardware now, under the assumption it will become mainstream in the future.)

    21. Re:Old timer chimes in by Anonymous Coward · · Score: 0

      As in everything else, the Golden Mean seems to always elude humanity...

    22. Re:Old timer chimes in by rdebath · · Score: 1

      32bit and 64bit toolchains

      Are you sure about that, remember we're talking about native code not DotNet. While DotNet does appear to have distinct 32bit and 64bit compilers the native C++ compiler appears to be only available as a 32bit executable that cross compiles to x64 or ia64 (and probably still 16bit too).

      there's speed to be won

      It used to be that you could write an algorithm in C get the compiler to generate the code and then improve the code by hand.
      It's more the case nowadays that if you want or need to do that you should really be making sure that you are using the right compiler. Specifically, the Intel C compiler will generally be able to use all the instructions of the (Intel) CPU you point it at and will end up costing less (time, money or whatever) than doing the job by hand.

      And even if you have to use a compiler that doesn't understand your special hardware accelerated instruction the inline assembler is normally more than good enough to specify the rules for using it and optimising around it without the compiler knowing exactly what it does.

      Of course there is the other problem; the main reason I stopped hand optimising is that there isn't a single x86 CPU, methods of speeding up one variant will slow down others, but never by much because it's rare that the CPU is the bottleneck anymore. It's far more likely to be the memory and IME you can more easily help the compiler optimise memory accesses by working on the original C/++ code. Doing (or with c99 'allowing') optimisations the compiler won't because it can't make assumptions that you think are obvious.

      That BTW is what PGO does, it allows the compiler to go and check on assumptions it's not allowed to make, it can check aggressive aliasing rules or simplify function calling (or eliminate it by inlining between modules) or even making subroutines (not functions) for rarely used code. It's not a new optimisation method, just bigger.

    23. Re:Old timer chimes in by snemarch · · Score: 1

      32bit and 64bit toolchains

      Are you sure about that, remember we're talking about native code not DotNet. While DotNet does appear to have distinct 32bit and 64bit compilers the native C++ compiler appears to be only available as a 32bit executable that cross compiles to x64 or ia64 (and probably still 16bit too).

      Positive. There's a 32bit native toolchain that can do 32bit and (iirc) 64bit output, whereas the 64bit toolchain can only do 64bit output. It's easy to verify - open the "Visual Studio x64 Win64 Command Prompt (2010)" and "Visual Studio Command Prompt (2010)" shortcuts, fire off a "cl /?" in each, and use Process Explorer to check the image type. One is 32bit, the other is 64bit.

      Specifically, the Intel C compiler will generally be able to use all the instructions of the (Intel) CPU you point it at and will end up costing less (time, money or whatever) than doing the job by hand.

      Less time, yeah, but not the fastest code. It's not a lot of fields where the fastest code matters, though, acceptable speed and fast time-to-market is the winning combination :)

      And even if you have to use a compiler that doesn't understand your special hardware accelerated instruction the inline assembler is normally more than good enough to specify the rules for using it and optimising around it without the compiler knowing exactly what it does.

      x64 versions of VC++ don't support inline assembly - it's better using an external assembler anyway, since you can then use the same code with different compilers. And if the code isn't big enough to warrant putting in an external .asm module, it's usually not worth even considering writing it in assembly. You can use intrinsic functions, but I see that mostly as a prototyping (or "enough extra speed without too much effort") tool, you can still do better register allocation by hand... if the algorithm is complex enough. But yes, it's a crapload of effort, and not very often worth it.

      And I'll easily admit that I'm not a hot-shot assembly programming guru, so it'd take me disproportionate amounts of time besting today's compilers. Still, they aren't magic, they operate on heuristics designed by humans, and they can't generate 'perfect' code (optimization is NP-hard, and programs are frigging huge :)).

      --
      Coffee-driven development.
  30. Re:Obligatory by masternerdguy · · Score: 1

    Only GB?

    --
    To offset political mods, replace Flamebait with Insightful.
  31. Eh is this really an issue? by nhat11 · · Score: 1

    Like said here before, just compile it on a 64-bit system. Why stick on 32-bit?

    1. Re:Eh is this really an issue? by WillAffleckUW · · Score: 1

      Actually, my copy of Firefox crashed this morning on my 6 core Win7 machine.

      Hey, I know!

      Let's run it at Ring Zero - the Blue Ring of Death!

      --
      -- Tigger warning: This post may contain tiggers! --
    2. Re:Eh is this really an issue? by arkane1234 · · Score: 1

      Because that knocks a huge chunk of the consumer market out. Any other questions?

      --
      -- This space for lease, low setup fee, inquire within!
    3. Re:Eh is this really an issue? by Anonymous Coward · · Score: 0

      The executable would still be 32bit and run on 32bit Windows. It would simply be compiled/linked on a 64bit system but targeted for 32bit.

      If you're already aware of that then you seem to think a lot of people build their own Firefox executables from the source code? If so how many consumers (I assume you mean non-developers) compile their own Firefox builds? 0?
      How many developers do not run 64-bit systems? Not many?

      So answering both of those questions means only a small group of people will have issues with requiring a 64bit system to compile 32bit firefox.

    4. Re:Eh is this really an issue? by nhat11 · · Score: 1

      No it doesn't. This is a programmer's issue and doesn't affect the consumer directly at all. What consumer look at code then compile code?

  32. Linker? by menkhaura · · Score: 1

    What about fixing TF compiler/linker?

    --
    Stupidity is an equal opportunity striker.
    Fellow slashdotter Bill Dog
    1. Re:Linker? by blueg3 · · Score: 1

      That's definitely the solution, but not one that's available to Mozilla developers.

    2. Re:Linker? by BZ · · Score: 1

      File a bug on Microsoft to do that? Might happen.... sometime.

    3. Re:Linker? by shutdown+-p+now · · Score: 1

      This is the best place to ask for such things at the moment - unlike Connect, which requires LiveID, it lets you login with Google or Facebook accounts, so it's easier to gather votes.

  33. Too big to fail? by aikodude · · Score: 1

    I say we take off and nuke the site from orbit. It's the only way to be sure.

  34. FIREFOX IS BLOATED!!! by Anonymous Coward · · Score: 1

    Hey, know what else is too big to link with PGO on 32-bit Windows? Chrome! http://code.google.com/p/chromium/issues/detail?id=21932

  35. No PAE?! by DrYak · · Score: 1

    You mean some people still run a 32-bit OS?

    Not only that, but apparently Windows cannot use PAE - Physical Address Extension to address more than 4GB (according to the WP entry, PAE is supported, but the 4GB limit is still enforced - due to some obscure licensing problems).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:No PAE?! by cjb909 · · Score: 3, Insightful

      You mean some people still run a 32-bit OS?

      Not only that, but apparently Windows cannot use PAE - Physical Address Extension to address more than 4GB (according to the WP entry, PAE is supported, but the 4GB limit is still enforced - due to some obscure licensing problems).

      The problem is with virtual memory. A process still uses 32bit memory addresses to reference memory. This means that a process can still only address 4GB of memory. If you were to use more than 32bit memory addresses to get more memory, suddenly you aren't a 32-bit OS anymore.

      PAE only helps the OS be able to manage more than 4GB of memory.

    2. Re:No PAE?! by petermgreen · · Score: 4, Informative

      Not only that, but apparently Windows cannot use PAE - Physical Address Extension [wikipedia.org] to address more than 4GB

      Sure it can, you just have to either pay for a server edition or hack the restriction out of the kernel.

      But more physical address space doesn't help here, the problem here is virtual address space for running an effective but memory hungry profile guided whole program optimisation process. Nromally 32-bit windows has a maximum of 2GB virtual memory per process (and this is one big process we are dealing with). This can be increased to 3GB at the cost of reducing the kernel address space to 1GB.

      Going to a 64-bit OS (which allows 4GB of virtual address space for 32-bit processes) will buy them a little bit of time but it's not a long term soloution. Really they need a 64 to 32 cross toolchain (which according to other posts here MS do not offer) if they want to keep using profile guided optimisation as the codebase grows.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    3. Re:No PAE?! by BitZtream · · Score: 1, Insightful

      Windows most certainly has no problem using PAE, I've been using it for 10+ years. The idiot quoting Wikipedia didn't bother to read the next sentence which refers to Address Windowing Extensions ... which all 32 bit apps to access more than 4gigs of ram on Windows. Other OSes are no different, if you think they are its because you don't understand PAE and how it works.

      But more physical address space doesn't help here, the problem here is virtual address space for running an effective but memory hungry profile guided whole program optimisation process. Nromally 32-bit windows has a maximum of 2GB virtual memory per process (and this is one big process we are dealing with). This can be increased to 3GB at the cost of reducing the kernel address space to 1GB.

      You do not understand what PAE is.

      PAE is an effective way to access far more than 4 GB of memory on a 32 bit system. Its another form of paging (NOT SWAPPING). Its essentially FAR pointers from the old days.

      Going to a 64-bit OS (which allows 4GB of virtual address space for 32-bit processes)

      No, it doesn't. The 32 bit processes are still constrained as they were before as the kernel still has to present itself to the application by being in the same place it was on a true 32 bit machine. 32 bit apps can't magically address more than 4GB of memory just because the OS can, so the kernel still presents itself in that 4GB, which means ... you still get at best 3GB of usable space per application, even though you can have many more applications all accessing ram that totals more than 4GB.

      What they really need to do is address the fact that their WEB BROWSER CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      Let me repeat that for you.

      A WEB BROWSER THAT CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      You can compile the ENTIRE OS without a problem ... but a web browser ... not so much ...

      And yet Mozilla and the other Firefox fanboys still fail to see the writing on the wall.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    4. Re:No PAE?! by strikethree · · Score: 1

      or you know, they could just give up on 32 bit. i have been waiting a decade for 64 bit in the regular world. let the past go. 32 bit is like using 2 digit year codes.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    5. Re:No PAE?! by snowgirl · · Score: 1

      You can compile the ENTIRE OS without a problem ... but a web browser ... not so much ...

      Windows does not compile as one single monolithic process. Also, it does not compile to a single executable, which is then profile-guided optimized. It wouldn't surprise me at all that Firefox's build process required more working memory at its memory-constrained bottleneck than the Windows build process does.

      --
      WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
    6. Re:No PAE?! by snemarch · · Score: 1

      Not just licensing, but also driver compatibility issues - a lot of fscktards apparently have this idea that "hey, we're running a 32bit OS, so let's ignore the upper 32 bits of the PHYSICAL_ADDRESS structures"... which is plain old stupid. The first version of XP supported "4GB of physical ram" (and it's indeed licensing that caused it to not support more) - with SP1, it was reduced to "the lower 4GB of physical RAM" because of aforementioned fscktarded 3rd-party driver developers.

      On top of that, it's not particularly funny to program for PAE modes, as you still only have a 4GB address space, so you have to shift a 'window' around to point at physical memory. It's extra code, and shifting the 'window' is a costly operation, so it's a fair amount of work to get right. It's really mostly useful for stuff like database buffer memory, not generic data structures.

      --
      Coffee-driven development.
    7. Re:No PAE?! by msobkow · · Score: 2

      Microsoft doesn't offer a 64-bit compiler that cross-compiles to 32-bit. Fine, I can accept that. But there are other compilers one could use:

      http://software.intel.com/en-us/articles/intel-compilers/ is still reputed to produce the tightest, fastest WinXX executables available.

      http://www.embarcadero.com/products/cbuilder (formerly Borland C++)

      The venerable http://gcc.gnu.org/

      http://www.ghs.com/products/optimizingC++EC++Compilers.html (though it looks like GHC might no longer target Windows at all)

      --
      I do not fail; I succeed at finding out what does not work.
    8. Re:No PAE?! by thegarbz · · Score: 1

      You're confusing two different things. Read the full wikipedia entry. Yes there's licensing issues for windows above 4GB, but even moving to Windows Server Datacentre your application space will still be limited. Sure you can put 128GB into the system and run your application an additional 32 times in parallel, but each individual application still can not access more than 4GB of virtual memory.

      To do that they need to start getting into very nasty and complicated Windows Address Extensions support. The application itself needs to be specifically written to use it as well. The same goes for Unix based applications.

    9. Re:No PAE?! by toddestan · · Score: 1

      If I had to guess, you've probably got at least 50% of Windows users still on 32 bit operating systems. That's a huge portion of the user base. On the other hand, it is Firefox we're talking about here.

    10. Re:No PAE?! by ardor · · Score: 1

      A WEB BROWSER THAT CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      Indeed. This is totally insane. You'd expect some heavy-duty stuff like CGI rendering, finite element simulations, medical imaging (voxel grids), video authoring to be the kind of software that requires 64 bit. And then somebody mentions that we also need the 64 bit machine for building firefox.

      Sheesh, I can even build an entire toolchain plus rootfs using something like OpenEmbedded on a 32 bit box, which gives me a complete system for an embedded device, plus user interfaces, video codecs, player software, ...

      --
      This sig does not contain any SCO code.
    11. Re:No PAE?! by Acaeris · · Score: 1

      They can compile it in less than 3Gb of RAM, just not with PGO. Chrome can't compile with PGO either and it's highly unlikely that many other large scale applications use PGO.

    12. Re:No PAE?! by Anonymous Coward · · Score: 0

      Feel free to try.

      I've actually tried using Borland and Intel's compilers (and Digital Mars, and OpenWatcom) on Mozilla at times.

      People do occasionally use gcc, but its generated code and behavior is generally inferior to Microsoft's compiler. There was a comment somewhere above about it taking more memory for LTO than msvc. As you could probably get a 64bit to 32bit gcc LTO for windows, it might work. But if the results are worse than MSVC without LTO, then it definitely wouldn't be worth it ** I haven't tried, you're welcome to try. But expect to file bugs against both GCC and Mozilla, and you'll probably need to send patches for one or both just to get things building (and not crashing, and not failing test cases).

  36. How long would building on a 64 bit system last .. by scharkalvin · · Score: 1

    until the shit overflowed the container?

    The reason building on a 64 bit machine works is because the 64 bit OS can run a 32 bit application while giving it 4gb of space to work in. But they are at 3GB now, how long before even THAT isn't enough? Note that the finished exe needs FAR less space to run in (thank god!).

  37. still a Big deal by OrangeTide · · Score: 1

    that operating system is compiled one component at a time.

    to be honest you can build it on a 4G system, it will just take a long time and you won't be able to do a parallel build without digging deep into swap.

    --
    “Common sense is not so common.” — Voltaire
  38. Too big? by Anonymous Coward · · Score: 0

    More like too bloated. This thing is becoming the new Netscape 4.0 "Communicator"

  39. Its the compiler, stupid. by DrYak · · Score: 5, Informative

    Or just, yknow, stop running a bloated resource hog of an INTERNET BROWSER.

    Read TFA agin. Oh, I know this is /.
    So read the summary again.

    it cannot be compiled with PGO on a 32-bit linker anymore, due to the virtual memory limitation of 3 GB

    It is the compiler which is having ressource problems. The profile-guided optimiser needs more than 3GB to be able to do its optimisations. And apparently, the Windows its running on can't do PAE to use more than 3GB neither.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Its the compiler, stupid. by cjb909 · · Score: 5, Informative

      It is the compiler which is having ressource problems. The profile-guided optimiser needs more than 3GB to be able to do its optimisations. And apparently, the Windows its running on can't do PAE to use more than 3GB neither.

      PAE allows 32-Bit computers to use more than 4GB of ram, but it doesn't allow Windows to assign more than 3GB to any single process.

    2. Re:Its the compiler, stupid. by petermgreen · · Score: 2

      More specifically windows requires non-overlapping kernel and user address spaces. So does a regular linux kernel.

      There were patches for linux ( http://lwn.net/Articles/39283/ ) that implemented a "4G/4G" system with independent user and kernel address spaces but afaict interest in them was largely lost as most newer systems became x64 capable . I doubt anything similar exists for windows.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    3. Re:Its the compiler, stupid. by snemarch · · Score: 1

      It's true that only server editions of Windows supports PAE(*), but it wouldn't really be that much of a help for general-purpose apps... the code required to utilize it is simply way too much bother to write for most classes of applications, and programmers have been lazy since leaving the horrible 16bit days :) (*): they've been running PAE since XP in order to use hardware no-execute, but not supporting MOAR MEMORYZ for licensing as well as driver compatibility reasons.

      --
      Coffee-driven development.
    4. Re:Its the compiler, stupid. by hairyfeet · · Score: 1

      The reason nothing like that exists for Windows is simple: drivers. Sorry i don't have the link ATM (waiting on the damned cableco, damned box runs and dies, runs and dies, will have to wait on the nxt run cycle to post this) but it was posted on several MSFT blogs when XP X64 came out that the reason that Win2K3 could run over 4Gb and XP couldn't was because the consumer drivers crapped themselves under PAE when over 4Gb of RAM was used. Since server vendors are a LOT smaller demographic and burning the customer there could kill a business servers got updated drivers quite quickly whereas most Windows consumer level crap was lucky if it got anything more than the driver on the disc. So in that case you can blame the OEMs. that was why to get hardware certified for Windows now you have to provide both 32bit AND 64bit, because otherwise it would be a mess.

      As for TFA? Firefox sucks sadly, and this is coming from someone who was a diehard FF fan and before that the Mozilla suite. I don't know what they did past 3.0.x but it really took a big old crap on the code. I'm typing this on a 1.8GHz Sempron i use as a nettop and with Comodo Dragon (or Opera, or QTWeb) it runs great. I can have multiple tabs, watch SD video, it runs nice. Since FF 4 FF has been completely unusable on this machine, it slams the CPU to redline on launch, slams it to red on launching a new tab, and give up watching ANY video as it'll be a slideshow. And may the Gods help you if you forget and leave FF open overnight as it'll suck up RAM like a wino at a free bar.

      I really hope they fix FF, as I miss NoScript, even though I think on my Win 7 machine its probably not needed thanks to Dragon being in low rights mode (which FF STILL doesn't support after 5 years already!) but as it is now I simply can't hand it out or recommend it to customers. Its too slow, bloated, power hogging, even on my brand new E-350 netbook I've found that FF shaves a good 40 minutes off the battery thanks to the CPU spiking. That is simply unacceptable and I'm frankly not surprised to see FF's userbase going down as they really have let the quality slip as of late IMHO.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:Its the compiler, stupid. by BlackSnake112 · · Score: 1

      The PAE switch worked better at install time then after the fact for me. XP 32bit ran odd with greater then 4GB with the PAE switch. Windows server 2003 32 bit ran better but would shudder at times. I used server 2003 as my gaming machine for a while. It was faster the XP on the same hardware. Getting a 64 bit OS has just mad things easier. Still server 2008 is faster then vista or win 7 on the same hardware for me in what I do. Server's file handling beats the desktop OS hands down. Then again is is supposed to be a server OS, so it should beat the desktops for file handling.

    6. Re:Its the compiler, stupid. by Skal+Tura · · Score: 1

      i had no problems on XP 64bit with drivers except for one ages old webcam and soundcard. Performance was waaaayyy better too.

      Even running on latest hardware, with latest gpu etc. XP 64bit worked very smoothly :)

      If you could backport win7 UI + usability enhancements i would prob still use XP 64bit for it being faster.

    7. Re:Its the compiler, stupid. by TheRaven64 · · Score: 1

      Yes it does, but it's horrible. You lose the flat address space and you have to use API calls to manually switch banks of memory in. Windows has been able to do this since the late '90s, but I don't know of any software that has actually made use of it.

      --
      I am TheRaven on Soylent News
    8. Re:Its the compiler, stupid. by yvesdandoy · · Score: 0

      PAE allows 32-Bit computers to use more than 4GB of ram, but it doesn't allow Windows to assign more than 3GB to any single process.

      you are ABSOLUTELLY RIGHT and that is THE only reason ... Windows 32 bit cannot allocate more than 3GB to a single process FULL STOP

    9. Re:Its the compiler, stupid. by hairyfeet · · Score: 1

      I have a nephew on XP X64 and I myself used it until Win 7 Beta and its a great OS. Of course its not really a consumer OS, its just WinServer 2K3 X64 with an XP skin which may explain why its built like a tank but I agree it was a good one. Protip: if you find something without a driver look for server 2K3 drivers, you'd be surprised how many things had server 2K3 drivers.

      I don't think that XP X64 is faster than Win 7, it just does less. its like the difference between a stripped down model a VS a fully loaded Camaro 2012, sure the Model A is gonna be faster, and freeze your balls off with not having a heater, or top, or a windshield that is made of safety glass. the new ride has all that and GPS, kicking stereo, you just get more stuff. Win 7 has jumplists, breadcrumbs, better memory management, readyboost and superfetch, its just doing a HELL of a lot more than XP X64.

      I could strip XP X64 down to something like 6 processes and a good 90% of the features remained functional simply because there wasn't much to it. The lowest I seem to be able to strip Win 7 is about 20 without losing features I like. If you want to see how low you can strip Win 7 if you don't care about features grab yourself a copy of "Win 7 Tiny Edition" and load it on something. They have managed to strip it so small it runs nicely on 256Mb of RAM and a 1GHz CPU, but you lose a lot in the translation, no superfetch or readyboost, no Aero beyond the see through taskbar, no WMC or sharing, you really have to gut it to get it THAT small.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    10. Re:Its the compiler, stupid. by hardwarefreak · · Score: 1

      PAE allows 32-Bit computers to use more than 4GB of ram, but it doesn't allow Windows to assign more than 3GB to any single process.

      Correct. But enabling Address Windowing Extensions (AWE) atop PAE allows applications built with AWE support to access up to 64GB of RAM on 32 bit Windows 2003/2008 Enterprise or Datacenter systems. However, given the cost of these server editions of Windows, it is obviously much smarter to simply do the builds on 64bit Windows XP/Vista/7 selecting a 32bit Windows target.

  40. That's doubly insane! by aglider · · Score: 2

    It's insane that a compiler, any compiler, needs 3+GB to "just" link a whatever big number of object files into an executable.
    It's insane that a single piece of software cannot be linked in a 32bit environment. That is, a Windows32 environment, as it can be linked into a 32bit Linux environment.
    How much insanity nowadays!

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:That's doubly insane! by Skapare · · Score: 1

      That's because today's linkers want to do it all in RAM. That means the executable file size PLUS all the information about all the libraries it's scanning, have to be together. Back in the day when mainframes first came out (32K was all that anyone would ever need), the linker worked on disk, reading and writing pieces of the executable it was building, only as needed. Of course back then, anything over 4K was bloat (except COBOL was allowed to go to 12K before being called bloatware). And we coded in assembly without all those millions of header defined symbols.

      There's a simple answer for FF. Just leave out some FUNctionality from the 32-bit version. That would help push people to get 64-bit platforms, and donate the 32-bit junk to those who still have 16-bit junk who can then pass that stuff on to the people with 8-bit junk.

      --
      now we need to go OSS in diesel cars
    2. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      It's insane that a compiler, any compiler, needs 3+GB to "just" link [wikipedia.org] a whatever big number of object files into an executable.

      Linkers haven't been "just linking" for a long time now. Please read about link-time code generation and profile-guided optimization - both are involved in this case.

    3. Re:That's doubly insane! by aglider · · Score: 1

      That's because today's linkers want to do it all in RAM.

      How much insanity nowadays!

      Doing everything in RAM is not just insane. It's EVILLY WRONG.
      Back storage (aka HDs/SSDs) is currently 100+ times larger than RAM and 100+ times "faster" than it used to be 10 years ago.
      And, anyway, GNU compiling and linking tools can do it with reasonably sized storage.

      But you chose that Windows OS, so you deserve such a mistake!

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    4. Re:That's doubly insane! by aglider · · Score: 1

      A number of other OSes can do it with a reasonably sized system. Which is not 3+GB RAM.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    5. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      I don't know if you've ever used VC++, but it's generally less memory-hungry than gcc.

      If you want to prove otherwise, Firefox source code is available - so go ahead, build it with 32-bit gcc with all the same optimizations and show them how.

    6. Re:That's doubly insane! by Anonymous Coward · · Score: 0

      Done. With and without PAE.
      Now what?

    7. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      Run the performance test suite to prove that it's not noticeably slower than Firefox built with VC.

      If it's not, then email Mozilla guys and tell them that you have a solution to their problem.

    8. Re:That's doubly insane! by Arker · · Score: 1

      That's because today's linkers want to do it all in RAM.

      It's more than that, though, because todays developer machines have many orders of magnitude more RAM than our old kilobyte-memory machines had in storage.

      Doing it all in RAM is very poor design as well, of course. As much data as possible should always be kept in a generic storage function so that the OS can use the various levels of storage from register to persistent storage intelligently - keeping more in RAM when more RAM is available and intelligently paging less-used stuff out when it is not.

      But the code bloat is real and undeniable on its own, and it's primarily a predictable result of the ever-increasing abstraction levels, and reliance on library code, by application programmers over the years. That in turn has been enabled by the overabundance of resources another commenter mentions, in combination with commercial logic (MS and the hardware manufacturers alike have a vested interest in getting people to replace old machines with new.)

      Higher level languages and library code enable quicker prototyping, and in the commercial world time to market can be a major issue. And there are definitely advantages to it in other ways - fixing a bug in a dozen different programs by updating a library is a neat trick. But the cost is very real in terms of code bloat. Featuritis and various marketing requirements add to the final bill as well.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  41. Re:Eg? by Anonymous Coward · · Score: 0

    so long as you're still building and distributing a 32-bit version?

    Microsoft's 32 bit linker is only available as a 32 bit application for the version of MSVC they're using.

    Newer versions of MSVC produce executables that cannot be run on windows 2000.

  42. Hang on.. by fireylord · · Score: 1, Troll

    So the codebase is once more becoming bloated, in fact so bloated that they cant compile it in 3 gigabytes of address space, and their long term solution is to compile it in an enrivonment that allows more address space??? Instead of, maybe, getting the code base down to a non bloaty non total total disaster area?? Looks like this is one more confirmation that Mozilla have lost the plot with Firefox.

  43. Modularization by phorm · · Score: 1

    I wonder how much of that can be modularized a little better.
    Yes, almost every does use JavaScript, but couldn't components such as JS be included as a module from the main engine?

    1. Re:Modularization by gl4ss · · Score: 1

      with ff it seems they went to optimize startup time by linking everything in, instead of loading dynamically.

      shitty metrics used for dev, shit methods. result: I want phoenix back!

      --
      world was created 5 seconds before this post as it is.
    2. Re:Modularization by cratermoon · · Score: 1

      Remember when everyone complained about how such-and-such browser was such a load of crap because it took *forever* to start up? Now we have browsers that start very rapidly, so everyone is happy, right?

    3. Re:Modularization by Anonymous Coward · · Score: 0

      [filter error, please use fewer junk characters?!]

      You could actually look instead of wondering...

      Directory of C:\Program Files (x86)\Nightly
      19,400 AccessibleMarshal.dll
      -- accessibility library, not commonly loaded, therefore it's a module
      125,896 crashreporter.exe
      -- crash reporter, hopefully not commonly loaded, it's a separate app
      2,106,216 D3DCompiler_43.dll
      -- WebGL direct 3d compiler, not always loaded (depends on whether your system supports direct 3d), hence it's a module
      1,998,168 d3dx9_43.dll
      -- WebGL direct 3d direct x 9 component, you might not be using direct x9, hence it's a module
      924,616 firefox.exe
      -- firefox, well, you need an application somewhere, it's also tiny and mostly a stub
      269,256 freebl3.dll
      -- crypto module, partially separate for signing reasons and because the team that owns it uses the library outside of firefox space and wants consistency / plugability
      97,224 libEGL.dll
      -- (webgl related) EGL, not always loaded, blah
      441,288 libGLESv2.dll
      -- (webgl related) GLES2, might not load if your system isn't GLES2 friendly, library
      16,328 mozalloc.dll
      -- this is a trick to change how malloc() and free() and friends work, it needs to be a library so it can shoehorn in early (like ld_preload)
      1,952,712 mozjs.dll
      -- this is the JS Engine, that you were wondering if it could be a library. SURPRISE. IT IS! -- you could have looked, oh well
      818,120 mozsqlite3.dll
      -- this is SQLite3, it's a third party library
      43,976 mozutils.dll
      -- hopefully stuff which is rarely needed, hence a library (i could be wrong, and i'm lazy)
      479,232 msvcm80.dll
      -- microsoft vc runtime of sort, this is a microsoft library and you aren't allowed to bundle it (and most of the other libraries probably link to it...)
      548,864 msvcp80.dll
      -- microsoft vc runtime of sort, this is a microsoft library and you aren't allowed to bundle it (and most of the other libraries probably link to it...)
      626,688 msvcr80.dll
      -- microsoft vc runtime of sort, this is a microsoft library and you aren't allowed to bundle it (and most of the other libraries probably link to it...)
      187,336 nspr4.dll
      -- this holds netscape threading primitives and other primitives, to properly handle threads it needs to be a library on windows so that it can hook thread_attach and such
      646,088 nss3.dll
      -- this is netscape crypto services, see freebl
      371,656 nssckbi.dll
      -- this is netscape certificate database, see freebl
      109,512 nssdbm3.dll
      -- this is a database library (like sleepycat or sqlite), see freebl
      105,416 nssutil3.dll
      -- this is a crypto utilities library, see freebl
      7,604,026 omni.ja
      -- this is the firefox ui, including javascript components, it used to be .jar, but microsoft does something magically different for .jar files, so the file name went on a diet. jar files are basically zip files, so you can examine this with your favorite .zip tool
      22,472 plc4.dll
      -- see nspr4 and freebl descriptions
      20,936 plds4.dll
      -- see nspr4 and freebl descriptions
      16,840 plugin-container.exe
      -- this is what hosts plugins (like flash), it's another process
      105,416 smime3.dll
      -- this is another crypto library, see freebl
      170,952 softokn3.dll
      -- this is another crypto library, it manages your certificates, see freebl
      158,664 ssl3.dll
      -- this is another crypto library, see freebl
      269,256 updater.exe
      -- this is the updater application, eventually it might be a service, and it needs to be separate from everything else so it can update everything else...
      19,912 xpcom.dll
      -- this has public exports so that third party components can link against it, you don't want them linking against the next library
      12/15/2011 10:55 AM 15,879,112 xul.dll
      -- this is the library we're actually talking about, it isn't the only game in town, and it doesn't contain the code for any of the things above, because well, they're separate module

    4. Re:Modularization by phorm · · Score: 1

      My firefox is actually quite slow to startup, especially on older machines, so I'm not sure where the improvement is suppose to lie there.

  44. In the old days nobody needed more than 8 bits by WillAffleckUW · · Score: 1

    Eight bits, I tell you.

    And we pushed the registers ourselves!

    Lazy coders ...

    --
    -- Tigger warning: This post may contain tiggers! --
    1. Re:In the old days nobody needed more than 8 bits by bytesex · · Score: 1

      You had registers? Luxury! We had one one-bit register and we had to remember its state.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
    2. Re:In the old days nobody needed more than 8 bits by WillAffleckUW · · Score: 1

      You had registers? Luxury! We had one one-bit register and we had to remember its state.

      Well, I lived in a province of Canada back then, so remembering the state of the register was pretty hard to do. Was it 48 or 50, never could remember.

      --
      -- Tigger warning: This post may contain tiggers! --
  45. Linux PAE by DrYak · · Score: 1

    Not only, but most distribution of Linux (although not the next Ubuntu, apparently) do support PAE on their 32bits variants, and can thus use more than 4GB virtual space.

    So GCC *could* use 6GB on a 32bits machine, even if its more than 2GB.

    Whereas Visual Studio is stuck on 3GB. So you cannot compile with it on a 32bits machine.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Linux PAE by EvanED · · Score: 3, Informative

      You need to go re-read your source on PAE (or tell them to reread their source).

      PAE does not increase the memory space available to a single process, so your statement that "So GCC *could* use 6GB on a 32bits machine" is absolutely false. What PAE allows is multiple processes to, in total, take more than 4 GB. (So you could have a 32-bit machine with 6 GB of RAM and have, e.g., two GCC processes, each taking 3 GB with no paging.)

    2. Re:Linux PAE by EvanED · · Score: 1

      ..your statement that "So GCC *could* use 6GB on a 32bits machine" is absolutely false...

      OK, there is one qualification to this statement, which is that you have to stick to a flat memory model for it to hold. By my understanding, if you could split GCC somehow and access different places in memory across segments, you might be able to break the 4 GB virtual address space barrier.

    3. Re:Linux PAE by BitZtream · · Score: 1

      On Windows, PAE + the combination of AWE (Addressing Window Extensions) allow a 32 bit process to access more than 4GB of ram indirectly, much like FAR pointers from yesteryear.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    4. Re:Linux PAE by simcop2387 · · Score: 1

      I believe that you are right, that you could do this, but it would end up requiring a different ABI in all respects. You'd either need far pointers or wide ones on the host which I don't know of any systems supporting easily, aside from DOS.

    5. Re:Linux PAE by EvanED · · Score: 1

      So while I'll admit I wasn't familiar with AWE before your post (well, it sounds vaguely familiar, but that's all), It sounds more like overlays to me. Still sounds like it's something the program would have to be explicitly written for.

  46. Too funny reading these comments by caseih · · Score: 5, Insightful

    Folks are crawling all over each other to show how ignorant they are. "I ditched firefox for Chrome cause it's lighter!" only to ignore the fact that Chrome also has the same problem with the PGO thing running out of RAM so they don't even bother with trying those optimizations anymore. "Geez Firefox needs more RAM than the kernel to compile? Something's wrong!" Yes if the Linux kernel was built with PGO on VS 32-bit it probably would run out of RAM there too. Then there's the guy that claims this PGO problem is evidence that the Firefox devs need to go back to remedial school. I'm sure he could do it far better (and avoid the PGO linking optimization running out of memory too!).

    Hilarious reading. At least I choose to laugh rather than cry at people's inability to read and understand the issues here.

    1. Re:Too funny reading these comments by ledow · · Score: 3, Interesting

      I think you miss the subtext that some of us have. If you HAVE to enable PGO in order to get a decent speed out of your binary in the first place (and that's the ONLY way you think you get that increase), then your code isn't that great in the first place (i.e. you are using lots of inefficient methods on the most-used paths of your code).

      The problem isn't DIRECTLY related to the size/quality of the codebase but the fact that they don't even CONSIDER turning off PGO because of the performance drop means they have no idea how to tune the underlying code without using PGO (and PGO-optimised code will NOT necessarily result in the best possible code for any particular user at all!)

    2. Re:Too funny reading these comments by shutdown+-p+now · · Score: 1

      I don't see why the implication here is that their code is so slow that they have to enable PGO. The problem is that they have already shipped with PGO enabled, and so, if they disable it, they will take an immediate performance hit, that will be big enough to notice, and pretty hard to catch up with (general estimates for PGO effectiveness are somewhere about 10%, though it obviously depends a lot on the product).

      And, no, manual optimization does not reduce the need for PGO - the latter is not a workaround for bad code, though it will speed it up just the same. Writing good code hand-optimized does not reduce the effectiveness of PGO (unless you write it directly in assembler).

    3. Re:Too funny reading these comments by byuu · · Score: 1

      ... wow. The reason PGO is so nice is because it reorders your human-readable code into something faster.

      Assume a switch with eight possible cases, and non-linear indices that do not allow for a simple jump table optimization. Two of them may be vastly more common than the other six, and PGO can take them out of the switch, or reorder them to the top. You can also do this by hand, but it will make your code messier and harder to maintain.

      Or take the frequency of code execution. Two routines may execute a lot, so they are stuck together in memory to aid in caching. But it may make no sense to have these two functions anywhere near each other ... say they are from two entirely different classes.

      PGO also frequently decides when to inline things or when not to, and even telling the compiler when to inline isn't guaranteed. You'd have to resort to compiler-specific attributes (always_inline/__forceinline.) And the list goes on and on.

      Taking your argument to the extreme, hand-writing your code in pure assembler can get you even more speed, and now you don't even need -O3 for decent speed. But there's a reason people use high-level languages. PGO is just one more tool to make your code more stable and easier to maintain.

    4. Re:Too funny reading these comments by jlebar · · Score: 1

      but the fact that they don't even CONSIDER turning off PGO because of the performance drop means they have no idea how to tune the underlying code without using PGO (and PGO-optimised code will NOT necessarily result in the best possible code for any particular user at all!)

      We accept patches.

  47. Re:Eg? by BZ · · Score: 4, Insightful

    > 1) What the hell are you doing with your code to be
    > that large?

    How large? It's a few million lines of C++ code, just like every other browser. What it's doing is implementing all the stuff people want to do on the web.

    > 2) What the fuck is your linker doing to do that?

    Please read up on link-time code generation.

    > 3) Why the hell didn't you see this coming and
    > prune LONG before you hit the 3Gb limit if you
    > already hit the 2Gb limit once already?

    This is an excellent question that I too am asking.

    > 4) What's the problem with compiling on 64-bit
    > computers only,

    None, except updating a large build farm from 32-bit to 64-bit can't happen overnight. Needs some staging, testing, etc.

    > You're honestly telling me that Firefox is more
    > complicated and needs more memory to compile
    > than, say, LibreOffice?

    Have you tried to compile LibreOffice with LTO and PGO turned on?

    > The Linux kernel?

    Quite possibly. The kernel is C, not C++; C++ is a lot more of a pain for compilers to deal with.

    The whole point of LTO is that you optimize your entire binary as a single object, no matter how your code is structured. It requires more memory, but can produce faster code because the compiler is able to make optimizations it can't make otherwise.

    Whether that's "crappy" is a matter of your priorities, of course. 10-25% performance improvement tends to be a high priority for web browsers, though perhaps not for KDE or LibreOffice.

  48. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You do realize that Chrome had this same issue a few years back, right?

    Maybe you need to do some reading about how to engineer software and about the specific compiler options being used here and why they might cause a lot of memory usage?

  49. Re:How long would building on a 64 bit system last by caseih · · Score: 1

    From an address space POV, 64-bits vs 32-bits is 4294967296 times greater. The short answer is, not in your lifetime will it overflow the container. That said PGO looks to have reached the limit of it's current incarnation. Eventually it will just get too slow to be workable. If it really is valuable as an optimization tool, MS will have to fix it, true enough.

  50. An open source project got popular by Beelzebud · · Score: 1

    Quick, spread some FUD!

  51. Sigularity or L4 as a browser? by mdmkolbe · · Score: 1

    I wonder if you could borrow ideas from operating systems like micro-kernels (e.g. L4) or software isolated processes (e.g. Sigularity)? It's not a project that I have the time or experience for, but I'd be interested to see the results if someone else tried.

    1. Re:Sigularity or L4 as a browser? by atisss · · Score: 1

      Sure, as soon as GNU Mach is ready, the FF devs will get inspired by it :)

  52. Re:Eg? by compro01 · · Score: 1

    1/2. Link time Profile Guided Optimization. Eats memory like crazy, but nets you a big performance boost on the resulting code.
    3. Dunno.
    4. Problem is that the 64-bit linker won't output a 32-bit executable.

    --
    upon the advice of my lawyer, i have no sig at this time
  53. NOOOOOooooo!!!!! by Anonymous Coward · · Score: 0

    ...which was worked around by adding a /3GB switch to the Windows build servers

    why, oh why, did they not think to add a /4GB switch? did they learn nothing from the Y2K??? times like this make me sad for humanity :(

  54. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 0

    Poor dev is poor dev, so I call it like I see it. I will quote myself in response, because clearly, you're being selectively literate. Most memory issues are the direct result of poor programming techniques and excessive code bloat. Any seasoned veteran will tell you this.

    But the point at which THAT much RAM isn't enough to build a browser, then as a dev, you need to turn off the computer and relearn how to engineer software by taking appropriate remedial courses.

    relearn how to engineer software by taking appropriate remedial courses.

  55. opensource vs. closed source by DrYak · · Score: 1

    Seems ironic that the FF team is using stuff from seven years and two major versions ago while at the same time bemoaning that anybody might want to keep a version of Firefox for more then 6 weeks

    Installing a new version of Firefox is quite trivial :
    - it's opensource, meaning that it's available for free
    - since version 4, all new version are only minor improvement. (technically, it should be some subversions of 3.7.x, had they kept the same versionning scheme as before). No big architectural change since then. Version 9 might not be identical to version 4, but no big jump in between. Each new release brings only minor changes.

    Installing a new version of Vistual Studio is not :
    - it's commercial, so it costs money to get it.
    - Among critical feature changes: it completely drops suipport for some older OSes. So if Mozilla moves to a newer compiler, they need to drop support for some chunk of their userbase. How big this chunk is will influence this decision.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:opensource vs. closed source by BitZtream · · Score: 1

      Among critical feature changes: it completely drops suipport for some older OSes. So if Mozilla moves to a newer compiler, they need to drop support for some chunk of their userbase. How big this chunk is will influence this decision.

      No, it really doesn't, at least not anytime recently.

      I have absolutely 0 problem building apps that will run on Windows 95 in VS 2010. It just requires knowing WTF you're doing and understanding your tools. I doubt it, but its not out of the question that I might be able to pull off win3.1+Win32s support as well with some effort.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  56. LTO with GPO ? by DrYak · · Score: 1

    What's VC++ doing for Firefox that can't be done any other way?

    YUP, indeed ?

    Apparently the latest version of GCC (4.6.2) can also do Link-Time Optimisations and Profile-Guided Optimisations. This version which is also available as part of the ming toolchain, and it is even possible to cross compile from Linux 64 host to Win32 target with Ming.

    Is the performance difference between a VS2005-compiled version and a ming-gcc 4.6.2 compiled one *that* much big?!

    Or is some feature of VS critical (like direct support for COM objects in the compiler, instead of having to rely on some external library/code to support them) ?

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:LTO with GPO ? by snemarch · · Score: 1

      Also, you don't understand what COM is.

      In fairness, VC++ does have some baked-in COM magic - that's probably what DrYak was referring to.

      --
      Coffee-driven development.
  57. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You _really_ need to actually go read about the issue here.

    This is about needing that much ram with a particular set of very memory-hungry compiler options. You can build the browser in much less ram than that if you don't enable those particular compiler optimizations.

    So as far being selectively literate... are you sure that's not you?

  58. Re:Obligatory by Skapare · · Score: 0

    My Altair 8080 only has 2K of RAM, you insensitive clod!

    --
    now we need to go OSS in diesel cars
  59. The link element by tepples · · Score: 1

    We already have perfectly good Operating Systems, but now everyone is trying to make the browser into another operating system.

    Mainstream operating systems aren't "perfectly good" if they lack a sandbox in which to run untrusted CPU-independent code. The closest thing we have to that is the JavaScript, Flash, and Java applet environments. With what would you replace them while retaining the cross-platform and CPU-independent characteristics?

    What would you do if tomorrow there would be no search engine any more (no Bing, no Yahoo, no Google, no what ever you using)?

    I think I understand the sentiment of your rhetorical question. But in your proposed replacement for the web, what mechanism would you provide for finding information?

    But why there is no author tag

    My best guess is because you haven't looked up <link rev="made"> in HTML4 or <link rel="author"> in HTML5.

    no table-of-content-tag

    Are you talking about site-wide TOCs? Use <link rel="up">. Or are you talking about TOCs within a document? If so, look for a big unordered or ordered list each of whose elements has a document-relative fragment link <a href="#...">, especially those linking to the IDs of heading elements (<h1>, <h2>, and the like).

    no index-tag

    <link rel="archives">

    We already tried that with Flash, Java Applets, SL. So now we try it again, but this time it will be "magical" because it's all Html5.

    What's magical about HTML5 compared to Flash, Java, and Silverlight is multiple competitive implementations. For years, prior to the Open Screen Project, Macromedia and Adobe had been using license agreements to stifle work on a competitive SWF player.

    1. Re:The link element by devent · · Score: 1

      Why do we need a "sandbox" anyway? For years the application were running perfectly fine on the operation systems we current have. The viruses are only the result of the lack of proper updates of the system and applications (and also some idiotic design decisions like Auto-Run, hide file extensions, login-always-as-admin, etc).

      The link-tag works only for the whole document. What I'm talking about are meta-tags that adds to a web page some semantics. Like the author, the content topic, etc. What we current have are only tags for document style and structure.

      For example, my whole comment could be enclosed in a author="devent" tag, a content="comment" tag and a topic="Firefox Too Big To Link On..." tag. But we now have only 10 div tags with some ids assign to it, so the CSS can properly style the page.

      I think search for new content must be an integral part of the web. It should not rely on a third-party web page, but must be a core feature of the web. Just like name resolution is the core feature of DNS. Need to think more about it, I don't have a solution yet.

      For years Flash was pretty dominant in the web, like 99% of the browsers have Flash and if your browser or operating system not support Flash, nobody would use it. But what happened after years of dominance? Nothing at all, even Adobe now ditches Flash. Don't tell you can't build applications with Flash, that are pretty good, or that Flash is a bad technology. Flash is a super technology and you can do with it whatever you like. But after years and years of dominance it's now dying, and it was not used for anything more then annoying ads, file upload, a flash game and some promotion web sites (like for games or film sites).

      But now because you can draw some pixels in a CSS canvas, everyone thinks it will transform the web in some magical way. Sure, the new Html5 features will be used, and they are pretty good. But the web will stay in the same state as it was decades ego. That is, isolated web pages with content, without any semantics.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  60. win2k gaming toolset by roguegramma · · Score: 1

    The KERNEL32.DLL wrapper provided by OldBoy2k and OldCigarette also makes executables with EncodePointer/DecodePointer work in windows 2000.

    --
    Hey don't blame me, IANAB
  61. No cross compile by DrYak · · Score: 1

    Apparently the linker outputting 32bits executable is a 32bit application.

    There is no cross-linked for 32 application running in 64 bits in VS2005

    To keep with your metaphore, it would be as if the only way to link an iDevice executable would be to run a iDevice-linker on the iOS simulator application, instead of running the linker that came with OS X Lion.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  62. Why not cross-compile on 64 bit? by gweihir · · Score: 1

    If I understand the article correctly, this is only about the build-process. Why not cross-compile on 64 bit? Or is this another one of the (numerous and stupid) limitations of Windows?

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Why not cross-compile on 64 bit? by Anonymous Coward · · Score: 0

      That is one of the solutions under consideration, though that takes more time to happen than the temporary workarounds they have in place at the moment to unbreak the tree and allow checkins again. Even then it only bumps the limit up a gig to 4GB, as there is no 64->32 cross compiler available with MSVC.

      Of course, one of the unmentioned solutions is to start phasing out the 32 bit build of Firefox and concentrate on the 64 bit version... Though they feel they have too many users who won't be able to run 64 bit binaries.

      (I'm an interested observer in Mozilla, though I've never been employed to work on Mozilla itself.)

  63. Size of build != Size of executable by pslam · · Score: 2

    This is basic stuff to anyone who actually maintains a build, but Slashdot hasn't been a forum mostly populated by engineers for a number of years, now.

    This appears to be due to link-time optimization blowing up the resident memory size of the linker, taking it past 3GB (which is already a non-standard hack the 32 bit build has had to do). Firefox is large, yes, but this has nothing to do with the final binary - which appears to be about 100MB total including all libraries in the Aurora builds.

    I used to routinely run out of 32 bit address space compiling executables for a 64MB embedded ARM platform. This was due to symbol bloat, not executable size (which was 8MB). I also ran out of space compiling for a DSP with 288KB of RAM and 1MB flash, but that was mostly piss poor tools (Tasking). In fact, doesn't Chrome and even the Android sources already require building on a 64 bit host?

    1. Re:Size of build != Size of executable by dreemernj · · Score: 2

      I think Android requires 64 bit. I think Chromium highly suggests 64 bit and it won't work with PGO. And those optimizations are where the FF devs are hitting the wall.

      I'm surprised FF could still build with PGO on 32bit Windows with the 3gb switch. It seems like the project is large enough and complicated enough that it should have had problems with this a while ago. I can only guess they've modularized the code quite a bit already to try and fight it.

      At least they can still use this toolchain on 64bit Windows and get 4gb of address space there. It should buy them some time. Hopefully, they'll get some breathing room and hold out until 64bit browsers for Windows are more common. The 64bit FF nightlies seem very quick and stable to me. I am looking forward to an official release of them. And, maybe after that, Windows will get 64bit Chrome and Opera as well.

      --
      1 (short ton / firkin) = 89.1432354 slugs / keg
    2. Re:Size of build != Size of executable by Anonymous Coward · · Score: 0

      > This is basic stuff to anyone who actually maintains a build, but Slashdot hasn't been a forum mostly populated by engineers for a number of years, now.

      You're not wrong. Technically oblivious articles like this are as depressing as the technically oblivious comments they provoke.

  64. Firefox will die by Anonymous Coward · · Score: 0

    Remember the day that number portability became the law and AT&T collapsed almost overnight as everyone fled to Verizon and other carriers? That's what's going to happen the day Chrome really supports AdBlock.

    1. Re:Firefox will die by JoeSchmoe007 · · Score: 1

      Can you elaborate? Chrome already supports AdBlock

  65. Development Community by ZombieBraintrust · · Score: 1

    The compiler part is an issue because Firefox is open source. They don't want to force the Firefox development community to upgrade to new computers.

  66. Reminds me of turkeys by Anonymous Coward · · Score: 0

    Turkeys raised for meat these days are genetically engineered to be huge beasts. They have grown so large over the years that they cannot even reproduce anymore. The turkeys must be artificially inseminated.
     
    Firefox, likewise, has grown too large for the host system and target system to be the same. Sounds like cross-breeding with a pheasant to me.
     
      Ok, I thought I was going somewhere with this. Would someone please care to assist with this analogy?

  67. Re:I know I'm pointing out the obvious here... by DeathFromSomewhere · · Score: 2

    Damn kids and their PGO giving double digit perf increases! Get off my lawn!

    --
    -1 overrated isn't the same thing as "I disagree".
  68. Screw Firefox, I'm Going Back to Emacs by Anonymous Coward · · Score: 0

    I like its operating system emulator and default plugin array better anyway. Its html parsing is better too, not that anybody needs that for browsing anymore.

  69. AC has this right. by rdebath · · Score: 1

    If Microsoft encountered this problem while compiling a windows component they just turned PGO off. End of problem.

  70. Not A Problem For VM Languages? by Anonymous Coward · · Score: 0

    Forgive my ignorance, but this wouldn't be an issues in languages that run in virtual machines right? Doesn't the JVM and whatever C# uses do such optimizations while the programming is running? It sounds like PGO takes profiles of the application running and tries to do similar optimizations on it.

  71. Why not modularize and use dynamic linking? by Theovon · · Score: 1

    My guess is that this is just a Visual Studio limitation, in terms of how much RAM their tools need to link an executable that, ultimately, will require much less memory to load and run.

    But what I'm wondering is why they don't switch to some dynamic linking? Modularize it into DLLs (or equivalent), so that each can be linked separately at compile time, and have all these modules pulled in at runtime. It really won't slow down loading much at all.

    The main objection would be that this is impossible because Firefox is much too spaghettified in terms of how different components communicate. Components would have to be rewritten so that they're always accessed through a simpler interface.

    1. Re:Why not modularize and use dynamic linking? by snemarch · · Score: 1

      But what I'm wondering is why they don't switch to some dynamic linking? Modularize it into DLLs (or equivalent), so that each can be linked separately at compile time, and have all these modules pulled in at runtime. It really won't slow down loading much at all.

      Except that they used to do that, and pulled a lot of code back into a monolithic xul.dll in order to improve load speed. Has to do with how the PE loader does on-demand page-in of executables, and how LTCG+PGO (apart from other optimizations) can order pages for execution locality.

      --
      Coffee-driven development.
  72. Fork it by Zoxed · · Score: 2

    I have an idea: why not fork Firefox and create a leaner/faster just-a-browser and cut out all the excess junk.
    And it could be named after some sort of animal or bird that comes out of ashes maybe ?

    1. Re:Fork it by Creepy+Crawler · · Score: 1

      I like that idea.

      Lets call it Flaming Chicken.

      bok bok BKOK!

      --
    2. Re:Fork it by wideBlueSkies · · Score: 1

      I remember FF1. Small, fast, lean. (I still have the 1.0 T-shirt too).

      We need to get to the point where we can merge the small footprint and agility of FF1 with the standards compliance of more modern FF . Also security stuff, keeping that is important.

      What causes the bloat and huge memory? Plug in support? Get rid of most of it.

      Seriously, you FF guys think that you're competing by adding in all the stuff and bumping up major version numbers every time. I'm just one guy... but let me tell you something. From the Mozilla days... before there was FF, I was using the browser to try to get away from IE and netscape. Thanks to FF I have been able to limit my use of IE to only a handful of times a year, since 2003. I've been off IE, and i laughed at Chrome.

      I've been a big advocate of your project over the years, and am responsible myself for at least 300 converts.

      But guess what... I'm stuck on 3.x and don't want to move. I've tried a couple of the new FF browsers and I hate huge memory usage and the new default GUI (why can't you keep MY settings??) ... oh and the crashing. I hate the crashing and freezing. Nothing says suck to me more than trying to page down a page in FF on a brand new 8 core CPU (16 GB ram), and having it jump and jolt like as if I were running XP on a 486. Chrome doesn't do that. For all the crap THEY have under the hood, it doesn't jump when I page.

      Didja get that last point? I haven't used another browser besides FF since 2003 - until this year .

      Good Job FF Team. Let me know when the browser is lean and fast again.

      --
      Huh?
  73. How about making a 64-bit Firefox by winspear · · Score: 1

    Its time to make the 64-bit Firefox a reality. It would take the same amount of work needed to make a 32-bit compile on the 64-bit OS. Go..Mozilla Go...

  74. Who the Frackin Cares by DalDei · · Score: 1

    This only effects builders of FF not users. If they need a 64 bit system to build their own code who the hell cares ? Lame++

    1. Re:Who the Frackin Cares by shish · · Score: 1

      Nerds care, and as much as the site has been trying to pander to the masses, nerds still appreciate "Slashdot: news for nerds" running the occasional nerdy story :P

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  75. Re:I know I'm pointing out the obvious here... by BitZtream · · Score: 1

    And that is supposed to make it OK?

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  76. So compile for x64 by Anonymous Coward · · Score: 0

    So compile for x64 - who uses x86 anymore :)

  77. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    Well... when two different programs trying to implement the same set of functionality have the same issue with the linker, you _could_ assume that both development teams are incompetent. Or you could assume that the functionality involved takes a lot of code and the linker doesn't scale well. Your choice.

  78. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  79. I run Windows 3.1 in my Firefox. by Anonymous Coward · · Score: 0

    http://www.michaelv.org/

    It's almost ready for 386-enhanced mode and Workgroups(tm)!

    It's not as good as Transgaming Wine with Norton Desktop For Windows, however. Norton Desktop should be on every flavor of Wine as it is that much better than anything that could come out of KDE & Gnome. Maybe it'll make an appearance as a minimal footprint with a DirectFB installation.

  80. Bias... by Bizzeh · · Score: 0

    This is something that just "will be fixed at some point" with firefox and everyone seems to accept it. If the same story came out about IE, all of slashdot would be in uproar about how ridiculous it is and how bloated the whole process and application must be to require so much memory to do such a simple task such as linking... Not sure why i read slashdot any more, seems to just say "its open source, so its just better, no matter what the feature base or the bugs or the lack of support, its just better" which is just blind idiocy...

  81. Re:How long would building on a 64 bit system last by shutdown+-p+now · · Score: 1

    GP is not talking about running a 64-bit process on a 64-bit OS. You can't do it with VS - it has a 64-bit compiler and linker, but they only output IA64 or amd64 binaries, and Mozilla needs an x86 binary.

    However, when you run a 32-bit linker on a 64-bit OS, you get an extra 1Gb of address space (because the OS doesn't need the top 1Gb for itself).

  82. Why not load the modules only when needed? by Anonymous Coward · · Score: 0

    Everything I visit requires NoScript.

    Don't need Flash and PDF and DRM modules loaded at the moment but they are there already default.

    FireFox is easily replaced by OffByOne browser as soon as someone creates a cross-over plugin to extend it's engine to export engines of Javascript and Plug-ins & Add-ons to 3rd-party programs.

  83. Works for me: by igomaniac · · Score: 1

    hello.c:

    #include
    #include

    int main(int argc, char *argv[])
    {
        printf("Hello world!\n");
        return EXIT_SUCCESS;
    }

    hello.bat:

    @ECHO OFF
    SETLOCAL
    CALL "%VS80COMNTOOLS%..\..\vc\vcvarsall.bat" x86
    cl /MT /c hello.c
    ENDLOCAL
    SETLOCAL
    CALL "%VS80COMNTOOLS%..\..\vc\vcvarsall.bat" amd64
    link /MACHINE:x86 /LIBPATH:"%VCINSTALLDIR%\lib" libcmt.lib hello.obj
    ENDLOCAL

    output:

    C:\Project>hello.bat
    Setting environment for using Microsoft Visual Studio 2005 x86 tools.
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

    Copyright (C) Microsoft Corporation. All rights reserved.

    hello.c
    Setting environment for using Microsoft Visual Studio 2005 x64 tools.
    Microsoft (R) Incremental Linker Version 8.00.50727.762
    Copyright (C) Microsoft Corporation. All rights reserved.

    C:\Project>hello.exe
    Hello world!

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  84. Re:Works for me ... w/o link time code generation by igomaniac · · Score: 1

    Ah, sorry -- I see the difference now, you're using link time code generation which the x64 bit linker is not capable of when the machine type is x86.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  85. Re:I know I'm pointing out the obvious here... by Kommet · · Score: 2

    And the trolly troll is trolling.

    Unless you regularly compile optimized builds of Chrome, Opera, Safari, or IE, kindly STFU.

  86. Points buried in the vitriol by tepples · · Score: 1

    'bad things' that were obsoleted decades ago

    I've already e-mailed Yossi about a couple points that C++11 has obsoleted, such as the former lack of practical syntax for closures ("functionoids" or "functors").

    or read this [stackoverflow.com] for some rebuttals.

    The highest rated answer there admits that Yossi has a few good points buried in the vitriol. Implementing a good compiler or debugger for C++ is far more difficult than for some other languages, as is making meaningful error messages. There is no standard subset with well-defined failure modes. It's not a good choice of language for anything needing reflection. Even distributing binaries to the public becomes a chore unless the market have decided to become a platform monoculture.

    1. Re:Points buried in the vitriol by gbjbaanb · · Score: 1

      all distribution tot he public is a chore:

      either C/C++ where you build for each platform
      or .NET where you only have 1 platform, but the user still has to download the required .net runtime and security patches.
      or Java where the user has to download the required JRE

      You're probably best off with the Linux model where the code is downloaded and compiled on whatever platform the user is running.

      I think the error message thing is just for templates too, as they're notorious to make easy to read. I've seen error messages for java apps where you have a stack trace that tells you nothing useful, and .NET exceptions that boil down to a Win32 structured exception code. None can be described as perfect.

      So, yes, quite right - no language, including C++, is perfect. The FQA doesn't take that view though, it assumes C++ is the worst thing ever and doesn't try to hide its lack of objectivity. He hasn't exactly done a FQA for VB6 or PHP now has he.

    2. Re:Points buried in the vitriol by tepples · · Score: 1

      C/C++ where you build for each platform

      Is Linux one platform, or is it a platform for each distribution? Is it best practice to statically or dynamically link to the compiler publisher's implementation of the standard C++ library?

      You're probably best off with the Linux model where the code is downloaded and compiled on whatever platform the user is running.

      Some publishers of proprietary software aren't going to agree to this, especially in the case of A. recently released games, B. playback software for streaming major-studio movies over the Internet, or C. tax return preparation software. In each of these cases, the trade secret status of the source code is essential.

      He hasn't exactly done a FQA for VB6 or PHP now has he.

      Someone else has for PHP. It just isn't called FQA because it doesn't run in parallel to a well-known PHP FAQ. The other problem with PHP involves not being able to use new language features when you have to run on shared web hosting providers' outdated versions of PHP.

  87. They do that already by Anonymous Coward · · Score: 0

    You can install a 64-bit nightly build of Firefox on windows right now, and work is underway for a 64-bit official release.

    This has absolutely nothing to do with the problems of the 32-bit compiler. The 64-bit compiler can compile 32-bit Firefox only for Windows XP SP2 and higher, which would leave Windows 2000 and pre-XP2 users without updates beyond Firefox 12.
    Now the next time I see a comment about this from you winspear, it should actually be worth reading.

  88. 32 bit Windows? by Anonymous Coward · · Score: 0

    I'm curious and confused. Wait, a 32 bit version of Windows 7 exist? Just asking. All of the computers that I see in advertisements come with Windows 7 64 bit Home Premium or above.

    also, isn't virtual memory the same thing as swap file space (paging memory)?

  89. Not always that easy by DragonHawk · · Score: 1

    Anyone running anything older than XP-SP2 is either a dedicated hobbyist or a criminally negligent system administrator

    At $WORK, we've got a CNC machine that runs Win 2000. Only. Moving to a newer Windows release requires replacing the entire control, to the tune of $20K. Guess what we're still running!

    (One could argue that means it's a crappy product. Well, I'd agree. But in my experience, most computer products are crappy. Which leaves those of us wanting to get actual work done stuck holding the bag.)

    That particular computer doesn't need a web browser, so no loss, but it's not hard to imagine a scenario where one would want HTML rendering, maybe even an interface to some web-based business automation system.

    --

    dragonhawk@iname.microsoft.com
    I do not like Microsoft. Remove them from my email address.
    1. Re:Not always that easy by plover · · Score: 2

      You want scary? At $CLINIC we use, they run Windows NT 4.0 on their ultrasonic diagnostic equipment, because the system was certified only with that OS at whatever the patch level was when they tested it. While that may seem innocuous, the damn thing is on the freakin' network, because the doctors want to email images to their patients!

      I sure don't want me or my family to be the ones to have to file the lawsuit when a "zombie" actually causes someone to die from a faulty diagnosis, or because some machinery failed due to a DDoS attack originating on their network.

      --
      John
  90. Why sandbox by tepples · · Score: 1

    Why do we need a "sandbox" anyway?

    Because one can't know whether or not a given downloaded program is going to deface or disclose the files in one's home directory. The ideal way would be to model what threats are possible and let the user restrict an untrusted application from doing sensitive things. When run for the first time, a program would list the sensitive things that it plans to do. Android, OLPC Bitfrost, and the new capability environment in Mac App Store start to do this.

    The viruses are only the result of the lack of proper updates of the system and applications

    How can one perform "proper updates" in the face of zero day vulnerabilities, which are exploited before the publisher issues a patch? Sandboxing at least reduces the attack surface until then.

    and also some idiotic design decisions like Auto-Run

    That was added after numerous support calls from people who observed that the computer didn't appear to respond after the user inserted removable media. If, say, a DVD player appliance didn't respond after a disc was inserted, wouldn't the average end user consider the player broken or at least get confused? How should operating systems have been acknowledging the insertion of media without exposing the user to execution of unwanted software that can harm the user account even if not an administrator?

    login-always-as-admin

    Microsoft took the first step with UAC in Windows Vista by turning administrators into the equivalent of a sudoers group. But UAC/sudo behavior isn't going to help when fake antivirus and other scareware manages to trick members of the sudoers group into elevating to install what they think is a codec to watch a video. Seeing the "Run automatically on startup", "Read process list", "Force other processes to close", "Cannot be uninstalled without wipe", and "Intercept file system" capabilities on a video codec instead of "Decode media files" might raise a red flag.

  91. Search as integral by tepples · · Score: 1
    I split the digression to the application sandbox capability of a modern web browser from the search capability.

    For example, my whole comment could be enclosed in a author="devent" tag, a content="comment" tag and a topic="Firefox Too Big To Link On..." tag.

    They're working on that, and it's called microformats. I'll grant that it's not there yet.

    I think search for new content must be an integral part of the web.

    It is an integral part of existing web sites. For example, Phil's Hobby Shop supports full-text search of every product's description. It's just that I can't see a way for web sites to federate on this, especially as web sites try to become more "sticky" and keep users from navigating away to view a competing site's ads.

  92. Could someone please explain to me... by Anonymous Coward · · Score: 0

    ... how does Firefox manage to get inside a smartphone/tablet and yet be too great for Windows?

    Are we talking about two different beasts? If so, why? I mean, what about that old "single codebase" thing?

  93. Whining fucking nerds... by Anonymous Coward · · Score: 0

    I've ran Firefox for quite some time now (stable, alphas and betas). It's only just after the 3.0 release where it started getting a bit bulky. They even started to trim it down again before the 4.0 release Now, running 8.0 64-bit on Linux, it's a very satisfactory browser; the best I've found.

    Remember, this is Slashdot...where people who use GUIs get abused by cl junkies.... Way to go Slashdot FUD! :D

    90% of Slashdotters are either trolls, anal retentive or both. :)

  94. Re:Obligatory by rubycodez · · Score: 1

    I'd be interested in hearing about any x86-64 PC / Workstation motherboard that took over 256G RAM, haven't seen any. 192GB is the most I recall seeing.

  95. Chrome is much bigger by Anonymous Coward · · Score: 0

    Or, at least, chromium is... its source is about 10x larger than firefox's.

  96. Re:Works for me ... w/o link time code generation by jlebar · · Score: 1

    Bingo. And, of course, link-time code generation is essential for PGO.

  97. bad linker by khipu · · Score: 1

    That's probably more a limitation of Microsoft's linker than of Firefox. Linking, at its heart, is a bit of sorting, filtering, and merging and can be done in fairly modest amounts of memory even for large programs.

  98. Whoosh me, but... by justthinkit · · Score: 1

    The 640 remark was made in 1981, while the 286 -based (PC AT) came out in 1984. The IBM PC was 8088/86 based and could only address 640KB in main memory.

    --
    I come here for the love
  99. 1080p by Niscenus · · Score: 1

    What, uh, what little endian 1080p-capable codec are you using?

    --
    "Yeah...it was the numbers that were irrational, not the murderous cult of vegetarians...." -- Hippasus of Metapontum
  100. link time optimization uses lots of RAM by Anonymous Coward · · Score: 0

    Yep, this is not an issue of firefox being "bloated" (although it is a bit.) It's that link time optimizations require gigantic amounts of RAM. This isn't even a Microsoft issue specifically. I tried running gcc with the -flto option on my gentoo box (I ended up turning it off because too many packages would not build with it -- not due to OOM (out of memory) but just some other failure.) I'd watch some build use like 2GB or more of RAM, and not for something big like openoffice or whatever. Optimizing compilers tend to chew RAM on certain types of code, and this essentially optimizng the whole binary at once instead of some .c file just makes it chew even more. I'm quite sure I will have to turn off -flto for several builds that will hit the 32-bit addressing limit.

              In the same vein -- how the hell does Android need so much RAM to build? Recommendation for Ice Cream Sandwhich (4.0) is a box with 16GB of RAM, and on an 8-core system it takes over 5 hours to build. I can see it taking a long time to build if it's building lots of binaries (which I'm sure it is) but 16GB of RAM? Wow.

  101. Another Browser by Anonymous Coward · · Score: 0

    Comodo Dragon web browser

    http://www.comodo.com/home/browsers-toolbars/browser.php

    Secure DNS, too. :)

  102. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    I'm pretty sure I'm not the one that's being selectively literate. If you're having that much trouble with a compiler, then you either need to reduce as many lines of code as possible, while still keeping the features intact, or you need to use a less resource intensive compiler. It's that simple, and still goes back to what I initially said.

    As for Kommet calling me a troll and adding me to his foe list... Seriously, dude, where'd you get your degree from? Assmad University?

  103. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    The first of those is what's being done, of course. What made you think it's not?

  104. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    The fact it happened twice is a dead giveaway.

  105. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You keep missing the fact that there are benefits to having as much code as possible in a single library in this case. So the first time, the address space available was increased. The second time, that will happen as well, and some code was moved out of the library to give time for that to happen.

    Long-term, a different solution is needed, of course. At that point, the costs of splitting the code out may have to be borne after all (not the cost of doing the work, but the cost of the resulting code being slightly slower).

  106. Re:How long would building on a 64 bit system last by Anonymous Coward · · Score: 0

    Reading more of the TFThread says that the last bump, from 2GB to 3GB, was about two years ago; so... probably one more year? Hopefully that will be enough time for them to start shipping 64 bit browsers for Windows and convince all the benchmarking people to use that, so they can stop worrying about 32 bit performance so much...

  107. Dear idiot moderator by fireylord · · Score: 0

    How is pointing out the flaws in the current release of firefox in any way trolling?

  108. Astroturf by Anonymous Coward · · Score: 0

    Is what this piece is.

  109. Ironic by Rambo+Tribble · · Score: 1

    It should be recalled that Firefox, which started as "Phoenix" and then became "Firebird" before becoming FF, was the lightweight, stripped-down, modular alternative to the Mozilla Suite. Do age, feature creep and the consequent bloat eventually make a mockery of all such aspirations for lean code?

  110. 3GB limit by DrYak · · Score: 1

    A process still uses 32bit memory addresses to reference memory. This means that a process can still only address 4GB of memory.

    ...in the same segment.

    But currently, because of lack of proper PAE-support, the WHOLE virtual memory rande is limited to 32bit.
    This is normaly splitted in 2x 2GiB chunks. 1 chunk for the application, 1 chunk for the kernel.
    With the 3GB switch mentionned, this is split into 3GiB for apps and 1GiB for kernel.

    So even if you could addresse several different segments of 4GiB each, the virtual memory systems behind limits you to either 2GiB or 3GiB memory max for all applications altogether.

    Meanwhile, a PAE-enabled Linux could address 64GiB of Physical RAM, all this in a 56bits virtual space.

    You could put your 32bits 4GiB segment wherever you want in this virtual space.

    If you were to use more than 32bit memory addresses to get more memory, suddenly you aren't a 32-bit OS anymore.

    you get a 32bit address, relative to the base of the segment.
    the segment tehmselves could lie anywhere in the virtual address space.

    In segmented memory model (i.e.: using C/C++'s "far" pointer), have the segments point to different chunk of 4GiB each and you can address more than 4GiB from a 32bits application.
    (have the processor's DS, ES, FS segment register all point to different segments, for exemple)

    That's exactly how 16bits processors have been addressing more than 64k in the dawn of intel CPUs. (Except that back then there wasn't a virtual address space. segment and pointer register did directly address RAM. the 32bit 386 introduced the concept of virtual memory).

    In a flat memory model (all segment register point to the same space, which back when "flat model" was invented, should have enclosed the whole memory, but that's not the case on a 32bit app on a PAE-enabled kernel), indeed no segment are really used and an application can only manage 4GB at a time.

    Still, these 4GB are more than the 2GB/3GB provided by a non-PAE kernel.
    That extra 1GiB more than the /3GB switch would have probably helped VS2005 to do its stuff.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  111. Segment by Anonymous Coward · · Score: 0

    If you're used to segmented memory model and "far" pointers, that's not as nasty as it sounds.

  112. COM by DrYak · · Score: 1

    In fairness, VC++ does have some baked-in COM magic - that's probably what DrYak was referring to.

    Yup indeed.
    - Under VC++ you just #import a COM, and then have an object behaving automagically just like a regular C++ object.
    - Under GCC you have to rely on stuff like disphelper to call COM objects easily with run-time bindings.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  113. Opensource by DrYak · · Score: 1

    You might be able to produce code running on Win95 with proper tweaking. You might even be able to contort VS2010 into producing 16-bit realmod 8088/8086 code. But you're not alone.

    FireFox is open-source, meaning that it is developped and tested by a myriad of developpers and amateurs all around the world.

    Moving from VS2005 to VS2010 would require either :

    - forcing all of them to buy VS2010 and forcing them to tweak it so development on Win2000 to WinXPSP2 can continue.
    - forcing all of them to buy VS2010 and droping support for Win2000 to WinXPSP2.
    - forcing all of them to buy VS2010, having it run in un-tweaked mode producing tests on WinXPSP3 and up only, and then have a dedicated team at Mozilla whose single job is to test if all submitted patch also compile nicely to produce a working Win2k compatible binary.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  114. PAE by DrYak · · Score: 1

    You'd either need far pointers or wide ones on the host which I don't know of any systems supporting easily, aside from DOS.

    Unix has api for that, and as GCC is open source, it could be adapted to this.
    That's why I say *could* and not *will* when speaking about addressing 3GiB.
    (Except that running 64bits cross compilers targeting 32bits on a 64bits Linux is way much more easy, so nobody goes that route).

    Windows has theoretically an API for that, called AWE.
    But then you have 2 problems:
    - You need a special server license to use more than 4GiB of memory.
    - The VS2005 Linker, is probably *NOT* AWE-aware, isn't open source and thus can't be adapted to AWE.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  115. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    I hate saying this, but when the code can't be compiled because the library is too massive for the compiler, there is no benefit.

  116. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    Well, sure. Except the code is compiling just fine as of yesterday, after a few changes to it. Tempest in a teapot and all.

  117. Now I realize... by MJMullinII · · Score: 1

    that is isn't quite so clean and neat when you're compiling a program that must work on millions of systems other than your own :)

    But I would have thought they were already doing that. While going from 32bit to 64bit doesn't magically make everything faster, it does generally add a tiny bit of speed simply because of the extra registers Intel and AMD add for 64bit operations.

    Even if it were only a few points, I would think that building as much as you know they must, ANY tiny bit of speed improvement would add up pretty fast (even if only 1% or 2%).

    --
    "Don't be a martyr -- BE THE ONE WHO GOT AWAY!"
  118. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    My point still stands, regardless of your last-ditch-analogy. Thanks to whoever it was for making sure I got marked as a -1 Troll for posting indisputable fact, though. That actually makes me look like less of an idiot.