78 lines
2.0 KiB
Markdown
78 lines
2.0 KiB
Markdown
# V-Hono Benchmark
|
|
|
|
Performance benchmarks for V-Hono web framework.
|
|
|
|
## Framework Comparison (500 connections, 100K requests)
|
|
|
|
| Framework | RPS | Errors | Avg Latency | P50 | P95 | P99 |
|
|
|-----------|-----|--------|-------------|-----|-----|-----|
|
|
| **v-hono (uSockets)** | **20,231** | **0** | **24.62ms** | **23.65ms** | **33.82ms** | **57.29ms** |
|
|
| v-hono (picoev) | 16,177 | 0 | 30.75ms | 26.25ms | 35.37ms | 111.38ms |
|
|
| veb (V官方) | 7,278 | 772 | 68.06ms | 55.79ms | 71.62ms | 98.90ms |
|
|
|
|
### Performance Summary
|
|
|
|
- **v-hono (uSockets) vs veb**: **2.78x faster**, zero errors
|
|
- **v-hono (uSockets) vs picoev**: **25% faster**, better P99 latency
|
|
- **v-hono (picoev) vs veb**: **2.22x faster**, zero errors
|
|
|
|
## Running Benchmarks
|
|
|
|
### 1. Start Test Server
|
|
|
|
**uSockets backend:**
|
|
```bash
|
|
v -enable-globals -cc gcc -ldflags "-ldbghelp" benchmark/usockets_server.v -o server.exe
|
|
./server.exe
|
|
```
|
|
|
|
**Picoev backend:**
|
|
```bash
|
|
v -enable-globals examples/picoev_example.v -o server.exe
|
|
./server.exe
|
|
```
|
|
|
|
### 2. Run Integration Tests
|
|
|
|
```bash
|
|
go run benchmark/usockets_verify.go
|
|
```
|
|
|
|
### 3. Run Performance Tests
|
|
|
|
```bash
|
|
# 200 connections, 100K requests
|
|
go run tests/main.go -url "http://127.0.0.1:9998" -c 200 -n 100000
|
|
|
|
# 500 connections, 100K requests
|
|
go run tests/main.go -url "http://127.0.0.1:9998" -c 500 -n 100000
|
|
```
|
|
|
|
### 4. Quick Concurrent Test (PowerShell)
|
|
|
|
```powershell
|
|
powershell -File benchmark/quick_test.ps1
|
|
```
|
|
|
|
## Test Files
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `usockets_server.v` | uSockets test server with full API |
|
|
| `usockets_verify.go` | Go integration test (17 test cases) |
|
|
| `quick_test.ps1` | PowerShell concurrent test script |
|
|
| `../tests/main.go` | Go performance benchmark tool |
|
|
|
|
## Test Coverage
|
|
|
|
The integration test (`usockets_verify.go`) covers:
|
|
|
|
- ✅ Basic GET routes (root, health, static)
|
|
- ✅ Dynamic routes (single/multi/nested params)
|
|
- ✅ Query parameters
|
|
- ✅ Response formats (JSON, HTML, custom status)
|
|
- ✅ HTTP methods (POST, PUT, DELETE)
|
|
- ✅ Error handling (404)
|
|
- ✅ Keep-Alive connections
|
|
- ✅ Throughput performance
|