Creators-of-Create / Create

[Forge Mod] Building Tools and Aesthetic Technology
MIT License
2.87k stars 898 forks source link

Brass Funnels, Brass Tunnels and Smart Chutes cause extreme tps lag #5448

Closed Alan4245 closed 1 month ago

Alan4245 commented 1 year ago

Describe the Bug

Once you build at least a few Brass Funnels, Brass Tunnels and Smart Chutes used for some small farms, the world starts losing tps (20 to 8 in my case). I leave the reports before destroying them: https://spark.lucko.me/ZmsDwe1k8E

And after destroying them (in which the tps goes back to 20): https://spark.lucko.me/Qjqdz5OfTM

I ask you to give top priority to fixing this code optimization as it renders this beautiful mod unusable.

Reproduction Steps

Simply start using too many Brass Funnels, Brass Tunnels and Smart Chutes and your tps will go down

Expected Result

That the tps remained as before approx

Screenshots and Videos

No response

Crash Report or Log

No response

Operating System

Windows 10

Mod Version

0.5.1d

Minecraft Version

1.20.1

Forge Version

47.1.44

Other Mods

spark (by Iucko) Create Confectionery (by Furti_Two) Ars Creo (by baileyholl2) CreativeCore (by CreativeMD) Neat (by Vazkii) Dark Paintings (by DarkhaxDev) Architectury API (Fabric/Forge) (by shedaniel) Waystones (by BlayTheNinth) Patchouli (by Vazkii) Compressium (by DinnerBeef) AI Improvements (by QueenOfMissiles) Balm (Forge Edition) (by BlayTheNinth) Croptopia (by thethonk) Transparent (by Trikzon) Citadel (by sbom_xela) Explorer's Compass (by Chaosyr) Charm of Undying (Fabric/Forge/Quilt) (by TheIllusiveC4) Curios API (Forge) (by TheIllusiveC4) FastWorkbench (by Shadows_of_Fire) MrCrayfish's Furniture Mod (by MrCrayfish) Chat Heads (by dzwdz) Kotlin for Forge (by thedarkcolour) Athena (by CodexAdrian) Rechiseled (by SuperMartijn642) Bookshelf (by DarkhaxDev) Clumps (by Jaredlll08) SuperMartijn642's Config Lib (by SuperMartijn642) Just Enough Resources (JER) (by way2muchnoise) Sophisticated Core (by P3pp3rF1y) Bountiful (Forge) (by Ejektaflex) Alex's Mobs (by sbom_xela) Scarecrows' Territory (by SuperMartijn642) Create (by simibubi) Create Enchantment Industry (by DragonsPlus) TerraBlender (Forge) (by TheAdubbz) FastFurnace (by Shadows_of_Fire) Storage Drawers (by Texelsaur) Just Enough Items (JEI) (by mezz) NetherPortalFix (by BlayTheNinth) Structory (by botanydev) Mouse Tweaks (by YaLTeR) When Dungeons Arise - Forge! (by Aureljz) Mod Name Tooltip (by mezz) Magnesium/Rubidium Extras (by Anthxny) Create Crafts & Additions (by MRHminer) Farming for Blockheads (by BlayTheNinth) JourneyMap (by techbrew) Just Another Rotten Flesh to Leather Mod (by alexdaum1) ForgeEndertech (by EnderLanky) Nature's Compass (by Chaosyr) Cloth Config API (Fabric/Forge) (by shedaniel) FTB Library (Forge) (by FTB) Waddles (by Girafi) Reliquary Reincarnations (by P3pp3rF1y) Just Enough Professions (JEP) (by Mrbysco) AppleSkin (by squeek502) Caelus API (Forge) (by TheIllusiveC4) Kambrik (by Ejektaflex) PneumaticCraft: Repressurized (by desht_08) Ars Nouveau (by baileyholl2) Sophisticated Backpacks (by P3pp3rF1y) Lootr (Forge) (by Noobanidus) Dungeon Crawl (by xiroc_) Fast Leaf Decay (by olafskiii) Supplementaries (by MehVahdJukaar) Moonlight Lib (by MehVahdJukaar) TrashSlot (by BlayTheNinth) Controlling (by Jaredlll08) Iron Chests (by ProgWML6) Create Stuff & Additions (by Furti_Two) AmbientSounds 5 (by CreativeMD) Searchables (by Jaredlll08) Placebo (by Shadows_of_Fire) Chipped (by terrariumearth) Rubidium (by Asek3) FTB Ultimine (Forge) (by FTB) Biomes O' Plenty (by Forstride) Signpost (by Gollorum) Polymorph (Fabric/Forge/Quilt) (by TheIllusiveC4) Ash API (by Trikzon) The Twilight Forest (by Benimatic) The One Probe (by McJty) Large Ore Deposits (by EnderLanky) Framework (by MrCrayfish) Falling Leaves (Forge) (by Cheaterpaul) Handcrafted (by kekie6) SuperMartijn642's Core Lib (by SuperMartijn642) Security Craft (by Geforce132) Chunk Loaders (by SuperMartijn642) Repurposed Structures (Forge) (by telepathicgrunt) Inventory HUD+ (by dmitrylovin) Deeper and Darker (by KyaniteMods) Wither Skeleton Tweaks (by Shadows_of_Fire) MmmMmmMmmMmm (Target Dummy) (by MehVahdJukaar) Better Advancements (by way2muchnoise) Fusion (Connected Textures) (by SuperMartijn642) Colorful Hearts (by Terrails) GraveStone Mod (by henkelmax) Enchantment Descriptions (by DarkhaxDev) Baubley Heart Canisters (by traverse_joe) Create Jetpack (by possible_triangle) Resourceful Lib (by ThatGravyBoat) Crafting Tweaks (by BlayTheNinth) Torchmaster (by xalcon) OpenBlocks Elevator (by vsngarcia) Easier Sleeping (by GeheimagentNr1) Artifacts (by ochotonida) AttributeFix (by DarkhaxDev) Connected Glass (by SuperMartijn642)

Additional Context

No response

drwoops commented 1 year ago

are you playing with shaders?

Alan4245 commented 1 year ago

Nope

drwoops commented 1 year ago

The profile is very interesting. It looks like getCapability could use a bit of caching.

Alan4245 commented 1 year ago

I discovered more details: it seems that the problem only affects intelligent blocks that interact with item vaults.

drwoops commented 1 year ago

yes, this is a known issue with inventories using a slot-based implementation. funnels with a filter basically need to loop over slots to find a match. the larger the inventory the worse it gets

Alan4245 commented 1 year ago

Haven't more efficient algorithms been found at the moment?

drwoops commented 1 year ago

unfortunately, better algorithms would require different data structures

Lgmrszd commented 1 year ago

Seems it has been fixed in latest update (v0.5.1.e) @Alan4245 can you check that on your setup?

Alan4245 commented 1 year ago

Yes, the situation seems to have improved.