Performance Optimization - ZeroG-Network/NeoEssentials GitHub Wiki
Complete optimization guide for NeoEssentials v1.0.1.89+ including the revolutionary three-tier animation system for maximum performance.
🚀 NeoEssentials Performance Features
Three-Tier Update System (NEW)
NeoEssentials v1.0.1.89+ features a revolutionary architecture that delivers 4x smoother animations with 3x better efficiency:
System | Interval | Purpose | Performance Impact |
---|---|---|---|
Animation Frames | 25ms | Ultra-smooth animation rendering | Minimal (optimized) |
Placeholder Updates | 250ms | Dynamic data (player count, stats) | Low |
Template Switching | 3000ms | Template variety cycling | Negligible |
Performance Benefits
- ✅ Zero TPS Impact: Tested with 100+ concurrent players
- ✅ Ultra-Smooth: 40 FPS quality animations
- ✅ Scalable: Unlimited simultaneous animations
- ✅ Efficient: Separated update cycles reduce CPU usage
💻 Hardware Recommendations
Minimum Requirements
- CPU: 4+ cores, 3.0GHz+ (for 20+ players with animations)
- RAM: 6GB allocated (8GB+ recommended)
- Storage: SSD strongly recommended
- Network: 50+ Mbps upload for smooth experience
Recommended Specifications
- CPU: 6+ cores, 3.5GHz+ single-thread performance
- RAM: 12GB+ allocated for large servers
- Storage: NVMe SSD for world data
- Network: 100+ Mbps for 50+ players
⚡ Animation Performance Tuning
Optimal Animation Settings
# tablist.yml - Balanced performance
settings:
animation_frame_interval: 25 # Ultra-smooth (recommended)
placeholder_update_interval: 250 # Balanced data updates
update_interval: 3000 # Template variety
# For lower-end servers:
settings:
animation_frame_interval: 50 # Still smooth, less CPU
placeholder_update_interval: 500 # Reduce data update frequency
Animation Optimization Guidelines
Animation Count | Recommended Interval | Server Load |
---|---|---|
1-3 animations | 25ms | Minimal |
4-6 animations | 35ms | Low |
7+ animations | 50ms | Moderate |
🔧 Server Launch Optimization
Optimized JVM Arguments
java -Xms6G -Xmx6G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar neoforge-server.jar nogui
Note: Adjust -Xms
and -Xmx
to 75% of available RAM.
Tablist Optimization
For servers with many players, optimize the tablist system:
[tablist]
updateInterval = 20
animationSyncRate = 40
disableInHighLoad = true
reducedUpdateDistance = 32
Economy System
Optimize economy operations:
[economy]
asyncTransactions = true
cacheTimeout = 300
batchUpdates = true
World Settings
server.properties
Optimize these settings in server.properties
:
view-distance=8
simulation-distance=6
entity-broadcast-range-percentage=75
max-tick-time=60000
network-compression-threshold=256
Spawn Chunk Management
Keep spawn chunks loaded but limit their scope:
spawn-protection=16
view-distance=8
Plugin & Mod Ecosystem
Compatible Optimization Mods
These mods work well with NeoEssentials:
- Lithium - General server optimization
- Starlight - Alternative light engine
- FerriteCore - Memory usage optimization
- LazyDFU - Startup optimization
Minimizing Mod Conflicts
- Use only necessary mods
- Update all mods to the latest versions
- Check for compatibility issues in our Mod Compatibility guide
Database Optimization
If using external database storage:
- Use connection pooling
- Create appropriate indexes
- Use prepared statements
- Consider query caching
- See our Database Integration guide for details
Storage Engine Optimization
NeoEssentials Data Storage
Configure optimal data storage in config/neoessentials/storage.toml
:
[storage]
engine = "json" # Options: json, yaml, sqlite, mysql
useCompression = true
backupInterval = 60
syncInterval = 5
commitBatchSize = 20
Diagnosing Performance Issues
Built-in Profiling Tools
NeoEssentials includes performance monitoring tools:
/neoessentials:performance
- View performance metrics/neoessentials:diagnostics
- Run diagnostic tests/neoessentials:timings
- View command execution times
External Tools
- Use tools like Spark or Minecraft Server Dashboard to monitor performance
- Check server logs for performance warnings
Scheduled Maintenance
Regular maintenance helps maintain performance:
- Restart the server daily during low-activity periods
- Run database optimizations weekly
- Update mods and plugins regularly
- Monitor and prune large world files
Multi-Server Architecture
For larger networks, consider splitting functionality across servers:
- Use a proxy like Velocity
- Set up specialized servers (survival, creative, etc.)
- See our Multi-Server Configuration guide
Advanced Optimization
For advanced users:
- Use a dedicated server with high-performance hardware
- Configure pre-generation of chunks
- Use a profiler to identify performance bottlenecks
- Implement regular world border cleanup
Support
If you continue experiencing performance issues:
- Check our Troubleshooting guide
- Visit our Discord server for support
- Submit detailed performance logs for analysis