Game Benchmarks stub

Battlefield 1 RAM Benchmark - Frequency & 8GB vs. 32GB

Posted on November 11, 2016

We've been through Battlefield 1 a few times now. First were the GPU benchmarks, then the HBAO vs. SSAO benchmark, then the CPU benchmark. This time it's RAM, and the methodology remains mostly the same. Note that these results are not comparable to previous results because (1) the game has received updates, (2) memory spec has changed for this test, and (3) we have updated our graphics drivers. The test platforms and memory used are dynamic for this test, the rest remaining similar to what we've done in the past. That'll be defined in the methodology below.

Our CPU benchmark had us changing frequencies between test platforms as we tried to determine our test patterns and methodology / bench specs for the endeavor. During that exploratory process, we noticed that memory speeds of 3200MHz were measurably faster in heuristic testing than speeds of, say, 2400MHz. That was just done by eye, though; it wasn't an official benchmark, and we wanted to dedicate a separate piece to that.

This content benchmarks memory performance in Battlefield 1, focusing on RAM speed (e.g. 1600MHz, 1866, 2133, 2400, so forth) and capacity. We hope to answer whether 8GB is "enough" and find a sweet spot for price-performance in memory selection.

Two main platforms are being deployed for this test. The i7-6700K with an MSI M7 Z170 motherboard will be our main platform, with the i7-6700K overclocked to 4.4GHz. Memory used is 32GB of Corsair's Dominator Platinum DDR4 ($280), easily capable of speeds up to 3200MHz with its first XMP. A kit of 32GB HyperX Savage DDR3-2400 ($250) was additionally used for testing on an FX-8370 platform, just to look at another architecture's dealings with BF1 and memory performance.

Test Methodology

We manually tune the speeds in BIOS before each set of tests, then run 6-8 test passes per device. DirectX 11 will be the focus for this test, since we've already shown that Dx12 has some optimization issues with Battlefield 1 that will sort of override any lacking RAM performance. We did execute a few Dx12 tests, though.

The GPU used was our EVGA 1080 FTW Hybrid, so we don't have much in the way of bottlenecks when operating at 1080p and with Ultra settings. The most likely components to choke will be the CPU and RAM, and we've already shown CPU performance in previous tests.

The point here is to show scaling in memory. Keep in mind that as resolution increases and graphics workload intensifies, we will begin taxing the GPU more heavily and the memory frequency will become less relevant.

We tested using our GPU test bench, detailed in the table below. Our thanks to supporting hardware vendors for supplying some of the test components.

GN Test Bench 2015NameCourtesy OfCost
Video CardEVGA GTX 1080 FTW HybridEVGA$730
CPUIntel i7-6700K @ 4.4GHz OCGamersNexus
$330
MemoryCorsair Dominator 32GB 3200MHzCorsair$240
MotherboardMSI Z170A M7 GamingMSI$170
Power SupplyNZXT 1200W HALE90 V2NZXT$300
SSDHyperX Savage SSDKingston Tech.$130
CaseTop Deck Tech StationGamersNexus$250
CPU CoolerNZXT Kraken X41 CLCNZXT$110

Game settings were manually controlled for the DUT. All games were run at presets defined in their respective charts. Our test courses are all manually conducted. In the case of our bulk data below, the same, easily repeatable test was conducted a minimum of eight times per device, per setting, per API. This ensures data integrity and helps to eliminate potential outliers. In the event of a performance anomaly, we conduct additional test passes until we understand what's going on. In NVIDIA's control panel, we disable G-Sync for testing (and disable FreeSync for AMD, where relevant). Note that these results were all done with the newest drivers (375.76), including the newest game patches, and may not be comparable to previous tests as a result. Also note that tests between reviewers should not necessarily be directly compared as testing methodology may be different. Just the measurement tool alone can have major impact.

