Cuberite Forum

Full Version: Chunk generator performance survey
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
I compiled a binary with gcc 6 and clang 3.9.1. This are the result from 3 runs for every binary. Used only world no nether and no the end.

In world/world.ini changed:
PregenerateDistance to 100
Seed to 42

clang 3.9.1
1:
Min: 78,8 ch/s
Max: 101,03 ch/s
Avg: 83,15222222 ch/s
Time: 69.201 seconds

2:
Min: 79,41 ch/s
Max: 104,22 ch/s
Avg: 84,00258065 ch/s
Time: 68.312 seconds

3:
Min: 79,79 ch/s
Max: 102,2 ch/s
Avg: 83,67548387 ch/s
Time: 68.730 seconds


gcc 6
1:
Min: 92,97 ch/s
Max: 116,48 ch/s
Avg: 97,17301887 ch/s
Time: 64.038 seconds

2:
Min: 92,99 ch/s
Max: 116,94 ch/s
Avg: 97,25037736 ch/s
Time: 64.480 seconds

3.
Min: 92,99 ch/s
Max: 116,9 ch/s
Avg: 96,84740741 ch/s
Time: 64.168 seconds


As you can see gcc beats clang. I didn't changed anything in the source and added no flags.
The question is now why. I know that there are a few warnings in the noise generator with shift left negative value and overflow. Maybe clang adds additionally checks or doing some casting with the numbers.
I build a new desktop last week Smile

Code:
    [10:09:36] Chunk generator performance: 131.17 ch / sec (513 ch total)
    [10:09:38] Chunk generator performance: 130.49 ch / sec (772 ch total)
    [10:09:40] Chunk generator performance: 131.17 ch / sec (1039 ch total)
    [10:09:42] Chunk generator performance: 131.92 ch / sec (1310 ch total)
    [10:09:44] Chunk generator performance: 132.64 ch / sec (1583 ch total)
    [10:09:46] Chunk generator performance: 132.15 ch / sec (1842 ch total)
    [10:09:48] Chunk generator performance: 131.80 ch / sec (2101 ch total)
    [10:09:50] Chunk generator performance: 132.56 ch / sec (2379 ch total)
    [10:09:52] Chunk generator performance: 132.57 ch / sec (2645 ch total)

To be safe I copied the world.ini from here
Upgraded my CPU to a 5800X.

world.ini:

Code:
; This is the per-world configuration file, managing settings such as generators, simulators, and spawn points

[General]
Dimension=Overworld
UnusedChunkCap=1000
IsDaylightCycleEnabled=1
Gamemode=0
Weather=0
WorldAgeMS=1074118
TimeInTicks=21480

[Broadcasting]
BroadcastDeathMessages=0
BroadcastAchievementMessages=1

[SpawnPosition]
MaxViewDistance=10
X=0.500000
Y=69.000000
Z=-7.500000
PregenerateDistance=70

[Storage]
Schema=Default
CompressionFactor=6

[Plants]
MaxCactusHeight=3
MaxSugarcaneHeight=3

[Physics]
DeepSnow=1
ShouldLavaSpawnFire=1
TNTShrapnelLevel=2
WaterSimulator=Vanilla
LavaSimulator=Vanilla
SandInstantFall=0
RedstoneSimulator=Incremental

[Mechanics]
CommandBlocksEnabled=0
PVPEnabled=1
UseChatPrefixes=1
MinNetherPortalWidth=2
MaxNetherPortalWidth=21
MinNetherPortalHeight=3
MaxNetherPortalHeight=21

[Monsters]
VillagersShouldHarvestCrops=1
AnimalsOn=1
Types=bat, cavespider, chicken, cow, creeper, guardian, horse, mooshroom, ocelot, pig, rabbit, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie

[Weather]
MaxSunnyTicks=180000
MinSunnyTicks=12000
MaxRainTicks=24000
MinRainTicks=12000
MaxThunderStormTicks=15600
MinThunderStormTicks=3600

[LinkedWorlds]
NetherWorldName=world_nether
EndWorldName=world_the_end

