Cooking for Blockheads

Cooking for Blockheads

145M Downloads

Performance Problems with the Cooking Table

zsn741656478 opened this issue ยท 10 comments

commented

https://sparkprofiler.github.io/#Oh7E2gkfIK
https://i.loli.net/2019/01/12/5c39f1014f279.png
My server TPS become zero when player use the cooking table.
Please fix it.

commented

Duplicate #489

commented

That kitchen has got to be huge, can you find the kitchen causing this and take a screenshot so I can see what's going on?

commented

Ok. I will give you screenshot later.

commented

+1 here
Huge tps drop after fast-click crafting on cooking table.
Minecraft: 1.12.2
Forge: 2768
SpongeForge: 7.1.4
CFB: 1.12.2-6.4.69
2019-02-17_19 11 14
2019-02-17_19 10 58
unknown 1

commented

https://sparkprofiler.github.io/#Oh7E2gkfIK
https://i.loli.net/2019/01/12/5c39f1014f279.png
My server TPS become zero when player use the cooking table.
Please fix it.

Can you send full modlist?

commented

my server have this problem, too

commented

Hi folks - regarding slow recipe list and crafting on the cooker in the enigmatica 2 modpack - I figured out by tinkering how to get it to go away - thought it might be handy for your investigations.

I have zero slowdown now, after removing the cooking utensils from the top of the stove. It does mean that I need them in my bag to craft but it seems having them in place on the cooker was somehow linked to the huge lag. Hope that helps! :D

commented

Some thoughts on resolving this.

  1. Add ability to disable kitchen floor being a part of the KitchenMultiBlock. It can (and often is) purely decorative. If someone wanted to connect a StorageDrawer system - they'd probably connect it to the table using a Controller Slave.
  2. I looked through the way compat is implemented and I noticed one thing regarding StorageDrawers support.
    Basically - no offence, but - it's dumb.
    SD allows access to all drawers of the drawer "system" without the need to scan it's whole (often huge) block structure to an internal buffer every time the Kitchen is opened.
    Basically - you'd need to mark Controllers, Controller Slaves and the Drawers themselves as item providers that don't need additional searching and ask them nicely for a list of items they have and, when needed - to remove items used by crafting process.
    This way all the work regarding handling of item lists and whatnot is done by the StorageDrawers itself, not adding an unnecessary overhead.
commented

Still not sure what's causing it for the original poster (maybe there's just a ridiculously large amount of food recipes?), but for @braunly the amount of kitchen floor blocks definitely plays a role too. Kitchen multiblocks currently are scanned when opening the cooking table, so for each of those 100+ floor blocks it has to check 5 directions for kitchen blocks each.