Supported Runtimes
Inflight is designed to be runtime-agnostic, supporting multiple programming languages and runtime environments. Each runtime has specific optimizations tailored to its characteristics.
Six Runtimes, One Platform
Full optimization support across the most popular runtime environments:
Optimization Details
Each runtime has tailored optimization recommendations based on its unique characteristics:
Java
Full support for JVM-based applications including memory management, garbage collection tuning, and thread optimization.
Optimization Areas
Memory Management
- Heap size optimization (-Xms, -Xmx)
- Metaspace configuration
- Direct memory tuning
- Memory pool optimization
Garbage Collection
- GC algorithm selection (G1, ZGC, Shenandoah)
- GC tuning parameters
- Pause time optimization
- Throughput vs latency tradeoffs
Threading
- Thread pool sizing
- Parallel GC threads
- Concurrent GC threads
- JIT compilation threads
JIT Optimization
- Tiered compilation settings
- Code cache sizing
- Inline thresholds
- Compiler directives
Go
Comprehensive support for Go applications including garbage collection, memory allocation, and concurrency optimization.
Optimization Areas
Garbage Collection
- GOGC percentage tuning
- GC target percentage
- Memory limit configuration
- GC pacing optimization
Memory
- GOMEMLIMIT configuration
- Stack size optimization
- Heap profiling guidance
- Memory ballast strategies
Concurrency
- GOMAXPROCS optimization
- Goroutine pool sizing
- Channel buffer optimization
- Lock contention analysis
Runtime
- Debug settings optimization
- Trace configuration
- CPU profiling guidance
- Block profiling setup
Rust
Performance optimization for Rust applications including memory allocation patterns, async runtime tuning, and build configuration.
Optimization Areas
Memory Allocation
- Custom allocator selection
- Arena allocation strategies
- Memory layout optimization
- Cache-friendly data structures
Async Runtime
- Async runtime worker thread sizing
- Runtime flavor selection
- Task scheduling optimization
- Blocking thread pool configuration
Concurrency
- Thread pool configuration
- Data parallelism tuning
- Channel sizing recommendations
- Lock-free structure guidance
Build Optimization
- Release profile settings
- LTO configuration
- Codegen units tuning
- Target-specific optimization
.NET
CLR optimization for .NET applications including garbage collection modes, JIT compilation, and threading configuration.
Optimization Areas
Garbage Collection
- GC mode selection (Workstation/Server)
- Heap generation sizing
- LOH threshold configuration
- Background GC optimization
Memory Management
- Heap configuration
- Memory limit settings
- GC regions optimization
- Native memory tracking
JIT Compilation
- Tiered compilation settings
- Ready-to-run optimization
- Dynamic PGO configuration
- Crossgen2 guidance
Threading
- Thread pool tuning
- IO completion ports sizing
- Timer resolution optimization
- Async/await best practices
Python
Performance optimization for Python applications including GIL considerations, memory management, and multiprocessing guidance.
Optimization Areas
Memory Management
- Object allocation tuning
- GC threshold optimization
- Memory pool configuration
- Reference counting optimization
Concurrency
- Multiprocessing pool sizing
- AsyncIO event loop tuning
- Thread pool executor configuration
- GIL contention mitigation
Runtime Optimization
- Interpreter optimization flags
- Bytecode optimization
- Import optimization
- Startup time reduction
C Extension
- Native extension optimization
- Scientific computing library tuning
- Native compilation guidance
- Buffer protocol optimization
Elixir
BEAM VM optimization for Elixir applications including scheduler tuning, process management, and memory configuration.
Optimization Areas
Scheduler
- Scheduler thread count
- Dirty scheduler configuration
- Scheduler bind type
- Load balancing optimization
Memory
- Process heap sizing
- Binary heap configuration
- ETS table optimization
- Garbage collection tuning
Process Management
- Process limit configuration
- Port limit tuning
- Atom limit optimization
- Message queue management
Distribution
- Distribution buffer sizing
- Connection management
- Node communication tuning
- Cluster optimization
Coming Soon
We're actively working on support for additional runtimes:
Node.js
V8 engine optimization for Node.js applications including memory management and event loop tuning.
Planned Features
- V8 heap configuration
- Memory limits
- UV thread pool sizing
- Garbage collection flags
Why Runtime-Agnostic?
Modern applications are polyglot. A single product might use Java for backend services, Go for infrastructure tooling, Python for data processing, and Elixir for real-time features. Inflight understands this reality.
Unified View
See optimization opportunities across all your runtimes in one dashboard, regardless of the underlying technology.
Consistent Process
The same workflow applies whether you're tuning JVM garbage collection, Go memory limits, or BEAM schedulers.
Future-Proof
As your technology stack evolves, Inflight grows with you. No need to switch tools when adopting new languages.
Team Efficiency
One platform for all your teams means consistent best practices and shared learnings across the organization.
Need Another Runtime?
If your team uses a runtime not listed here, let us know. We prioritize new runtime support based on customer demand.
Contact us at [email protected] to request support for your runtime.