We execute our tests with PresentMon via command line, a tool built by Microsoft and Intel to hook into the operating system and accurately fetch framerate and frametime data. Our team has built a custom, in-house Python script to extract average FPS, 1% low FPS, and 0.1% low FPS data (effectively 99/99.9 percentile metrics). The test pass is executed for 30 seconds per repetition, with a minimum of 3 repetitions. This ensures an easily replicated test course for accurate results between cards, vendors, and settings. You may learn about our 1% low and 0.1% low testing methodology here:

Windows 10-64 Anniversary Edition was used for the OS.

Please note that we use onPresent to measure framerate and frametimes. Reviewers must make a decision whether to use onPresent or onDisplay when testing with PresentMon. Neither is necessarily correct or incorrect, it just comes down to the type of data the reviewer wants to work with and analyze. For us, we look at frames on the Present. Some folks may use onDisplay, which would produce different results (particularly at the low-end). Make sure you understand what you're comparing results to if doing so, and also ensure that the same tools are used for analysis. A frame does not necessarily equal a frame between software packages. We trust PresentMon as the immediate future of benchmarking, particularly with its open source infrastructure built and maintained by Intel and Microsoft.

Battlefield 1 has a few critical settings that require tuning for adequate benchmarking. Except where otherwise noted, we disabled GPU memory restrictions for testing; this setting triggers dynamic quality scaling, creating unequal tests. We also set resolution render scale to 100% to match render resolution to display resolution. Field of View was changed to 80-degrees vertical to more appropriately fit what a player would use, since the default 55-degree vertical FOV is a little bit silly for competitive FPS players. This impacts FPS and should also be accounted for if attempting to cross-compare results. V-Sync and adaptive sync are disabled. Presets are used for quality, as defined by chart titles. Game performance swings based on test location, map, and in-game events. We tested in the Italian Avanti Savoia campaign level for singleplayer, and we tested on Argonne Forest for multiplayer. You can view our test course in the above, separate video.

Note that we used the console command gametime.maxvariablefps 0 to disable the framerate cap, in applicable test cases. This removes the Battlefield 1 limitation / FPS cap of 200FPS.

CPUs Tested

  • i7-6700K @ 4.4GHz w/ Corsair Dominator Platinum memory, Gaming M7 Motherboard
  • FX-8370 @ Stock w/ HyperX Savage memory, ASUS 970 Pro Gaming Aura motherboard

Continue to page 2 for the results.


Battlefield 1 Memory Benchmark - 1600MHz vs. 2400MHz, 3200MHz

This first chart shows Battlefield 1's memory performance when running 1080p with Ultra settings on the test platform. We're seeing largely unfettered performance with the 4 sticks of 3200MHz Corsair Dominator Platinum memory, pushing a 161FPS AVG, about 128FPS 1% lows, and 117FPS 0.1% lows. This is followed next by the DDR4-2400 memory, so we've clocked-down the Platinum series kit to 2400MHz. That's at 158FPS AVG, or about 4FPS behind the 3200MHz kit, with lows at 118FPS and 107FPS.

DDR4-1600 memory might as well not exist, but we're testing it just to learn more about scaling. We're at 150FPS AVG -- now 11FPS slower than the 3200MHz kit. If we create another unlikely scenario, 1333MHz memory is operating at 140FPS AVG, or 20FPS slower than the 3200MHz kit.

bf1-ram-bench-6700k

This could be compared in some ways to single-channel performance. If you remember our content from ages ago, we didn't see much impact from multi-channel platforms with DDR3 in our gaming tests, but game development has changed and so has memory. With a single-channel platform, memory speeds are effectively halved from the advertised rate, so these 1333 and 1600 results give a simplified glimpse into single-channel performance with BF1. As a quick PSA, keep in mind that there's no such thing as "dual-channel memory" or "single-channel memory." The memory itself is not in charge of how many channels there are, it is the platform. To call memory single or dual channel would be incorrect. The platform and the configuration of memory in that platform dictate channeling, not the individual sticks.

Performance Scaling with Base 2400MHz (100%)

bf1-ram-bench-scaling