[Generator]
BiomeGen=Grown
ShapeGen=BiomalNoise3D
CompositionGen=Biomal
Finishers=RoughRavines, WormNestCaves, WaterLakes, WaterSprings, LavaLakes, LavaSprings, OreNests, Mineshafts, Trees, Villages, SinglePieceStructures: JungleTemple|WitchHut|DesertPyramid|DesertWell, TallGrass, SprinkleFoliage, Ice, Snow, Lilypads, BottomLava, DeadBushes, NaturalPatches, PreSimulator, Animals, OverworldClumpFlowers
Generator=Composable
BiomeGenCacheSize=16
BiomeGenMultiCacheLength=128
SeaLevel=62
BiomalNoise3DFrequencyX=40.000000
BiomalNoise3DFrequencyY=40.000000
BiomalNoise3DFrequencyZ=40.000000
BiomalNoise3DBaseFrequencyX=40.000000
BiomalNoise3DBaseFrequencyZ=40.000000
BiomalNoise3DChoiceFrequencyX=40.000000
BiomalNoise3DChoiceFrequencyY=80.000000
BiomalNoise3DChoiceFrequencyZ=40.000000
BiomalNoise3DAirThreshold=0.000000
BiomalNoise3DNumChoiceOctaves=4
BiomalNoise3DNumDensityOctaves=6
BiomalNoise3DNumBaseOctaves=6
BiomalNoise3DBaseAmplitude=1.000000
CompositionGenCacheSize=64
RoughRavinesGridSize=256
RoughRavinesMaxOffset=128
RoughRavinesMaxSize=128
RoughRavinesMinSize=64
RoughRavinesMaxCenterWidth=8.000000
RoughRavinesMinCenterWidth=2.000000
RoughRavinesMaxRoughness=0.200000
RoughRavinesMinRoughness=0.050000
RoughRavinesMaxFloorHeightEdge=8.000000
RoughRavinesMinFloorHeightEdge=30.000000
RoughRavinesMaxFloorHeightCenter=20.000000
RoughRavinesMinFloorHeightCenter=6.000000
RoughRavinesMaxCeilingHeightEdge=56.000000
RoughRavinesMinCeilingHeightEdge=38.000000
RoughRavinesMaxCeilingHeightCenter=58.000000
RoughRavinesMinCeilingHeightCenter=36.000000
WormNestCavesSize=64
WormNestCavesGrid=96
WormNestMaxOffset=32
WaterLakesProbability=25
LavaLakesProbability=10
MineShaftsGridSize=512
MineShaftsMaxOffset=256
MineShaftsMaxSystemSize=160
MineShaftsChanceCorridor=600
MineShaftsChanceCrossing=200
MineShaftsChanceStaircase=200
VillageGridSize=384
VillageMaxOffset=128
VillageMaxDepth=2
VillageMaxSize=128
VillageMinDensity=50
VillageMaxDensity=80
VillagePrefabs=PlainsVillage, SandVillage
BottomLavaLevel=10
PreSimulatorFallingBlocks=1
PreSimulatorWater=1
PreSimulatorLava=1
OverworldClumpFlowers-1=Forest, -2, 2; ForestHills, -3, 2; FlowerForest = yellowflower; redflower; lilac; rosebush
OverworldClumpFlowers-2=Plains, -2, 1; SunflowerPlains = yellowflower; redflower; azurebluet; redtulip; orangetulip; whitetulip; pinktulip; oxeyedaisy
OverworldClumpFlowers-3=SunflowerPlains, 1, 2 = sunflower
OverworldClumpFlowers-4=FlowerForest, 2, 5 = allium; redtulip; orangetulip; whitetulip; pinktulip; oxeyedaisy
OverworldClumpFlowers-5=Swampland; SwamplandM = brownmushroom; redmushroom; blueorchid
OverworldClumpFlowers-6=MushroomIsland; MushroomShore; MegaTaiga; MegaTaigaHills; MegaSpruceTaiga; MegaSpruceTaigaHills = brownmushroom; redmushroom
OverworldClumpFlowers-7=RoofedForest, 1, 5; RoofedForestM, 1, 5 = rosebush; peony; lilac; grass

