Comments (18)
Oh my god! You are save my nerves!
Before (macbook pro late 2012 i5 8G ram): 2-3 minutes
After (hackintosh i7 3770 16G ram): 15-20 seconds! This is awesome!
from mainframer.
I just share my performance comparisions here, maybe someone will find it helpful. We are using a AWS EC2 instance (t2.xlarge) to build the project in the cloud, works like a charm.
MacBook Pro 13 2015 (i5-5257U, 8GB) -> 02:03
Workstation (i7 [email protected], 16GB) -> 00:20
c4.2xlarge (8 cores, 32 GB) -> 00:23
c4.xlarge (4 cores, 16 GB) -> 00:30
t2.xlarge (4 cores, 7.5 GB) -> 00:30
CPU is always maxed out during builds, but only 3GB of RAM are used.
from mainframer.
This project is fantastic. Now I can sit on my couch with my crappy 2015 macbook and do actual programming instead of watching my mac getting too warm 👍
from mainframer.
It would also be cool if you could include profiling around (un)archiving/moving the files around. Cheers!
from mainframer.
Nice! Btw, @crysxd please try v1.1.0 we've just released, should save you some time on transferring files between remote and local machines!
from mainframer.
Great comparison, thanks @crysxd !
from mainframer.
Probably we should mention in the readme that better CPU most likely is better than better RAM.
from mainframer.
@artem-zinnatullin Already using v1.1.0, version v1.0.2 was not usable for cloud builds because of the big upload, rsync is perfect for this. I really can recommend using AWS for this.
from mainframer.
@crysxd ok!
@ming13 I think we can just put a link to this issue into README so users could check results of others and add theirs, not sure we're that good in benchmarking to give precise performance comparison tables or something like this.
from mainframer.
Local:
MacBook Pro 15" - Mid 2015 - 2,5 GHz i7 - 16 GB Ram:
~43 Sec
Remote:
Intel Core i7-6700K 4000 1151 BOX
SSD 240GB 440/535 Z410 SA3 SDK
2x 16GB 2133-15 CRU
21 sec
from mainframer.
Thanks for collaborating! :·)
from mainframer.
Local: (depends on hardware)
Clean 180-360 sec
Incremental 40-180 sec
Remote:
Clean 50 sec
Remote 30 sec
from mainframer.
Local:
Macbook Pro 13" - Early 2015 - 2.7 GHz Intel Core i5 - 8 GB 1867 MHz DDR3 RAM
~3 mins
Remote:
Desktop - 32GB ram - Intel Core I7 6700K - SSD 512GS Samsung 960 Pro
Mainframer Docker Container (Android build tools on Ubuntu)- Allowed 4 cores and 12 GB RAM
~ 40 secs
from mainframer.
❤️
from mainframer.
MacBook Pro 13 2015 (i5-5257U, 8GB) -> 02:03
Workstation (i7 [email protected], 16GB) -> 00:20
c4.2xlarge (8 cores, 32 GB) -> 00:23
c4.xlarge (4 cores, 16 GB) -> 00:30
t2.xlarge (4 cores, 7.5 GB) -> 00:30
Can someone explain why builds with only 7.5gb ram are so much faster than on the Mac with the same amount?
from mainframer.
@PaulWoitaschek I would say that after a certain RAM threshold it matters very little. Compiling is mostly a CPU-intensive operation, especially DEX step for Android projects. Plus be aware that the build machine usually does the single thing — the build itself, when the laptop also runs DE, IDE, browser and so on. That’s all adds up and, well, you see the results yourself.
from mainframer.
@PaulWoitaschek your MacBook has only 2 cores (+ 2 hyperthreaded) with little low level caches, you should not compare this to 4 native cores on a server CPU. RAM does not matter at all, you just have to have enough to keep everything in memory while compiling. From a certain point on (e.g. 6 GB for a project), more RAM does not bring any benefits.
from mainframer.
This tool might have just saved my MBP from choking. Thank you!
Normal builds: 20-25 secs
Clean builds: 50 secs
On a t2.large EC2 instance, with a lot of kapt (AutoValue and data-binding)!
from mainframer.
Related Issues (20)
- Not really an Issue but Xcode builds are slow this would be amazing for Xcode! HOT 1
- Brew Tap Install HOT 8
- Verify file content in tests
- Include milliseconds in duration output
- Consider parallelizing rsync
- Shorter name of the binary HOT 1
- Ignore functionality on 3.x and contribution HOT 1
- TaskSelectionException: Task 'assembleDebug' not found in root project HOT 1
- How to make configuration for building iOS from non-mac OS local machine? HOT 4
- AndroidStudio 3.6 support request HOT 2
- Installation failed due to: 'Invalid File: /Users/bruce/xxx/xx/app/build/outputs/apk/debug/app-debug.apk' HOT 1
- Moving config parsing to `serde` HOT 3
- Split Linux CI job into build and separate integration test job
- Build binaries for most popular CPU architectures
- Use `tracing` crate instead of `println` HOT 1
- Parallel Duration support in config spec
- 3.0x not gobal configable yet. consider crate `directories` for config dir path?
- Exit status
- String literal treated as command after semicolon
- need help!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mainframer.