Slashdot Mirror


Android ICS Will Require 16GB RAM To Compile

ozmanjusri writes "New smartphones may be lightweight, compact objects, but their OSs are anything but. Ice Cream Sandwich will need workstations with no less than 16 GB RAM to build the source code, twice the amount Gingerbread needed. It will take 5 hours to compile on a dual quad-core 2+GHz workstation, and need 80GB disk space for all AOSP configs. Android developers are also being warned to be cautious of undocumented APIs: 'In almost every case, there's only one reason for leaving APIs undocumented: We're not sure that what we have now is the best solution, and we think we might have to improve it, and we're not prepared to make those commitments to testing and preservation. We're not claiming that they're "Private" or "Secret" — How could they be, when anyone in the world can discover them? We're also not claiming they're forbidden: If you use them, your code will compile and probably run.'"

20 of 357 comments (clear)

  1. Of Course. by Frosty+Piss · · Score: 4, Funny

    Nobody will ever need more than 16GB...

    --
    If you want news from today, you have to come back tomorrow.
    1. Re:Of Course. by lolcutusofbong · · Score: 3, Informative

      probably using the -pipe CFLAG.

    2. Re:Of Course. by fuzzyfuzzyfungus · · Score: 4, Interesting

      I have to wonder if the 16GB "requirement" is more of a recommendation and/or a bunch of default settings that deliberately avoid the disk as much as possible, and keep as many cores as you can throw at the job busy by compiling every little bit and piece in parallel...

      On the one hand, with 16GB of RAM in the desktop/light workstation 4x4GB only running around $100(with the more workstation-friendly 2x8GB with ECC only twice that), it seems rather pointless to burn any developer time on trying to optimize the RAM needs of building the entire OS. RAM is cheap.

      On the other hand, I have to wonder what they could possibly be doing to the process of compiling what is basically a weird-but-not-unrecognizable linux distro to make it that RAM hungry.

    3. Re:Of Course. by mjwx · · Score: 5, Interesting

      I have to wonder if the 16GB "requirement" is more of a recommendation and/or a bunch of default settings that deliberately avoid the disk as much as possible

      I have to wonder if the 16 GB requirement is real.

      Reading the blog linked to in the summary, there is no source mentioned. The author completely fails to mention how they came across this information. Even ignoring their bad English (obviously not their first language).

      I think I'll wait for a more trustworthy source to confirm or deny this.

      --
      Calling someone a "hater" only means you can not rationally rebut their argument.
    4. Re:Of Course. by kidgenius · · Score: 3, Informative
    5. Re:Of Course. by PopeRatzo · · Score: 5, Informative

      And if you read that original source, you'll see that they are recommendations for building future development machines:

      -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 my workstation (dual-E5620 i.e. 2x quad-core 2.4GHz HT,
      with 24GB of RAM, no SSD),

      --
      You are welcome on my lawn.
    6. Re:Of Course. by evilviper · · Score: 5, Informative

      To me, that sounds like it takes 5 hours after compiling the code in parallel. So if it was a single threaded compilation job, in theory, the task would take much much longer.

      Yes, it does SOUND that way... It's very "truthy" that way...

      Relying on /. summaries just makes you look like an idiot, when you're just one quick and easy click away from the source. Surely, if you cant be bothered to put that much effort in, then you must not have enough time to write-up a response, either...

      Verbatim quote from TFA:
          "5+ hours of CPU time for a single build, 25+ minutes of wall time"

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    7. Re:Of Course. by Calos · · Score: 4, Informative

      Mmm, no. Third party modders do a lot of work, and make some really awesome builds, with all kinds of customizations and new features. Cyanogenmod, for instance. Quite the opposite of working for a large company with resources, their developer are now actually being hired by big companies because of their freelance work.

      --
      I vote based on politicians' actions, unless contrary to my preconceptions. Often wrong, never uncertain. #iamthe99%
  2. Re:16 Gigabytes RAM costs $100 by Anonymous Coward · · Score: 5, Funny

    ...and a computer that can take 16 gigs of RAM.

    I mean, you can spend $100 and buy a 16-inch horse cock dildo, but that doesn't mean you can shove the whole thing up your ass.

  3. So that's Google's master plan by Anonymous Coward · · Score: 5, Funny

    While Android will remain open-source, eventually it will require so much RAM/processing power/etc. to compile that only Google will have the computational resources available to compile it.

    Clever!

  4. Rookie question on debugging monster code bases by Twinbee · · Score: 3, Interesting

    Quick question for those with giant codebases such as this. How the heck do you test, and debug the software with those kind of lag times? Do you split everything up into smaller pieces or something? If so, then surely there are cases where you need to test something that requires EVERYTHING to be compiled. I can imagine such shot in the dark scenarios to be the stuff of pure nightmares.

    --
    Why OpalCalc is the best Windows calc
  5. not true by MrCrassic · · Score: 4, Informative
    Here's what the article *actually* says:

    16GB RAM recommended, more preferred, anything less will measurably benefit from using an SSD.

    Emphasis mine. Still pretty beast, though.

  6. Re:16 Gigabytes RAM costs $100 by Anonymous Coward · · Score: 3, Funny

    I mean, you can spend $100 and buy a 16-inch horse cock dildo

    I'll leave that to you. Interesting that you knew the price off the top of your head, though.

  7. Recompile *should* be much, much faster by dwheeler · · Score: 3, Informative

    Unless the build system is screwed up, recompiling after a change should be relatively fast. Usually source code is stored as lots of smaller files, and each file is compiled separately to produce a separate object file (e.g., .o). Then next time a rebuild is requested, the system should notice what changed, and only rebuild the needed parts. Some parts take the same time each time (e.g., a final link), but it shouldn't take anywhere near the same amount of time. There are lots of build tools, including make, cmake, and so on. If you use the venerable "make" tool, you might want to read Miller's "Recursive Make Considered Harmful": http://aegis.sourceforge.net/auug97.pdf Cue the lovers and haters of "make", here :-).

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  8. shitty /. summary by petermgreen · · Score: 5, Informative

    TFA: "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)."
    /. Summary: "It will take 5 hours to compile on a dual quad-core 2+GHz workstation"

    --
    note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  9. Depends on how you look at it by Sycraft-fu · · Score: 5, Informative

    While it is a lot of RAM compared to what many system have, it really isn't a big deal these days. 4GB DDR3 sticks are $25 or less each, and that is for high quality RAM. Regular, consumer grade, LGA1155 boards support 4 of them. So for $100 you can have 16GB on a normal desktop system. My home system I type this on has 16GB for that reason. It was so cheap I decided "Why not?"

    They actually can support more, with 8GB chips you can have 32GB on a standard desktop, but those are still expensive.

    The enthusiast X79 LGA2011 boards coming out will have 8 sockets and thus handle 64GB. Of course beyond that there's workstation which cost a lot more, but not as much as you might first think.

    At any rate, 16GB is now a "regular desktop" amount of RAM. Standard boards the likes of which you get in cheap ($1000 or less) towers support that much, and it only costs $100 to get. It is quite a realistic thing to require, for something high end.

  10. Re:16GB RAM and GCC optimization by bucky0 · · Score: 3, Informative

    No, you can perform better optimizations if you know, for instance, that a function can be inlined. You can't get that if some of the uses are in other compilation units.

    --

    -Bucky
  11. Build battle scars? by ben_kelley · · Score: 5, Funny

    Unless the build system is screwed up, recompiling after a change should be relatively fast. Usually source code is stored as lots of smaller files [...] Then next time a rebuild is requested, the system should notice what changed, and only rebuild the needed parts.

    I feel your pain brother.

  12. If memory were still expensive... by JackAxe · · Score: 3, Insightful

    This article would be shocking, but considering that 16 GB of memory -- especially the dual-channel DDR3 used for the i5 and consumer i7's -- is so cheap, less than $100, this article doesn't have any shock value. It's just informative. It's letting us know the 'recommended' memory and giving more nerds an excuse to add more RAM. That is the NERDS that don't already have 24 gigs for their virtual machines. :P

  13. Re:16GB RAM and GCC optimization by Intropy · · Score: 5, Informative
    Yes, there certainly are. The most obvious reason is code optimization. If your target device is something relatively light on resources like a mobile phone, then you probably want to optimize very aggressively. All forms of optimization require context. For something like "false && statement" all the required context for optimizing away the statement is very nearby. Something like the return value optimization needs to know about the entire function. So far we're considering the easy stuff. If you want to go all out and get into whole program optimization then some optimizations cannot be guaranteed to be safe without knowing the entire program.

    Now if "compile" refers to the entire build process, then we're also probably talking about some serious static analysis. Checking for things like "can this function ever throw?" or "is this code reachable?" or "is the memory allocated here always eventually freed?" also requires an awful lot of context to check. In the worst case each of these questions requires knowing all of the code to answer.