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