New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance issues with appeng.helpers.PatternHelper.isValidItemForSlot ? #3411

Closed
jkroepke opened this Issue Mar 4, 2018 · 9 comments

Comments

Projects
None yet
4 participants
@jkroepke

jkroepke commented Mar 4, 2018

Description

Today, I start profiling my server to detect some issues with the performance.

bildschirmfoto 2018-03-04 um 23 07 40

bildschirmfoto 2018-03-04 um 23 16 12

bildschirmfoto 2018-03-04 um 23 18 02

Our central ME Network does lot of stuff in the same time, e.g. process some periodic crafting with crafting cards, import and export a lot items, transfer over a million RF via P2P Tunnels.

There is no "I do this that not the performance goes down". Maybe you 'll finde some caching issues or I ll need some help to identifiy the issue.

It might be related to the update to RV9 because I do the class first time on VisualVM consuming such power. Happend with RV8, too.

Environment

	| State     | ID                       | Version                  | Source                                              | Signature                                |
	|:--------- |:------------------------ |:------------------------ |:--------------------------------------------------- |:---------------------------------------- |
	| UCHIJAAAA | minecraft                | 1.12.2                   | minecraft.jar                                       | None                                     |
	| UCHIJAAAA | mcp                      | 9.42                     | minecraft.jar                                       | None                                     |
	| UCHIJAAAA | FML                      | 8.0.99.99                | forge-1.12.2-14.23.2.2611-universal.jar             | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | forge                    | 14.23.2.2611             | forge-1.12.2-14.23.2.2611-universal.jar             | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | ivtoolkit                | 1.3.3-1.12               | minecraft.jar                                       | None                                     |
	| UCHIJAAAA | foamfixcore              | 7.7.4                    | minecraft.jar                                       | None                                     |
	| UCHIJAAAA | opencomputers|core       | 1.7.1.43                 | minecraft.jar                                       | None                                     |
	| UCHIJAAAA | woodconverter            | v2.9.2                   | [1.12]WoodConverter v2.9.2.jar                      | None                                     |
	| UCHIJAAAA | jei                      | 4.8.5.159                | jei_1.12.2-4.8.5.159.jar                            | None                                     |
	| UCHIJAAAA | abyssalcraft             | 1.9.4.4                  | AbyssalCraft-1.12.2-1.9.4.4.jar                     | 220f10d3a93b3ff5fbaa7434cc629d863d6751b9 |
	| UCHIJAAAA | chisel                   | MC1.12-0.1.1.28          | Chisel-MC1.12-0.1.1.28.jar                          | None                                     |
	| UCHIJAAAA | mantle                   | 1.12-1.3.1.21            | Mantle-1.12-1.3.1.21.jar                            | None                                     |
	| UCHIJAAAA | tconstruct               | 1.12.2-2.9.1.65          | TConstruct-1.12.2-2.9.1.65.jar                      | None                                     |
	| UCHIJAAAA | acintegration            | 1.6.2                    | AbyssalCraft Integration-1.12.2-1.6.2.jar           | 220f10d3a93b3ff5fbaa7434cc629d863d6751b9 |
	| UCHIJAAAA | appliedenergistics2      | rv5-stable-9             | appliedenergistics2-rv5-stable-9.jar                | None                                     |
	| UCHIJAAAA | bdlib                    | 1.14.3.12                | bdlib-1.14.3.12-mc1.12.2.jar                        | None                                     |
	| UCHIJAAAA | ae2stuff                 | 0.7.0.4                  | ae2stuff-0.7.0.4-mc1.12.2.jar                       | None                                     |
	| UCHIJAAAA | baubles                  | 1.5.2                    | Baubles-1.12-1.5.2.jar                              | None                                     |
	| UCHIJAAAA | extrautils2              | 1.0                      | extrautils2-1.12-1.7.4.jar                          | None                                     |
	| UCHIJAAAA | angelringforbauble       | 1.0.0                    | angelringforbauble-12.21.0.0.jar                    | None                                     |
	| UCHIJAAAA | applecore                | 3.1.0                    | AppleCore-mc1.12.2-3.1.0.jar                        | None                                     |
	| UCHIJAAAA | appleskin                | 1.0.9                    | AppleSkin-mc1.12-1.0.9.jar                          | None                                     |
	| UCHIJAAAA | aroma1997core            | 2.0.0.0.b144             | Aroma1997Core-1.12.2-2.0.0.0.b144.jar               | dfbfe4c473253d8c5652417689848f650b2cbe32 |
	| UCHIJAAAA | aroma1997sdimension      | 2.0.0.2.b65              | Aroma1997s-Dimensional-World-1.12.2-2.0.0.2.b65.jar | dfbfe4c473253d8c5652417689848f650b2cbe32 |
	| UCHIJAAAA | codechickenlib           | 3.1.5.331                | CodeChickenLib-1.12.2-3.1.5.331-universal.jar       | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | avaritia                 | 3.2.0                    | Avaritia-1.12-3.2.0.13-universal.jar                | None                                     |
	| UCHIJAAAA | avaritiatweaks           | 1.12.2-1.1               | AvaritiaTweaks-1.12.2-1.1.jar                       | 4ffa87db52cf086d00ecc4853a929367b1c39b5c |
	| UCHIJAAAA | base                     | 3.6.1                    | base-1.12.2-3.6.1.jar                               | None                                     |
	| UCHIJAAAA | bedbugs                  | @VERSION@                | BedBugs-1.12-1.0.1.jar                              | None                                     |
	| UCHIJAAAA | betterbedrockgen         | 6.0.2                    | BetterBedrockGenerator-1.12-6.1.1.jar               | None                                     |
	| UCHIJAAAA | bibliocraft              | 2.4.3                    | BiblioCraft[v2.4.3][MC1.12.0].jar                   | None                                     |
	| UCHIJAAAA | forestry                 | 5.8.0.250                | forestry_1.12.2-5.8.0.250.jar                       | None                                     |
	| UCHIJAAAA | binniecore               | unspecified              | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | binniedesign             | 1.0                      | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | genetics                 | 2.5.0.112                | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | botany                   | 2.5.0.112                | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | extrabees                | 2.5.0.112                | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | extratrees               | 2.5.0.112                | binnie-mods-1.12.2-2.5.0.112.jar                    | None                                     |
	| UCHIJAAAA | biomesoplenty            | 7.0.1.2325               | BiomesOPlenty-1.12.2-7.0.1.2325-universal.jar       | None                                     |
	| UCHIJAAAA | guideapi                 | 1.12-2.1.4-57            | Guide-API-1.12-2.1.4-57.jar                         | None                                     |
	| UCHIJAAAA | bloodmagic               | 1.12.2-2.2.7-90          | BloodMagic-1.12.2-2.2.7-90.jar                      | None                                     |
	| UCHIJAAAA | bookshelf                | 2.3.528                  | Bookshelf-1.12.2-2.3.528.jar                        | d476d1b22b218a10d845928d1665d45fce301b27 |
	| UCHIJAAAA | redstoneflux             | 2.0.1                    | RedstoneFlux-1.12-2.0.1.2-universal.jar             | d4f1503fbacd9b9fb767720420c5395104239ec9 |
	| UCHIJAAAA | brandonscore             | 2.4.0                    | BrandonsCore-1.12-2.4.0.152-universal.jar           | None                                     |
	| UCHIJAAAA | cyclopscore              | 0.11.4                   | CyclopsCore-1.12.2-0.11.4.jar                       | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |
	| UCHIJAAAA | capabilityproxy          | 2.1.1                    | CapabilityProxy-1.12.2-2.1.1.jar                    | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |
	| UCHIJAAAA | chesttransporter         | 2.8.7                    | ChestTransporter-1.12-2.8.7.jar                     | None                                     |
	| UCHIJAAAA | chickenchunks            | 2.4.1.71                 | ChickenChunks-1.12.2-2.4.1.71-universal.jar         | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | clumps                   | 2.0.0                    | Clumps-3.0.0.jar                                    | None                                     |
	| UCHIJAAAA | cofhcore                 | 4.3.10                   | CoFHCore-1.12.2-4.3.10.5-universal.jar              | None                                     |
	| UCHIJAAAA | cofhworld                | 1.1.1                    | CoFHWorld-1.12.2-1.1.1.12-universal.jar             | None                                     |
	| UCHIJAAAA | morpheus                 | 1.12-3.3.2               | Morpheus-1.12-3.3.2.jar                             | None                                     |
	| UCHIJAAAA | comforts                 | 1.1.0.2                  | comforts-1.12.2-1.1.0.2.jar                         | 5d5b8aee896a4f5ea3f3114784742662a67ad32f |
	| UCHIJAAAA | commoncapabilities       | 1.4.0                    | CommonCapabilities-1.12-1.4.0.jar                   | None                                     |
	| UCHIJAAAA | cookingforblockheads     | 6.3.17                   | CookingForBlockheads_1.12.1-6.3.17.jar              | None                                     |
	| UCHIJAAAA | craftingtweaks           | 8.1.6                    | CraftingTweaks_1.12.1-8.1.6.jar                     | None                                     |
	| UCHIJAAAA | cyberware                | 0.2.10.9                 | cyberware-1.12.2-0.2.10.9.jar                       | 67a0e286dc0d4b502f3c92ac20b953517b52d0a9 |
	| UCHIJAAAA | waila                    | 1.8.23                   | Hwyla-1.8.23-B38_1.12.jar                           | None                                     |
	| UCHIJAAAA | darkutils                | 1.8.193                  | DarkUtils-1.12.2-1.8.193.jar                        | d476d1b22b218a10d845928d1665d45fce301b27 |
	| UCHIJAAAA | debugserverinfo          | 1.0.5                    | DebugServerInfo-1.12.2-1.0.5.jar                    | None                                     |
	| UCHIJAAAA | ptrmodellib              | 1.0.0                    | Decocraft-2.5.4_1.12.2.jar                          | None                                     |
	| UCHIJAAAA | props                    | 2.5.4                    | Decocraft-2.5.4_1.12.2.jar                          | None                                     |
	| UCHIJAAAA | dirt2path                | 1.7.0                    | dirt2path-1.7.0.jar                                 | None                                     |
	| UCHIJAAAA | thermalfoundation        | 2.3.10                   | ThermalFoundation-1.12.2-2.3.10.6-universal.jar     | None                                     |
	| UCHIJAAAA | draconicevolution        | 2.3.10                   | Draconic-Evolution-1.12-2.3.10.284-universal.jar    | None                                     |
	| UCHIJAAAA | dsurround                | 3.4.9.6                  | DynamicSurroundings-1.12.2-3.4.9.6.jar              | 7a2128d395ad96ceb9d9030fbd41d035b435753a |
	| UCHIJAAAA | enderstorage             | 2.4.2.126                | EnderStorage-1.12.2-2.4.2.126-universal.jar         | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | valkyrielib              | 1.12.2-2.0.6b            | valkyrielib-1.12.2-2.0.7a.jar                       | None                                     |
	| UCHIJAAAA | environmentaltech        | 1.12.2-2.0.7b            | environmentaltech-1.12.2-2.0.7b.jar                 | None                                     |
	| UCHIJAAAA | etlunar                  | 1.12.2-2.0.7a            | etlunar-1.12.2-2.0.7a.jar                           | None                                     |
	| UCHIJAAAA | extracells               | 2.5.11                   | ExtraCells-1.12.2-2.5.11a48.jar                     | None                                     |
	| UCHIJAAAA | zerocore                 | 1.12-0.1.1.0             | zerocore-1.12-0.1.1.0.jar                           | None                                     |
	| UCHIJAAAA | bigreactors              | 1.12.2-0.4.5.46          | ExtremeReactors-1.12.2-0.4.5.46.jar                 | None                                     |
	| UCHIJAAAA | farmingforblockheads     | 3.1.5                    | FarmingForBlockheads_1.12-3.1.5.jar                 | None                                     |
	| UCHIJAAAA | mcmultipart              | 2.4.1                    | MCMultiPart-2.4.1.jar                               | None                                     |
	| UCHIJAAAA | mekanism                 | 1.12.2-9.4.3.330         | Mekanism-1.12.2-9.4.3.330.jar                       | None                                     |
	| UCHIJAAAA | sonarcore                | 5.0.6                    | sonarcore-1.12.2-5.0.6.jar                          | None                                     |
	| UCHIJAAAA | fluxnetworks             | 3.0.5                    | fluxnetworks-1.12.2-3.0.5.jar                       | None                                     |
	| UCHIJAAAA | foamfix                  | 0.9.4-1.12.2             | foamfix-0.9.4-1.12.2-anarchy.jar                    | None                                     |
	| UCHIJAAAA | forgelin                 | 1.6.0                    | Forgelin-1.6.0.jar                                  | None                                     |
	| UCHIJAAAA | tesla                    | 1.0.60                   | Tesla-1.12-1.0.60.jar                               | None                                     |
	| UCHIJAAAA | gendustry                | 1.6.5.8                  | gendustry-1.6.5.8-mc1.12.2.jar                      | None                                     |
	| UCHIJAAAA | globalxp                 | v1.4                     | globalxp-1.12.x-v1.4.jar                            | None                                     |
	| UCHIJAAAA | gravestone               | 1.10.1                   | gravestone-1.10.1.jar                               | None                                     |
	| UCHIJAAAA | hammercore               | 1.9.7.0                  | HammerCore-1.12.2-1.9.7.0.jar                       | 4d7b29cd19124e986da685107d16ce4b49bc0a97 |
	| UCHIJAAAA | ichunutil                | 7.1.4                    | iChunUtil-1.12.2-7.1.4.jar                          | None                                     |
	| UCHIJAAAA | hats                     | 7.0.0                    | Hats-1.12.2-7.0.2.jar                               | None                                     |
	| UCHIJAAAA | teslacorelib             | 1.0.13                   | tesla-core-lib-1.12-1.0.13.jar                      | d476d1b22b218a10d845928d1665d45fce301b27 |
	| UCHIJAAAA | industrialforegoing      | 1.12.2-1.12.2            | industrialforegoing-1.12.2-1.8.2-121.jar            | None                                     |
	| UCHIJAAAA | instantunify             | 1.1.1                    | instantunify-1.12.2-1.1.1.jar                       | None                                     |
	| UCHIJAAAA | integrateddynamics       | 0.11.4                   | IntegratedDynamics-1.12.2-0.11.4.jar                | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |
	| UCHIJAAAA | integrateddynamicscompat | 1.0.0                    | IntegratedDynamics-1.12.2-0.11.4.jar                | None                                     |
	| UCHIJAAAA | integratedtunnels        | 1.5.2                    | IntegratedTunnels-1.12.2-1.5.2.jar                  | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |
	| UCHIJAAAA | integratedtunnelscompat  | 1.0.0                    | IntegratedTunnels-1.12.2-1.5.2.jar                  | None                                     |
	| UCHIJAAAA | harvestcraft             | 1.12.2q                  | Pam's+HarvestCraft+1.12.2q.jar                      | None                                     |
	| UCHIJAAAA | integrationforegoing     | 1.12-1.5                 | IntegrationForegoing-1.12.2-1.5.jar                 | 4ffa87db52cf086d00ecc4853a929367b1c39b5c |
	| UCHIJAAAA | inventorytweaks          | 1.63+release.109.220f184 | InventoryTweaks-1.63.jar                            | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |
	| UCHIJAAAA | ironbackpacks            | 1.12.2-3.0.5-6           | IronBackpacks-1.12.2-3.0.5-6.jar                    | None                                     |
	| UCHIJAAAA | ironchest                | 1.12.2-7.0.40.824        | ironchest-1.12.2-7.0.40.824.jar                     | None                                     |
	| UCHIJAAAA | jaopca                   | 1.12.2-2.2.6.74          | JAOPCA-1.12.2-2.2.6.74.jar                          | None                                     |
	| UCHIJAAAA | oredictinit              | 1.12.2-2.2.1.67          | JAOPCA-1.12.2-2.2.6.74.jar                          | None                                     |
	| UCHIJAAAA | jeibees                  | 0.9.0.5                  | jeibees-0.9.0.5-mc1.12.2.jar                        | None                                     |
	| UCHIJAAAA | journeymap               | 1.12.2-5.5.2             | journeymap-1.12.2-5.5.2.jar                         | None                                     |
	| UCHIJAAAA | kleeslabs                | 5.3.2                    | KleeSlabs_1.12-5.3.2.jar                            | None                                     |
	| UCHIJAAAA | laggoggles               | FORGE-1.12.2-4.1         | LagGoggles-FORGE-1.12.2-4.1.jar                     | None                                     |
	| UCHIJAAAA | login_shield             | 1.12.2-1-g24c2a5e        | Login_Shield-1.12.2-1-g24c2a5e.jar                  | None                                     |
	| UCHIJAAAA | magicbees                | 1.0                      | MagicBees-1.12.2-3.1.9.jar                          | None                                     |
	| UCHIJAAAA | malisiscore              | 1.12.2-6.4.0             | malisiscore-1.12.2-6.4.0.jar                        | None                                     |
	| UCHIJAAAA | malisisdoors             | 1.12.2-7.3.0             | malisisdoors-1.12.2-7.3.0.jar                       | None                                     |
	| UCHIJAAAA | malisisswitches          | 1.12.2-5.1.0             | malisisswitches-1.12.2-5.1.0.jar                    | None                                     |
	| UCHIJAAAA | mekanismgenerators       | 9.4.3                    | MekanismGenerators-1.12.2-9.4.3.330.jar             | None                                     |
	| UCHIJAAAA | mekanismtools            | 9.4.3                    | MekanismTools-1.12.2-9.4.3.330.jar                  | None                                     |
	| UCHIJAAAA | mercurius_updater        | 1.0                      | MercuriusUpdater-1.12.2.jar                         | None                                     |
	| UCHIJAAAA | testdummy                | 1.12                     | MmmMmmMmmMmm-1.12-1.14.jar                          | None                                     |
	| UCHIJAAAA | mob_grinding_utils       | 0.3.4                    | MobGrindingUtils-0.3.4.jar                          | None                                     |
	| UCHIJAAAA | morebees                 | 1.12.2-1.4.4             | morebees-1.12.2-1.4.4.jar                           | None                                     |
	| UCHIJAAAA | netherportalfix          | 5.3.13                   | NetherPortalFix_1.12.1-5.3.13.jar                   | None                                     |
	| UCHIJAAAA | noendermanpickup         | 1.2                      | noep-1.2.jar                                        | None                                     |
	| UCHIJAAAA | nmsot                    | 1.2.1-mc1.12             | NoMobSpawningOnTrees-1.2.1-mc1.12.jar               | None                                     |
	| UCHIJAAAA | nei                      | 2.4.1                    | NotEnoughItems-1.12.2-2.4.1.233-universal.jar       | f1850c39b2516232a2108a7bd84d1cb5df93b261 |
	| UCHIJAAAA | opencomputers            | 1.7.1.43                 | OpenComputers-MC1.12.1-1.7.1.43.jar                 | None                                     |
	| UCHIJAAAA | xnet                     | 1.6.7                    | xnet-1.12-1.6.7.jar                                 | None                                     |
	| UCHIJAAAA | ocxnetdriver             | 1.0.1                    | ocxnetdriver-1.0.1-b8.jar                           | None                                     |
	| UCHIJAAAA | p455w0rdslib             | 2.0.28                   | p455w0rdslib-1.12-2.0.28.jar                        | None                                     |
	| UCHIJAAAA | twilightforest           | 3.6.345                  | twilightforest-1.12.2-3.6.345-universal.jar         | None                                     |
	| UCHIJAAAA | plustic                  | 6.3.6.2                  | plustic-6.3.6.2.jar                                 | None                                     |
	| UCHIJAAAA | prefab                   | 1.3.0.16                 | prefab-1.3.0.16.jar                                 | None                                     |
	| UCHIJAAAA | reborncore               | 3.6.7.210                | RebornCore-1.12.2-3.6.7.210-universal.jar           | 8727a3141c8ec7f173b87aa78b9b9807867c4e6b |
	| UCHIJAAAA | quantumstorage           | 4.4.8                    | QuantumStorage-1.12-4.4.8.jar                       | None                                     |
	| UCHIJAAAA | quickhomes               | 1.2                      | QuickHomes-1.2.jar                                  | None                                     |
	| UCHIJAAAA | quickleafdecay           | 1.2.4                    | QuickLeafDecay-MC1.12.1-1.2.4.jar                   | None                                     |
	| UCHIJAAAA | randomthings             | 4.1.3                    | RandomThings-MC1.12.2-4.1.3.jar                     | d72e0dd57935b3e9476212aea0c0df352dd76291 |
	| UCHIJAAAA | reccomplex               | 1.4.6                    | RecurrentComplex-1.4.6.jar                          | None                                     |
	| UCHIJAAAA | roguelike                | 1.8.0                    | RoguelikeDungeons-1.12.2-1.8.0.jar                  | None                                     |
	| UCHIJAAAA | signal-catcher           | 1.1                      | signalcatcher-1.1.jar                               | None                                     |
	| UCHIJAAAA | simplequarry             | 10r                      | SimpleQuarry_1.12.2-10r.jar                         | 4d7b29cd19124e986da685107d16ce4b49bc0a97 |
	| UCHIJAAAA | solarfluxreborn          | 3.42r                    | SolarFluxReborn_1.12.2-3.42r.jar                    | None                                     |
	| UCHIJAAAA | spiceoflife              | 1.3.11                   | SpiceOfLife-mc1.12-1.3.11.jar                       | None                                     |
	| UCHIJAAAA | stevescarts              | 2.4.17.88                | StevesCarts-1.12.2-2.4.17.88.jar                    | None                                     |
	| UCHIJAAAA | thermalcultivation       | 0.1.5                    | ThermalCultivation-1.12.2-0.1.5.3-universal.jar     | None                                     |
	| UCHIJAAAA | thermaldynamics          | 2.3.10                   | ThermalDynamics-1.12.2-2.3.10.4-universal.jar       | None                                     |
	| UCHIJAAAA | thermalexpansion         | 5.3.10                   | ThermalExpansion-1.12.2-5.3.10.15-universal.jar     | None                                     |
	| UCHIJAAAA | tickprofiler             | 1.12-0.0.4               | TickProfiler-1.12-0.0.4.jar                         | None                                     |
	| UCHIJAAAA | tinkegration             | 0.1.1                    | tinkegration-0.1.1.jar                              | None                                     |
	| UCHIJAAAA | tinkersaddons            | 1.0.7                    | Tinkers' Addons-1.12.1-1.0.7.jar                    | None                                     |
	| UCHIJAAAA | tinkertoolleveling       | 1.12-1.0.3.DEV.56fac4f   | TinkerToolLeveling-1.12-1.0.3.jar                   | None                                     |
	| UCHIJAAAA | treechopper              | 1.2.4                    | TreeChopper-1.12.2-1.2.4.jar                        | None                                     |
	| UCHIJAAAA | usefulnullifiers         | 1.4.1                    | usefulnullifiers-1.4.1.jar                          | None                                     |
	| UCHIJAAAA | wanionlib                | 1.12.2-1.5               | WanionLib-1.12.2-1.5.jar                            | None                                     |
	| UCHIJAAAA | wawla                    | 2.5.251                  | Wawla-1.12.2-2.5.251.jar                            | d476d1b22b218a10d845928d1665d45fce301b27 |
	| UCHIJAAAA | whitelistsync            | 1.1-1.12.2               | whitelistsync-1.1-1.12.2.jar                        | None                                     |
	| UCHIJAAAA | wct                      | 3.9.59                   | WirelessCraftingTerminal-1.12.2-3.9.59.jar          | None                                     |
	| UCHIJAAAA | woot                     | 1.12.2-1.0.0             | woot-1.12.2-1.0.0.jar                               | None                                     |
	| UCHIJAAAA | ynot                     | 0.2.2                    | YNot-0.2.2.jar                                      | None                                     |
	| UCHIJAAAA | hungeroverhaul           | 1.12.2-1.3.1.jenkins144  | HungerOverhaul-1.12.2-1.3.1.jenkins144.jar          | None                                     |
	| UCHIJAAAA | ocsensors                | 1.0.4                    | ocsensors-1.0.4-b23.jar                             | None                                     |
	| UCHIJAAAA | teslacorelib_registries  | 1.0.13                   | tesla-core-lib-1.12-1.0.13.jar                      | None                                     |
	| UCHIJAAAA | unidict                  | 1.12.2-2.3.3             | UniDict-1.12.2-2.3.3.jar                            | None                                     |
	| UCHIJAAAA | wrapup                   | 1.12-1.1.3               | WrapUp-1.12-1.1.3.jar                               | None                                     |
	| UD        | mtqfix                   | 1.1.0                    | minecraft.jar                                       | None                                     |
	| UD        | solarfluxreborncore      | 3.42r                    | minecraft.jar                                       | None                                     |
  • Minecraft Version: 1.12.2
  • AE2 Version: RV5 Stable 7
  • Forge Version: 14.23.2.1611
