arkavo-org / arkavo-org/VRMMetalKit
Expose detailed performance metrics for profiling
- Dominant language
- Swift
- Stars
- 6
- Forks
- 2
- Avg merge
- 18h 51m
- Merged PRs (30d)
- 26
Description
## Description
While `PerformanceTracker` exists, it would be helpful to expose more granular metrics for advanced optimization scenarios.
## Proposed Addition
```swift
public struct DetailedPerformanceMetrics {
// Existing metrics
var frameTimeAvgMs: Double
var frameTimeP95Ms: Double
var gpuTimeP95Ms: Double
var drawCalls: Int
var triangleCount: Int
// New metrics
var vertexCount: Int
var shaderSwitches: Int
var textureBinds: Int
var memoryUsageMB: Float
var culledMeshCount: Int
}
public func getDetailedPerformanceMetrics() -> DetailedPerformanceMetrics?
```
## Use Case
- Identifying bottlenecks in production apps
- Optimizing for older devices
- AR mode performance tuning
## Benefits
- Better debugging tools for developers
- Data-driven optimization decisions
- No performance impact when not accessed
## Priority
**LOW** - Nice to have for optimization
Contributor guide
Research direction
Start by locating PerformanceTracker and determine where its existing frame, GPU, draw-call, and triangle metrics are collected. Compare those metrics with the proposed DetailedPerformanceMetrics fields and assess how vertex, shader, texture, memory, and culling data could be exposed. Done means the detailed API is available for profiling without impact when unused, including AR-mode use cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- computer-graphics, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100