Official performance targets and measurements for nself.
Last Updated: January 31, 2026
Version: 0.9.8
| Operation |
Target |
Measured |
Status |
| Build (clean, no services) |
< 10s |
7s |
โ
|
| Build (clean, all services) |
< 30s |
25s |
โ
|
| Build (incremental) |
< 5s |
3s |
โ
|
| Config generation only |
< 2s |
1s |
โ
|
| Operation |
Target |
Measured |
Status |
| Start (required services only) |
< 30s |
25s |
โ
|
| Start (all services) |
< 60s |
50s |
โ
|
| Stop (all services) |
< 10s |
6s |
โ
|
| Restart (single service) |
< 5s |
3s |
โ
|
| Status check |
< 1s |
0.5s |
โ
|
| Operation |
Target |
Measured |
Status |
| Migration (up, 10 files) |
< 5s |
3s |
โ
|
| Migration (down, 10 files) |
< 5s |
4s |
โ
|
| Seed (1000 rows) |
< 10s |
7s |
โ
|
| Backup (1GB database) |
< 60s |
45s |
โ
|
| Restore (1GB backup) |
< 90s |
70s |
โ
|
| Endpoint |
Target |
Measured (p50) |
Measured (p95) |
Status |
| GraphQL (simple query) |
< 50ms |
20ms |
30ms |
โ
|
| GraphQL (complex query) |
< 200ms |
100ms |
150ms |
โ
|
| GraphQL (mutation) |
< 100ms |
50ms |
80ms |
โ
|
| Auth login |
< 100ms |
60ms |
80ms |
โ
|
| Auth verify token |
< 50ms |
25ms |
35ms |
โ
|
| Scenario |
Target |
Measured |
Status |
| Concurrent users |
1000 |
1200 |
โ
|
| Requests/second |
5000 |
6000 |
โ
|
| Error rate |
< 0.1% |
0.05% |
โ
|
| 95th percentile latency |
< 200ms |
150ms |
โ
|
-
CPU: 4 vCPU
-
RAM: 8GB
-
Disk: SSD
-
Network: 1Gbps
- All optional services enabled
- Monitoring bundle enabled
- 2 custom services
- Production mode
- Duration: 5 minutes
- Ramp-up: 1 minute
- Think time: 1-3 seconds
- Distribution: Normal
| Version |
Clean Build |
Incremental |
| v0.9.6 |
32s |
5s |
| v0.9.7 |
28s |
4s |
| v0.9.8 |
25s |
3s |
| Version |
Simple Query |
Complex Query |
| v0.9.6 |
45ms |
180ms |
| v0.9.7 |
35ms |
160ms |
| v0.9.8 |
30ms |
150ms |
- Use incremental builds when possible
- Disable unused services
- Use build caching (v0.9.8+)
- Configure PgBouncer for connection pooling
- Enable Redis caching
- Use CDN for static files
- Optimize database queries
- Create appropriate indexes
- Use prepared statements
- Enable query caching
- Regular VACUUM ANALYZE
See Also: