6 ms·
Unfortunately, for us, Java “out of memory” errors are routine, and for even moderately-sized monorepos the RAM requirements can get insane.
by an_d_rew 6y ago
Unfortunately, for us, Java “out of memory” errors are routine, and for even moderately-sized monorepos the RAM requirements can get insane.
- dleslie 6y agoPrecisely this. Advocating for Java as a general purpose tool language sort of overlooks the incredibly broad and prevasive installbase of machines more than ten years old, as well as the rapidly growing installbase of ARM SOC machines. For many, a tool eating up a gigabyte or more of memory is certainly not acceptable.
- gerash 6y agoI'm lost. Can't people build their binaries on a powerful machine instead of an ARM tablet?
- dleslie 6y agoNot everyone has a powerful machine to do so with; many folks are still using computers that shipped with WinXP, or even Vista or 98/Me. It's a huge world outside of California. Personally, my primary home/non-work machines are an RPi4 and a Pinebook Pro.
- orf 6y agoSo Google should ship a potentially inferior tool, slower, because some people run on inappropriate or highly outdated hardware? Hmm.
- brmgb 6y agoNo, Bazel just fails to satisfy the very real need of building on less powerful machines because of its technological choice, a need served by other tools competing with it, and therefore is not really a truly general, one size fit all, solution. The fact that you personally deem the needs of others illegitimate doesn't preclude them from actually existing.
- dleslie 6y agoThe topic is whether FOSS developers should use Bazel, not whether Bazel is good for Google. For many it is Bazel that is inferior due to development environment constraints. And "outdated" is a questionable term: if it satisfies their needs, why upgrade? Maybe Google should build better tools.
- oblio 6y agoI think you're part of a minority, though. You're talking about computers from 20, 20+ years ago and about Raspberry Pi. It's a personal choice. You can get a good second hand desktop from 2012-2015 for the price of your Raspberry Pi.
- dleslie 6y agoTravel to Africa, India and South East Asia some time. The world is a big place outside of California, and the hardware available to many is not what you'll find at a cafe in San Francisco.
- gerash 6y agoI've lived in other less developed countries and it's not like a raspberry Pi is the most people can afford there. Have you lived in the places you've listed?
- dleslie 6y agoThe RPi is an example of a growing SOC device market, but I did mention as well the enormous install base of older and under-powered devices in general. I have family in Colombia.
- oblio 6y agoI don't live in California (nor the US), I've only visited twice or so. I'm from a place similar to those you're describing. Few people would get enthusiast gear like Raspberry Pi. What they would get, instead, would be an old x86 PC with pirated Windows. A crummy knock off Chinese laptop or locally assembled PC (so not from the big OEMs).
- dleslie 6y agoIt seems we agree, then? Those devices you mention would be in the category of older, lower-power machines that I mentioned.
- jsolson 6y agoI'm curious what you consider "insane" to be -- and I mean this genuinely. Google has what I think most would consider to be a large monorepo, but also provides developer desktops with ample RAM. I've noticed blaze's startup time, but never really thought about its memory consumption. Where are you running into limits?
- smiths1999 6y agoDoesn't blaze build remotely via citc? I thought files were loaded locally for editing but built remotely.
- jsolson 6y agoBlaze itself runs locally, reading BUILD files from citc. The build actions mostly execute remotely.
- an_d_rew 6y ago10,000+ artifacts on a 20 core Intel box with 64 Gb RAM. We have some peculiarities of our Bazel setup that are not common, yet are (supposed to be) fully supported. Building can take hours.
- laurentlb 6y agoAre you using remote execution with Bazel? If you have hour long builds, it's often worth investing in remote execution (just remote caching can help too).