Repository navigation
Architectury API
Minecraft 1.20.1 / Forge: this page documents that build and its measurements. For the separate 170-control Minecraft 1.21.1 port, see Minecraft 1.21.1 NeoForge.
One control for Architectury API 9.2.14 (mod id architectury): events are dispatched with a plain reflective call instead of resolving a method handle again each time. Architectury is a shared library, so a saving per call is multiplied by every mod that uses it. The switch checks the code it would change against the tested build; another build is left untouched with one WARN line (see How the patches are applied).
| Key | Target | Side | Since | Kind | Result |
|---|---|---|---|---|---|
architectury_event_dispatch |
Architectury API 9.2.14 | BOTH | 1.0.2 | opt | 19× faster dispatch |
Since: 1.0.2 · Script (1.0.19 and earlier): bons_and_furious-EventFactory.js
Patched: dev.architectury.event.EventFactory.invokeMethod
Mixin (since 1.0.20): EventFactoryMixin
What upstream did. Architectury dispatches every listener call through MethodHandles.lookup().unreflect(method).bindTo(listener).invokeWithArguments(args) — re-resolving a MethodHandle for every listener on every event, with no cache. In the reference pack the server tick alone fires this about 73,000 times per second (34 dimensions × 54 LevelTick subscribers × 2 phases × 20 tps), and Spark attributed 4.9–10.5 % of server-thread time to this dispatch.
What the patch does. Calls method.invoke(listener, args) directly. Method.invoke's cached accessor makes the call fast on Java 17/21 without any handle cache of its own. InvocationTargetException is unwrapped so the listener's own exception is rethrown unchanged.
What stays the same. Listener order, arguments and exception behaviour are identical.
With Collections Of Optimizations (tested 4.4, since 1.0.27). Its option architectury.directEventDispatch makes the same change. While that option is on, this control steps aside; while it is off, this control applies and leaves COO's copy out, so only one copy runs. See Compatibility and target versions.
Measured. 649 → 34 ns per invocation (19×) in a 2,000,000-call JDK 17 harness. After installation, the client render-thread share of Architectury dispatch measured 0.39 %.
Bons and Furious is licensed GPL-3.0-only with upstream notices retained. Target mod names identify compatibility targets and do not imply endorsement; their code, assets and licenses remain their authors' property. All measurements on this wiki are focused method, phase or reproduction measurements from the pack the mod was built for, taken on the historical build named in each entry; they are not whole-game FPS or TPS promises and are not additive.
Bons and Furious
Minecraft 1.20.1 / Forge 1.0.34
- Home
- Installation and configuration
- How the patches are applied
- All controls
- Measurements and caveats
- Whole-modpack benchmark
- Troubleshooting and log messages
- Generation context fixes
- Version history
Compatibility
- Compatibility
- Known conflicts and workarounds
- Tested mod list
- Redundant mods
- Compatibility and target versions
Controls by mod
- Minecraft (51)
- Forge (6)
- Ad Astra (1)
- Alex's Caves (4)
- Alex's Mobs (2)
- Almost Unified (1)
- AmbientSounds (3)
- Architectury API (1)
- Ars Nouveau (2)
- Artifacts (1)
- Better Combat (1)
- Bosses of Mass Destruction (1)
- Butterflies (1)
- ChunkSending (1)
- CIT Reforged (1)
- Citadel (1)
- CoFH Core (1)
- Colorwheel (1)
- Cooking for Blockheads (1)
- Create (4)
- Critters and Companions (1)
- Cryptic Foes (2)
- Cucumber (1)
- Curios API (6)
- Distant Horizons (17)
- Dungeons Delight (1)
- Dynamic Trees (2)
- Embeddium (13)
- Entity Model Features (4)
- Entity Texture Features (1)
- EntityCulling (1)
- FancyMenu (1)
- Farmer's Delight (2)
- FD Bosses (2)
- Fowl Play (2)
- Fusion (2)
- GeckoLib (5)
- Goblins Tyranny (2)
- Hostile Villages (2)
- Ice and Fire (6)
- ImmediatelyFast (3)
- Immersive Engineering (1)
- Jaden's Nether Expansion (1)
- JEI (7)
- Kiwi (1)
- L2 Library (2)
- Legendary Monsters (1)
- Lionfish API (2)
- ModernFix (4)
- Mowzie's Mobs (1)
- Mutant Monsters (1)
- Nether Depths Upgrade (1)
- Occult (1)
- Oculus (12)
- Oh The Biomes We've Gone (1)
- Particular (1)
- Pehkui (1)
- Pipez (2)
- Placebo (1)
- Presence Footsteps (1)
- Radium Re-Reforged (8)
- Regions Unexplored (1)
- Relics (2)
- Ribbits (1)
- Ryoamic Lights (2)
- Sake's Structures (1)
- Scorched (1)
- Scuba Gear (1)
- Simply Swords (1)
- SlashBlade: Resharped (1)
- Slice & Dice (1)
- Spawn (4)
- Storage Drawers (2)
- Structure Gel API (1)
- Structurify (3)
- TaCZ (2)
- TerraBlender (2)
- Terramity (1)
- Under the Moon (1)
- Valkyrien Skies (15)
- Trackwork model repair
- Living Engineering (moved out in 1.0.20)
Links