Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: DFmark-a simple benchmark of dwarf fortress  (Read 7413 times)

vorsgren

  • Escaped Lunatic
    • View Profile
DFmark-a simple benchmark of dwarf fortress
« on: April 18, 2019, 08:16:50 pm »

I have made a benchmark of dwarf fortress, DFmark. Its just a simple script that tests how long it takes to gen a world and run an embark for one year.
You can get it from my GitHub, https://github.com/vorsgren. versions for Windows and Linux.

List of things left to do/possible improvements:
   Mac version (Volunteers to do this anyone? I do not have a Mac).
   The small embark test produced inconsistent results, unknown as to why.
   Add more embark scenarios, e.g.. one with piles of items, one with lots of flowing fluids.
   Use something for a database of test results (DFFD?).

I have already done some tests on my machine:
Spoiler (click to show/hide)
It seems that the clockspeed had the greatest impact for my machine and these forts.

I made this because it seems to me that a lot of the performance advice for dwarf fortress is based off of conjecture or anecdotal evidence, and I am honestly surprised no one has done this before me.
It is such a common topic yet we do not have any concrete benchmarks (at least as far as I have seen - correct me if I am wrong).

Would love to see some results from a more modern cpu to see how it compares to mine.

Suggestions for improvements/features are more than welcome!



 

« Last Edit: April 18, 2019, 08:58:10 pm by vorsgren »
Logged

wierd

  • Bay Watcher
  • I like to eat small children.
    • View Profile
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #1 on: April 18, 2019, 11:17:34 pm »

Does it simulate growth of item vector?

The REAL killer with FPS death is the size of the item vector, and the time needed to walk it every game tick.  Use DFHack to spawn a bazillion blocks or something.
Logged

vorsgren

  • Escaped Lunatic
    • View Profile
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #2 on: April 20, 2019, 10:12:26 am »

Does it simulate growth of item vector?

Yes, the way it works is that it loads a fort mode embark, any embark, and runs it for a year straight without pausing, then reports the time to run.
If the map already has a pile of items on it, or the dwarves make more, they impact fps accordingly.
« Last Edit: April 20, 2019, 10:14:50 am by vorsgren »
Logged

Loci

  • Bay Watcher
    • View Profile
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #3 on: April 21, 2019, 04:07:52 pm »

A bit of scientific rigor on performance is a welcome change.


It seems that the clockspeed had the greatest impact for my machine and these forts.

That's not too surprising. Your RAM tests were handicapped by the system "compensating" for your inputs--when you increased the memory clock, the system modified the timings to allow the RAM roughly-equivalent actual processing time. Accurately measuring the effect of memory speed would likely require replacing the memory with better-performing chips. Still, the "ram ch" results do show that these particular testcases are not RAM-limited on your machine. Unfortunately, it is rather hard to simulate the bloat of a long-running fortress in a newly created save; it's probably best to choose a few long-running fort 'reference' saves instead.


I also have a few suggestions on formatting your results. Interleaving results from two different tests means that no number is directly comparable to its neighbors; instead, combining results for each test type would allow easy comparisons. And on the topic of easy comparisons, keeping a consistent number of decimal places in a column makes it much easier for a reader to follow trends. (Yes, I know spreadsheets obnoxiously screw this up automatically, but they do at least allow you to override their stupidity.)
Logged

vorsgren

  • Escaped Lunatic
    • View Profile
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #4 on: April 21, 2019, 05:48:47 pm »

That's not too surprising. Your RAM tests were handicapped by the system "compensating" for your inputs--when you increased the memory clock, the system modified the timings to allow the RAM roughly-equivalent actual processing time.

I manually set the ram timings in the bios, so the system did not compensate, but I could only get a narrow range of timings on my memory kit.
Th range for the timings was 1333 7,7,7,21 vs 1333 9,9,9,24 and 1600 9,9,9,24 vs 1600 11,11,11,30.
Different memory that can clock lower/higher would be nice to give a larger spread of memory latency. 

Any particular forts you can suggest for testing?
« Last Edit: April 21, 2019, 05:56:54 pm by vorsgren »
Logged

mifki

  • Bay Watcher
  • works secretly...
    • View Profile
    • mifki
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #5 on: April 23, 2019, 07:36:31 pm »

Some time ago I used Dwarf Fortress to benchmark servers offered by popular cloud providers. Because it's fun and because I needed to choose what to use for DF Remote. Sadly I've never managed to write an article about this in English. The code I used is available from https://github.com/mifki/dfremote-cloud-benchmark

vorsgren

  • Escaped Lunatic
    • View Profile
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #6 on: April 23, 2019, 08:20:37 pm »

Some time ago I used Dwarf Fortress to benchmark servers offered by popular cloud providers. Because it's fun and because I needed to choose what to use for DF Remote. Sadly I've never managed to write an article about this in English. The code I used is available from https://github.com/mifki/dfremote-cloud-benchmark

Very nice, thanks for sharing! Will have to take a look at this.
What did you use to make the nice graph?
Logged

therahedwig

  • Bay Watcher
    • View Profile
    • wolthera.info
Re: DFmark-a simple benchmark of dwarf fortress
« Reply #7 on: April 25, 2019, 11:01:41 am »

I am pretty sure all spread sheet programs allow you to make fancy graphs from the data :D
Logged
Stonesense Grim Dark 0.2 Alternate detailed and darker tiles for stonesense. Now with all ores!