Here's a chart that shows percent scaling as offset from DDR4-2400. Versus a fairly standard 2400MHz kit of DDR4 memory, we're seeing scaling of about 2.5% gains when moving to 3200MHz, and we're seeing a loss of about 5% when stepping down to 1600MHz. The jump from 2400MHz to 1333MHz is about 12%.

Again, remember that running a higher resolution -- like 4K -- would primarily limit us at the GPU, so these differences can largely disappear. We saw almost no change in FPS when running 4K with the 1080 FTW Hybrid and memory at 3200MHz versus memory at 1866MHz. Dx12 also shows almost no scaling from memory. Game performance is too erratic and spotty with Dx12 to see a meaningful gain from just the memory.

Tested with the FX-8370

bf1-ram-amd-8370

Just for good measure and to cover another architecture, let's throw AMD's FX-8370 into the mix.

Here, we've tested memory at 2133MHz and 1600MHz, both DDR3 kits, and can see a difference of about 5.5 to 6FPS in the average framerate performance between the two. That's about 6-7% change. Considering that DDR3 kits are priced pretty equally between 1600, 1866, and 2133MHz these days, especially with manufacturers dropping 1600MHz production, it makes sense to spend the extra two dollars for something 6% faster. It also makes sense to run two sticks for Battlefield 1 for dual-channel platforms.

Battlefield 1 Memory Capacity - Is 8GB Enough?

bf1-ram-consumption

The short answer: Yes. It's enough. Just barely.

Capacity is harder to test for a number of reasons. Memory isn't instantly saturated, so it's easier to test with something more heuristic -- like actually playing the game properly. We tried playing a 64-person multiplayer match for about 40 minutes while running logging utilities to track system memory consumption. Commit and working set memory were both logged, so we had an idea of requested and in-use memory by the application. Memory usage by BF1 goes up quickly, but never exceeds 6-7GB working set. We'd see commits upwards of 10GB, but again, that doesn't mean the memory is used -- it just means that BF1 and Windows agree that 10GB of 32GB available is not an unreasonable commit.

We also played with one stick of 8GB RAM (and separately two sticks of 4GB) for another 64-player match, just to see if any visible stutters or pop-in issues occurred. No, not really. We see pop-in issues, but it's all the same as what you normally see with Battlefield 1 -- nothing specific to memory. A single stick did show an FPS reduction resultant of the slower speed, but not because of the capacity. With 2x4GB sticks clocked at 2400MHz, we didn't run into issues with memory capacity being exceeded and causing artifacting, pop-in delays (beyond normal), or slowdowns. Heuristic testing suggests that 8GB of memory is enough for BF1.

Now, there's a caveat: The working set was approaching 7GB at times (typically closer to 6GB), so users who like to keep applications running in the background may benefit from more memory. Chrome, for example, can easily eat several gigabytes of memory just with a day's worth of tabs open. You'd want to close that to free-up volatile memory if playing BF1 with 8GB of RAM.

But as an application atop an OS, 8GB is sufficient.

Conclusion

Memory has a bigger impact in Battlefield 1 than we've seen with other games. It's not huge -- the GPU and CPU still sort of dictate total performance -- but it's enough to be interesting, and that's what we expected. Increasing resolution to 4K (reasonable with a 1080 FTW Hybrid and i7-6700K OC'd to 4.4GHz) does largely eliminate differences between even 1866MHz and 3200MHz DDR4. Players who seek unrestricted framerate to saturate a high-refresh display, like 120Hz, 144Hz, or 200Hz monitors, will want to begin considering memory as a limitation once the GPU and CPU have been mostly maxed for performance.

Capacity seems to push the 8GB barrier, but after heuristic testing by actually playing the game with 8GB in a 64-player server, it just doesn't doesn't seem necessary to go for 16GB. The main benefit would be if you like to keep a large amount of browser tabs open in the background, Photoshop, or some other application, at which point you'll want that extra memory to juggle background processes.

If this content helped you, consider making your memory purchases after following one of our links to Amazon or Newegg.

Editorial: Steve "Lelldorianx" Burke
Video: Andrew "ColossalCake" Coleman