Sponge: Performance drop after upgrading from SF 3029 to 3064

Created on 30 Apr 2018  路  17Comments  路  Source: SpongePowered/Sponge

I am currently running

  • SpongeForge version: 3064
  • Java version: 1.8.0_151
  • Operating System: Ubuntu 16.04.4 LTS
  • Plugins/Mods: Plugins (15): Minecraft, Minecraft Coder Pack, SpongeAPI, SpongeForge, ActiveTime, AutoSpy, Buycraft, Dynmap, GriefPrevention, LuckPerms, Nucleus, SpongePrometheusExporter, SpongeSlack, TabManager, kristpay
    Mods (29): Minecraft, Minecraft Coder Pack, Forge Mod Loader, Minecraft Forge, SpongeAPI, SpongeForge, AutoRegLib, Baubles, BiblioCraft, CC Prometheus, CC: Tweaked, Chisel, Computronics, Dynmap, DynmapBlockScan, Iron Chest, Just Enough Items, MinimalPeripherals, OpenComputers, OpenComputers (Core), Plethora, Plethora Core, Quark, Sampling Performance Profiler, The Weirding Gadget, TickProfiler, WorldEdit, asielib, mercurius_updater

Issue Description

Last night we upgraded our server from SpongeForge 3029 to 3064, and have noticed a stable decline in TPS since. This 24-hour graph shows the TPS before upgrading, and since upgrading:

Here is a snippet of a 1-minute Sampler timing:
And the full NPS: https://crashes.switchcraft.pw/2018-04-30-19-13.nps

Additionally, a timings report: https://timings.aikar.co/?id=42dd995e9fa042ce9db99a8f1a35e9a6

Phit suggests this may be related to #1706.

performance 1.12

Most helpful comment

@phit is correct. The issue is due to commit https://github.com/SpongePowered/SpongeCommon/commit/ba151bbf8b3b83c3a0c00aea7cae4a41d86ca165

This needs to be reverted.

All 17 comments

Do you have stacktraces enabled for phase states in your config per chance?

generate-stacktrace-per-phase=false this? It's false in our config

Timings includes sponge configs right? @gabizou

generate-stacktrace-per-phase=false

In our config.

Here are timings from 3059 https://timings.aikar.co/?id=10692105563244718a7f3f8c3836daf3

Sampler nps file from 3059-
sponge3059.zip

@phit is correct. The issue is due to commit https://github.com/SpongePowered/SpongeCommon/commit/ba151bbf8b3b83c3a0c00aea7cae4a41d86ca165

This needs to be reverted.

Hey there! Is there any progress on this issue?

why did he use array maps?

Would it be possible to switch to Int2ObjectOpenHashMaps? They should have substantially better performance characteristics than the ArrayMap, whilst still avoiding the unboxing overhead.

@Lemmmy @ProsperCraft Please test latest SF and report back if problem is resolved.

Looks like you nailed it!
e95109fc059d4dadae4981702834ebc9

will continue to monitor.

closing for now then, if it becomes an issue again reply and I'll reopen!

Sorry, looks like I spoke too soon.

8dee3040666fb74412e331fc6c22c659

https://timings.aikar.co/?id=779c21a25943480894bc4481c38e890b

Here is a sampler profile
sponge.zip

Here is a warmroast-
sponge-warmroast.zip

@ProsperCraft Please test the following 2 jars

https://www.dropbox.com/s/npevwshdg2xkfxb/spongeforge-1.12.2-2655-7.1.0-BETA-TEST1.jar
https://www.dropbox.com/s/64kxyntig2v0yp3/spongeforge-1.12.2-2655-7.1.0-BETA-TEST2.jar

Let me know if any perform better. If not then the issue has nothing to do with these changes.

Just make samples with 3029 to see diff.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gabizou picture gabizou  路  5Comments

JoeSGT picture JoeSGT  路  5Comments

Xemiru picture Xemiru  路  3Comments

therealmikz picture therealmikz  路  4Comments

DarkArc picture DarkArc  路  3Comments