Корректировка расчёта рутин/таймаута

This commit is contained in:
2025-10-02 01:15:08 +08:00
parent dc61d47b66
commit edd18e92ed

View File

@@ -322,27 +322,22 @@ func CheckChannels(pls playlist.Playlist) playlist.Playlist {
// calcParameters вычисляет оптимальное количество горутин и таймаут запроса // calcParameters вычисляет оптимальное количество горутин и таймаут запроса
func calcParameters(count int) (time.Duration, int) { func calcParameters(count int) (time.Duration, int) {
percentage := float32(runtime.NumCPU()) / 10 routines := count
for percentage >= 1 { if routines > 3000 {
percentage *= 0.5 routines = 3000
}
routines := int(float32(count) * percentage)
if routines > 1500 {
routines = 1500
} }
if routines < 1 { if routines < 1 {
routines = 1 routines = 1
} }
var digits int var digits = 1
x := count x := count
for x >= 10 { for x >= 10 {
digits++ digits++
x /= 10 x /= 10
} }
timeout := int(math.Ceil(math.Pow(10, float64(digits)) / float64(count) * 15)) timeout := 10 - int(math.Ceil(float64(digits)*1.5))
if timeout > 10 { if timeout > 10 {
timeout = 10 timeout = 10
} }