Kelsidavis-WoWee/include/core/memory_monitor.hpp
Kelsi c047446fb7 Add dynamic memory-based asset caching and aggressive loading
- Add MemoryMonitor class for dynamic cache sizing based on available RAM
- Increase terrain load radius to 8 tiles (17x17 grid, 289 tiles)
- Scale worker threads to 75% of logical cores (no cap)
- Increase cache budget to 80% of available RAM, max file size to 50%
- Increase M2 render distance: 1200 units during taxi, 800 when >2000 instances
- Fix camera positioning during taxi flights (external follow mode)
- Add 2-second landing cooldown to prevent re-entering taxi mode on lag
- Update interval reduced to 33ms for faster streaming responsiveness

Optimized for high-memory systems while scaling gracefully to lower-end hardware.
Cache and render distances now fully utilize available VRAM on minimum spec GPUs.
2026-02-08 23:15:26 -08:00

47 lines
842 B
C++

#pragma once
#include <cstddef>
#include <cstdint>
namespace wowee {
namespace core {
/**
* Monitors system memory and provides dynamic cache sizing
*/
class MemoryMonitor {
public:
static MemoryMonitor& getInstance();
/**
* Initialize memory monitoring
*/
void initialize();
/**
* Get total system RAM in bytes
*/
size_t getTotalRAM() const { return totalRAM_; }
/**
* Get currently available RAM in bytes
*/
size_t getAvailableRAM() const;
/**
* Get recommended cache budget (30% of available RAM)
*/
size_t getRecommendedCacheBudget() const;
/**
* Check if system is under memory pressure
*/
bool isMemoryPressure() const;
private:
MemoryMonitor() = default;
size_t totalRAM_ = 0;
};
} // namespace core
} // namespace wowee