[PR #16126] [CLOSED] perf(test): ускорить test zapret.ps1 #419

Closed
opened 2026-07-23 19:35:36 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/zapret-discord-youtube/pull/16126
Author: @CoderAndFounder
Created: 7/23/2026
Status: ❌ Closed

Base: main ← Head: patch-1


📝 Commits (2)

  • a4c0951 perf(test): ускорить test zapret.ps1
  • 2225b92 delete ph

📊 Changes

1 file changed (+214 additions, -167 deletions)

View changed files

📝 utils/test zapret.ps1 (+214 -167)

📄 Description

Summary

  • Ускорен прогон utils/test zapret.ps1: меньше холостого ожидания winws, быстрее ping, выше параллелизм, один runspace pool на весь прогон.
  • DPI suite больше не качается при standard-тестах.
  • Расширены тестовые цели и доменные списки Pornhub/CDN (targets.txt, list-general*.txt).

Что изменилось и зачем

1. Старт конфига: Wait-WinwsReady вместо Sleep 5 Раньше после запуска каждого .bat скрипт всегда ждал 5 секунд. Теперь ждёт появления процесса winws (до ~2.5 с) + короткий settle (~0.4 с). На N конфигах экономия примерно (5 − фактическое_ожидание) × N секунд.

2. Ping: один ICMP через .NET вместо Test-Connection -Count 3 Test-Connection с 3 пакетами давал лишние секунды на каждый target. Заменено на System.Net.NetworkInformation.Ping с таймаутом 1 с и одним запросом.

3. Параллелизм и переиспользование pool

  • Параллелизм по умолчанию: до min(16, max(8, CPU×2)) (было фиксированно 8).
  • Для standard-режима runspace pool создаётся один раз на весь прогон, а не на каждый конфиг.
  • Ожидание runspace через общий Complete-Runspaces (polling по IsCompleted + общий timeout budget).

4. Быстрее сетевые проверки curl

  • Standard timeout curl: 4 с (было 5).
  • Добавлен --connect-timeout (быстрый fail на мёртвых/заблокированных хостах).
  • Переопределение через env:
    • TEST_CURL_TIMEOUT
    • TEST_MAX_PARALLEL
    • как и раньше: MONITOR_TIMEOUT, MONITOR_RANGE, MONITOR_MAX_PARALLEL, MONITOR_HOST

5. Ленивая загрузка DPI suite

Build-DpiTargets / сеть к suite.v2.json вызываются только если выбран режим DPI. В standard-режиме лишний сетевой запрос больше не выполняется.

6. Прочие мелкие ускорения

  • Get-IpsetStatus: одно чтение файла вместо двух проходов Get-Content.
  • Результаты пишутся одним WriteAllText через StringBuilder вместо множества Add-Content.
  • В DPI-пути исправлен лишний pipe в curl ($payload | curl → прямой вызов).

7. Pornhub targets / lists

В utils/targets.txt и дефолты скрипта добавлены основные хосты и CDN: www/ru/rt/org/premium/static/api, phncdn.com (ei/el/ev/ew/ss/pix-cdn77/...), etahub.com. Те же домены синхронизированы в lists/list-general.txt и lists/list-general-user.txt.

Как это работает (кратко)

  1. Пользователь выбирает тип теста (standard / dpi) и набор .bat конфигов.
  2. Для каждого конфига: stop winws → start bat → Wait-WinwsReady → проверки.
  3. Standard: по каждому target параллельно (runspace pool) гоняются HTTP/TLS1.2/TLS1.3 + ping; результаты сводятся в аналитику и файл.
  4. DPI: параллельные POST Range-запросы к suite/custom host для детекта freeze 16–20KB.
  5. В конце: analytics, best config, сохранение в utils/test results/.

Test plan

  • Запустить utils/test zapret.ps1 от администратора, режим Standard, 2–3 конфига
  • Убедиться, что targets Pornhub появляются в выводе и нет регрессии Discord/YouTube/Cloudflare
  • Сравнить время на конфиг: ожидание старта заметно меньше фиксированных 5 с
  • Режим DPI: suite грузится, проверки параллелятся, ipset switch/restore работает
  • Проверить запись utils/test results/test_results_*.txt
  • (опционально) TEST_MAX_PARALLEL=4 и TEST_CURL_TIMEOUT=3 применяются корректно

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Flowseal/zapret-discord-youtube/pull/16126 **Author:** [@CoderAndFounder](https://github.com/CoderAndFounder) **Created:** 7/23/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `patch-1` --- ### 📝 Commits (2) - [`a4c0951`](https://github.com/Flowseal/zapret-discord-youtube/commit/a4c0951013f06df09e840719aa82f7cfd62a9e7c) perf(test): ускорить test zapret.ps1 - [`2225b92`](https://github.com/Flowseal/zapret-discord-youtube/commit/2225b9251f86c919613ff8a63fd41d5092b45087) delete ph ### 📊 Changes **1 file changed** (+214 additions, -167 deletions) <details> <summary>View changed files</summary> 📝 `utils/test zapret.ps1` (+214 -167) </details> ### 📄 Description ## Summary - Ускорен прогон `utils/test zapret.ps1`: меньше холостого ожидания winws, быстрее ping, выше параллелизм, один runspace pool на весь прогон. - DPI suite больше не качается при standard-тестах. - Расширены тестовые цели и доменные списки Pornhub/CDN (`targets.txt`, `list-general*.txt`). ## Что изменилось и зачем ### 1. Старт конфига: `Wait-WinwsReady` вместо `Sleep 5` Раньше после запуска каждого `.bat` скрипт всегда ждал 5 секунд. Теперь ждёт появления процесса `winws` (до ~2.5 с) + короткий settle (~0.4 с). На N конфигах экономия примерно `(5 − фактическое_ожидание) × N` секунд. ### 2. Ping: один ICMP через .NET вместо `Test-Connection -Count 3` `Test-Connection` с 3 пакетами давал лишние секунды на каждый target. Заменено на `System.Net.NetworkInformation.Ping` с таймаутом 1 с и одним запросом. ### 3. Параллелизм и переиспользование pool - Параллелизм по умолчанию: до `min(16, max(8, CPU×2))` (было фиксированно 8). - Для standard-режима runspace pool создаётся один раз на весь прогон, а не на каждый конфиг. - Ожидание runspace через общий `Complete-Runspaces` (polling по `IsCompleted` + общий timeout budget). ### 4. Быстрее сетевые проверки curl - Standard timeout curl: 4 с (было 5). - Добавлен `--connect-timeout` (быстрый fail на мёртвых/заблокированных хостах). - Переопределение через env: - `TEST_CURL_TIMEOUT` - `TEST_MAX_PARALLEL` - как и раньше: `MONITOR_TIMEOUT`, `MONITOR_RANGE`, `MONITOR_MAX_PARALLEL`, `MONITOR_HOST` ### 5. Ленивая загрузка DPI suite `Build-DpiTargets` / сеть к `suite.v2.json` вызываются только если выбран режим DPI. В standard-режиме лишний сетевой запрос больше не выполняется. ### 6. Прочие мелкие ускорения - `Get-IpsetStatus`: одно чтение файла вместо двух проходов `Get-Content`. - Результаты пишутся одним `WriteAllText` через `StringBuilder` вместо множества `Add-Content`. - В DPI-пути исправлен лишний pipe в curl (`$payload | curl` → прямой вызов). ### 7. Pornhub targets / lists В `utils/targets.txt` и дефолты скрипта добавлены основные хосты и CDN: `www/ru/rt/org/premium/static/api`, `phncdn.com` (`ei/el/ev/ew/ss/pix-cdn77/...`), `etahub.com`. Те же домены синхронизированы в `lists/list-general.txt` и `lists/list-general-user.txt`. ## Как это работает (кратко) 1. Пользователь выбирает тип теста (`standard` / `dpi`) и набор `.bat` конфигов. 2. Для каждого конфига: stop winws → start bat → `Wait-WinwsReady` → проверки. 3. **Standard:** по каждому target параллельно (runspace pool) гоняются HTTP/TLS1.2/TLS1.3 + ping; результаты сводятся в аналитику и файл. 4. **DPI:** параллельные POST Range-запросы к suite/custom host для детекта freeze 16–20KB. 5. В конце: analytics, best config, сохранение в `utils/test results/`. ## Test plan - [x] Запустить `utils/test zapret.ps1` от администратора, режим **Standard**, 2–3 конфига - [x] Убедиться, что targets Pornhub появляются в выводе и нет регрессии Discord/YouTube/Cloudflare - [x] Сравнить время на конфиг: ожидание старта заметно меньше фиксированных 5 с - [x] Режим **DPI**: suite грузится, проверки параллелятся, ipset switch/restore работает - [x] Проверить запись `utils/test results/test_results_*.txt` - [x] (опционально) `TEST_MAX_PARALLEL=4` и `TEST_CURL_TIMEOUT=3` применяются корректно --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot added the pull-request label 2026-07-23 19:35:36 +03:00
mirror-bot changed title from [PR #16126] perf(test): ускорить test zapret.ps1 to [PR #16126] [CLOSED] perf(test): ускорить test zapret.ps1 2026-08-24 05:20:39 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Utilities/zapret-discord-youtube#419