Do AMD’s Infinity Fabric and DRAM speed affect Android build times in Flutter projects?

Angelo Cassano
4 min readApr 18, 2020

During these flat quarantine days I was wondering if it is worth upgrading my home server with a brand new Ryzen 5 3600 CPU. Essentially my home server is a NAS, hosts Transmission daemon with Samba, a Plex server and an openhab instance and it’s also a Gitlab Runner. All of these stuffs are managed by different virtual machines in a Proxmox environment.

It’s all handled pretty well by my Intel Core i3 7100T CPU, all except building stuff in Continuos Integration with Gitlab Runner, the CPU is slower compared to my friend’s Gitlab Runner based on Ryzen 5 3600.

But what do we do? We build and deploy Laravel and Flutter applications, and even if the iOS builds are acceptable, the Android ones are very slow instead.

My shopping list

Of course the Ryzen 5 3600 paired with an AsRock Fatal1ty B450 Gaming-ITX/ac. I will also need a new power supply, my 160W pico PSU brick is not well suited for a 65W TDP CPU and the B450 chipset. The CPU doesn’t have an iGPU so I will need a low power graphics card: a GT730 should do the job. To well balance the efficiency I will pick a Be Quiet PURE POWER 11 300W 80 Plus Bronze. But what about RAM?

RAM Speed and Infinity Fabric for Zen2 Ryzen CPUs

According to the following spreadsheet, in order to obtain the maximum performance from your Ryzen Zen2 system, you have to set your RAM speed to 3733MHz at CAS Latency 17. Also, the 3200 CL14 and 3600 CL16 combinations are a good tradeoff without wasting so much money in RAM configuration.

I’m very confused about what RAM sticks I should buy. My 7100T config actually has a 16GB kit running at 2400MHz, so I was wondering if getting faster RAMs would affect my Android build speeds.

It’s time for some benchmarks

Since my workstation is already based on a Ryzen Zen 2 system, why not try to figure out what’s the best tradeoff with RAM speeds and Infinity Fabric?

Test specs

  • CPU: Ryzen 7 3700X
  • Motherboard: ASUS Prime X570-PRO
  • RAM: G.Skill Trident Z RGB 16GB DDR4 3200MHz CL14
  • SSD: Aorus 1TB M.2 PCIEx 4x Gen4
  • GPU: XFX AMD Radeon 5700XT 8GB GDDR6
  • OS: Debian 10 Buster x64 with 4.19.0–6-amd64 kernel

Benchmark test

The benchmark includes a flutter build appbundle process repeated 5 times, as you can see in the script below:

#!/bin/bash

mkdir -p "testing"

for (( i=0; i<5; ++i)); do
echo "Running loop $i"

flutter clean
flutter build appbundle > "testing/loop$i.log"

echo "Loop $i finished"
done

The clean task is very important to remove intermediate stuffs from one build to the next one.

The target project will be the WhatsAppClone created by iampawan, You can find it in Github here: https://github.com/iampawan/FlutterWhatsAppClone.

Configuration test

Actually, my G.Skill Trident Z RGB 16GB DDR4 3200MHz CL14 is a very good kit in terms of overclocking. They have Samsung b-die chips, the best memory chips for overclocking. In my daily use I overclocked them at 3733MHz CL16 to gain the best performances as stated in the AMD’s spreadsheet. This will help us to set up three configuration tests and see the differences of build times with different DRAM and IF speeds.

Test 1:

  • DRAM Speed: DDR4 2133MHz
  • Infinity Fabric Speed: 1200MHz
  • CAS Latency Speed: 15

Test 2:

  • DRAM Speed: DDR4 3200MHz
  • Infinity Fabric Speed: 1600MHz
  • CAS Latency Speed: 14

Test 3:

  • DRAM Speed: DDR4 3733MHz
  • Infinity Fabric Speed: 1800MHz
  • CAS Latency Speed: 16

Test results

The build times are expressed in seconds.

Test 1

Average build time excluding Round 1: 23.725s

Test 2

Average build time excluding Round 1: 22.75s

Test 3

Average build time excluding Round 1: 22.475s

Overall

Conclusions

As shown in the charts, the results seem to follow the AMD’s spreadsheet, with higher build times with a lower DRAM and IF speeds, and lower build times with a higher DRAM and IF speeds.

In my case, is it worth buying a faster kit which costs double the price to gain 1 second in average? Definitively not.

Thank you for reading!

Thank you so much for reading and if you enjoyed this article make sure to hit the clapbutton.

--

--