[WaterSimulator]
Falloff=1
TickDelay=5
NumNeighborsForSource=2

[LavaSimulator]
Falloff=2
TickDelay=30
NumNeighborsForSource=-1

[FireSimulator]
BurnStepTimeFuel=500
BurnStepTimeNonfuel=100
Flammability=50
ReplaceFuelChance=50000

[Seed]
Seed=768054009

[WaterSprings]
HeightDistribution=0, 0; 10, 10; 11, 75; 16, 83; 20, 83; 24, 78; 32, 62; 40, 40; 44, 15; 48, 7; 56, 2; 64, 1; 255, 0
Chance=24

[LavaSprings]
HeightDistribution=0, 0; 10, 5; 11, 45; 48, 2; 64, 1; 255, 0
Chance=9

[Animals]
AnimalSpawnChunkPercentage=10

[SpawnProtect]
ProtectRadius=10

[Difficulty]
WorldDifficulty=1

[WorldLimit]
LimitRadius=0


Ryzen 5 2600X:

Code:
[16:12:47] Chunk generator performance: 133.49 ch / sec (513 ch total)
[16:12:49] Chunk generator performance: 133.33 ch / sec (780 ch total)
[16:12:51] Chunk generator performance: 132.65 ch / sec (1042 ch total)
[16:12:53] Chunk generator performance: 132.54 ch / sec (1307 ch total)
[16:12:55] Chunk generator performance: 132.15 ch / sec (1568 ch total)
[16:12:57] Chunk generator performance: 132.42 ch / sec (1837 ch total)
[16:12:59] Chunk generator performance: 133.18 ch / sec (2115 ch total)
[16:13:01] Chunk generator performance: 133.12 ch / sec (2381 ch total)
[16:13:03] Chunk generator performance: 133.67 ch / sec (2659 ch total)
[16:13:05] Chunk generator performance: 133.35 ch / sec (2920 ch total)
[16:13:07] Chunk generator performance: 133.14 ch / sec (3182 ch total)
[16:13:09] Chunk generator performance: 133.53 ch / sec (3459 ch total)
[16:13:11] Chunk generator performance: 133.51 ch / sec (3727 ch total)
[16:13:13] Chunk generator performance: 133.51 ch / sec (3995 ch total)
[16:13:15] Chunk generator performance: 133.57 ch / sec (4265 ch total)
[16:13:17] Chunk generator performance: 133.99 ch / sec (4547 ch total)
[16:13:19] Chunk generator performance: 134.13 ch / sec (4821 ch total)
[16:13:21] Chunk generator performance: 134.29 ch / sec (5096 ch total)


Ryzen 7 5800X:

Code:
[18:26:38] Chunk generator performance: 174.97 ch / sec (513 ch total)
[18:26:40] Chunk generator performance: 174.16 ch / sec (860 ch total)
[18:26:42] Chunk generator performance: 173.94 ch / sec (1208 ch total)
[18:26:44] Chunk generator performance: 173.50 ch / sec (1553 ch total)
[18:26:46] Chunk generator performance: 174.29 ch / sec (1909 ch total)
[18:26:48] Chunk generator performance: 174.90 ch / sec (2267 ch total)
[18:26:50] Chunk generator performance: 175.52 ch / sec (2627 ch total)
[18:26:52] Chunk generator performance: 175.13 ch / sec (2972 ch total)
[18:26:54] Chunk generator performance: 174.92 ch / sec (3319 ch total)
[18:26:56] Chunk generator performance: 175.39 ch / sec (3679 ch total)
[18:26:58] Chunk generator performance: 175.30 ch / sec (4028 ch total)
[18:27:00] Chunk generator performance: 175.78 ch / sec (4392 ch total)
[18:27:02] Chunk generator performance: 176.44 ch / sec (4762 ch total)
[18:27:04] Chunk generator performance: 176.74 ch / sec (5124 ch total)

Nice, good to see that there haven't been any regressions from 2018! Congrats on actually finding stock for the processor...
The 5600X and 5800X can easily be found at MSRP here in The Netherlands. The 5900X and 5950X on the other hand...
Pages: 1 2 3 4 5