@yueh

This comment has been minimized.

Member

yueh commented Mar 5, 2018

This is pretty much the worst case, we can no longer mitigate in any way and have to reach out to forge for the crafting result. Which is literally the worst possible option and forge seems to have no intentions to improve it.

In general we can only cache items without NBT to avoid using the actual recipe or worse CraftingManager. Simply due to items with NBT having a humongous amount of different states and we had to cache each one explicitly. E.g. the most basic TE energy cell can have around 1.458 × 10^15 states. Maybe even more when taking the security functionality into account.

In this particular case it is even worse, as the actual recipe rejects the input as valid item and we have to reach out to CraftingManager, which will use the most naive implementation and just iterate over all recipes until one matches. In case some mod does something stupid like registering a separate recipe for every oredict entry instead of a single one.

So there is not much we can actually do about it. Maybe besides logging the offending recipe to identify it.

I was considering some changes to patterns in rv6, but they should not have any effect in this case. Mostly to reduce the memory consumption a bit for identical patterns (unlikely as long as there is no way to normalise recipes provided by forge) and mitigate some issues with high frequency chunk unloads/loads (somewhat rare, but it could have some benefit). With some actual data about how often it actually takes that path and be successful, it might be worth to throw out the fallback path in rv6 or later. With regards to 1.13 it might be good idea as some mod dev will have the glorious idea to stuff everything into a single item id with thousands of NBT values to replace metadata and constantly forcing it into the CraftingManager path... Or whatever else forge will add to make it slower.

