▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Chionanthus
Chionanthus

Chionanthus

Optimizes networking and prevents common connection issues

65
5

Chionanthus

Available on Fabric Available on Modrinth Available on GitHub

Overview

Chionanthus is a high-performance network optimization mod for Fabric that dramatically reduces bandwidth overhead and improves connection efficiency. Through intelligent packet batching, compression pooling, and adaptive flush strategies, Chionanthus optimizes Minecraft's network layer without compromising compatibility or stability.

Features

Network Layer Optimizations

Intelligent Packet Batching

  • Consolidates multiple packets into single network operations
  • Reduces system call overhead compared to vanilla
  • Three adaptive flush strategies: Adaptive, Tick-Aligned, and Thread-Local

Advanced Compression Handling

  • Thread-local object pooling eliminates repeated Deflater/Inflater allocation
  • Buffer pooling reduces byte array allocations during compression
  • Configurable compression levels with hot-reload support

Optimized Packet Framing

  • Custom variable-length integer encoding/decoding
  • Reduced overhead in packet length encoding
  • Streamlined frame decoder and prepender implementations

Server List Performance

Dynamic Thread Pool Management

  • Adaptive thread pools that scale with server count
  • Prevents resource waste from vanilla's fixed 50-thread pool
  • Intelligent timeout handling prevents UI freezes on unresponsive servers
  • Proper lifecycle management prevents thread leaks

Performance Monitoring

Built-in Metrics System

  • Tracks packet counts, compression ratios, and flush efficiency
  • Thread-specific flush pattern analysis
  • Optional debug logging at configurable intervals
  • Zero performance impact when disabled

Technical Details

To achieve its optimizations, Chionanthus:

  • Injects custom handlers into Netty pipelines during connection initialization
  • Replaces vanilla compression handlers with pooled, high-performance alternatives
  • Manages thread-local resource pools for lock-free, per-thread optimization
  • Uses atomic primitives for lock-free coordination in flush handlers

Flush Strategies

Adaptive Flush Handler Dynamically adjusts batching based on current packet rate for optimal performance across varying network conditions.

Tick-Aligned Flush Handler Batches packets per game tick (50ms intervals) for consistent, predictable network behavior.

Thread-Local Flush Strategy Applies thread-specific thresholds optimized for render, server, and IO threads.

Thread Safety

All optimizations are designed with thread safety in mind:

  • ThreadLocal pooling provides lock-free per-thread instances
  • Atomic operations eliminate synchronization overhead
  • Proper volatile usage ensures visibility across threads

Configuration

Chionanthus provides extensive configuration options:

Network Settings

  • Maximum packet size: Configure packet size limit for mods and data packs with large data transfers
  • Compression level: Fine-tune compression
  • Flush consolidation: Toggle packet batching on/off
  • Flush strategy: Enable/disable Adaptive, Tick-Aligned, and Thread-Local strategies
  • Base flush threshold: Adjust batching aggressiveness
  • Max flush delay: Set latency cap in milliseconds

Server List Settings

  • Thread pool sizing: Minimum/maximum threads and overhead calculation
  • Thread keep-alive time: Control thread lifecycle
  • Pool recreation threshold: Prevent resource drift
  • Ping timeout: Prevent user interface freezes on unresponsive servers

Debug & Monitoring

  • Performance metrics: Optional detailed logging (performance impact when enabled)
  • Metrics interval: Configure logging frequency
  • Hot-reload: Apply configuration changes without restart (where supported)

Performance Impact

Flush Consolidation: Reduces from 1 syscall per packet to 1 syscall per batch

Compression Pooling: Eliminates allocation overhead by reusing pooled instances

Thread Pool Scaling: Dynamic sizing based on actual server list size vs vanilla's fixed 50 threads

Совместимость

Minecraft: Java Edition

1.19.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Создатели

Детали

Лицензия:MIT-0
Опубликован:4 месяца назад
Обновлён:1 месяц назад
Главная