Tags
Creators
Details
All versions
1.8.1
Release
FPSFlow 1.8.13 months ago 179
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Fabric
Supported environments
Client-side
Changes
[1.8.1]
Added
- Lithium-inspired performance optimizations — FPSFlow 1.8.1 integrates several key optimization techniques adapted from CaffeineMC's excellent Lithium mod, reimplemented from scratch to respect Lithium's license and ensure full compatibility with the FPSFlow codebase:
- Compact Sine Table (
CompactSineTable.java) — A memory-efficient sine LUT that reduces table size from 256 KB to 64 KB using trigonometric identities (sin(-x) = -sin(x), sin(x) = sin(π/2 - x)). Reduces CPU cache pressure during rotation-heavy rendering while maintaining bit-for-bit compatibility with Minecraft's MathHelper. - Direction Constants Caching (
DirectionValuesMixin.java,FastDirection.java) — Prevents repeated defensive array copies fromDirection.values()in hot code paths by providing cached references. Every call toEnum.values()in Java creates a new array allocation; this optimization eliminates that overhead in frequently-called redstone, block update, and entity collision code. - Fast BlockPos Utilities (
FastBlockPos.java) — Thread-local mutable BlockPos for iteration contexts plus efficient long-packing for hash-based collections, reducing GC pressure in chunk scanning and neighbor-iteration hot loops. - Collection Helper (
FastCollectionHelper.java) — Pre-sized HashMap/HashSet factories with optimal initial capacities, identity-based sets for entity classification, and utility methods that avoid the common allocation pitfalls found in vanilla's collection usage.
- Compact Sine Table (
- Full Lithium attribution — All adapted code paths include Javadoc
@seereferences andInspired bycomments linking to the upstream Lithium repository.
Changed
- Version bumped to 1.8.1 — Gradle property
mod_versionupdated from1.8to1.8.1. - OptimizationManager module list extended — New lightweight utility modules are registered on startup (no tick overhead, no Minecraft class dependencies).
Fixed
- None.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ayg7iYUG:VQRvg6S8"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ayg7iYUG:VQRvg6S8"
}