Btw. is there a different way to contact you, like IRC, or maybe discord, etc? E.g. in case I have some ideas and need a guinea pig server.

@jkroepke

This comment has been minimized.

jkroepke commented Mar 5, 2018

Which is literally the worst possible option and forge seems to have no intentions to improve it.

Did you try it to start a discussion at forge or are the issues at forge rejected?

So there is not much we can actually do about it. Maybe besides logging the offending recipe to identify it.

I would like to help you. But I don't have any idea about the internals from forge, AE2 or Minecraft itself. I'm not a java developer.

like IRC, or maybe discord

If you have a own discord, I could join yours. I also have Slack oder gitter.im

@yueh

This comment has been minimized.

Member

yueh commented Mar 5, 2018

Did you try it to start a discussion at forge or are the issues at forge rejected?

Not in this particular case, but e.g. in regards to the poor performance of IItemHandlers (or any inventory in general). I would not say it was rejected. Just ignored until it kinda died.

If you have a own discord, I could join yours. I also have Slack oder gitter.im

I just leave a temporary discord invite here. It is more of a team/dev oriented server currently. Still not that convinced about using it for end user support. The usability is a bit lacking and it is too easy to miss stuff.
https://discord.gg/ZvESG7

yueh added a commit that referenced this issue Mar 5, 2018

