| 247 | } |
| 248 | |
| 249 | func BenchmarkFork(b *testing.B) { |
| 250 | b.StopTimer() // Setup. |
| 251 | |
| 252 | runTest(b, func(ctx context.Context, fdTable *FDTable, fd *vfs.FileDescription, limitSet *limits.LimitSet) { |
| 253 | for i := 0; i < maxFD; i++ { |
| 254 | _, err := fdTable.NewFDAt(ctx, int32(i), fd, FDFlags{}) |
| 255 | if err != nil { |
| 256 | b.Fatalf("fdTable.NewFDs: got %v, wanted nil", err) |
| 257 | } |
| 258 | } |
| 259 | |
| 260 | b.StartTimer() // Benchmark. |
| 261 | for i := 0; i < b.N; i++ { |
| 262 | t := fdTable.Fork(ctx, maxFD) |
| 263 | t.DecRef(ctx) |
| 264 | } |
| 265 | }) |
| 266 | } |
| 267 | |
| 268 | func BenchmarkCreateWithMaxFD(b *testing.B) { |
| 269 | const maxLimit = 1 << 31 |