1234567891011121314151617181920212223242526272829303132333435 |
- package stream
- import (
- "sync"
- "testing"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
- )
- func BenchmarkStreamResponse(b *testing.B) {
- b.Run("Read", func(b *testing.B) {
- wg_started := sync.WaitGroup{}
- wg_started.Add(8)
- resp := stream.NewStreamResponse[int](1024)
- for i := 0; i < 8; i++ {
- go func() {
- wg_started.Done()
- for !resp.IsClosed() {
- resp.Write(1)
- }
- }()
- }
- // wait for the first element to be written
- resp.Next()
- b.ResetTimer()
- for i := 0; i < b.N; i++ {
- resp.Next()
- resp.Read()
- }
- defer resp.Close()
- })
- }
|