Fixes #3411: Limit patterns without substitute to precise operations.
This will no longer ignore NBT data when searching for an itemstack,
thus less likely to trigger the CraftingManager fallback.
@colinrgodsey

This comment has been minimized.

colinrgodsey commented Mar 7, 2018

@yueh We're having the same issue, if you need a second test case. Saw the same hotspots come up in visualvm/warmroast. I'm familiar with minecraft development and internals, and some forge internals.

EDIT: Was thinking about trying to hack in some kind of profiling mode into the mod. Also wanted to do the same for ThermalDynamics to help profile routing issues there. But alas, more problems than time :(

@yueh

This comment has been minimized.

Member

yueh commented Mar 7, 2018

If you want, you can test #3412, either the CI build or if not possible compile the branch yourself (e.g. as drop-in replacement serverside).

By default it will log every recipe, which is a total failure and forge cannot even provide an alternative recipe. Or when the debug and crafting logs are enabled it will log every recipe taking this branch. But this could still be a valid option, just some mod having a non ideal approach to handling similar recipes.

In general, we did identify Mekanism as one cause. Due to them stuffing everything into a single item id and encode the actual tier or other data completely as NBT, these recipe will constantly fail. This can also easily affect TD as it requires an expensive NBT comparison for any kind of filtering instead of just the fast int comparison for item ids, metadata or damage value.

There are a few things we could still improve. But these can have major sideeffects. So short term I really want to avoid breaking a large amount of mods/patterns/recipes, just due to 1 or 2 mods being somewhat broken. Long term we should certainly remove this code path and just ignore mods, which add a single recipe per oredict entry instead of a combined one. Or forge actually improves recipe handling contrary to all expectations.

@leagris

This comment has been minimized.

leagris commented Mar 7, 2018

It is going to be a tough issue with 1.13 and disappearing meta.

@yueh

This comment has been minimized.

Member

yueh commented Mar 7, 2018

This could actually improve it. As would make it easier to distinguish different items. So no longer would foo:generic_item:0 be cobblestone dust and foo:generic_item:1 diamond dust. It should be foo:cobble_dust and foo:diamond_dust. NBT only being used for some additional data, like durability etc. Still not perfect for autocrafting as forge does not provide anything in relation to which tags are important for the recipe or which could be ignored. But that is a totally different issue.

But I totally expect that a few mods will decide it sucks and it would a great idea to break it and just have a foo:block and foo:item and put everything into NBT. Making it worse for everyone.

@jkroepke

This comment has been minimized.

jkroepke commented Mar 8, 2018

@yueh

This comment has been minimized.

Member

yueh commented Mar 8, 2018

Not directly related. Just another example of how badly crafting is handled by forge.

@yueh yueh added this to the rv5.stable - 1.12 milestone Mar 8, 2018

@yueh yueh closed this in b32834e Mar 8, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment