7.09.2025 состоялся релизPithon 3.14!
На фоне хайпа про NoGIL всё позабыли про другие фичи. Особенно про Multiple Interpreters, который обещает изоляцию процессов но с эффективностью потоков! На сколько действительно это будет эффективно мы узнаем позже, потому что сейчас это лишь первый релиз с ограничениями и недоработками.
Но что там про NoGIL? Теперь этот режим не экспериментальный, а официально поддерживаемый, но опциональный.
Чтобы запустить без GIL нужна специальная сборка. И перед стартом нужно объявить переменную PYTHON_GIL=0
Для вас я собрал готовый репозиторий где достаточно запустить скрпит, который всё сделает:
▫️ соберет релизный Python 3.14 в новый Docker-образ
▫️ запустит тесты в контейнере (GIL, NoGIL, MultiInterpreter)
▫️ распечатает результаты
Тест очень простой, усложняйте сами)
Вот какие результаты у меня:
=== Running ThreadPoolExecutor GIL ON
TOTAL TIME: 45.48 seconds
=== Running ThreadPoolExecutor GIL OFF
TOTAL TIME: 6.14 seconds
=== Running basic Thread GIL ON
TOTAL TIME: 45.54 seconds
=== Running basic Thread GIL OFF
TOTAL TIME: 4.74 seconds
=== Running with Multi Interpreter
TOTAL TIME: 18.30 seconds
Если сравнивать GIL и NoGIL, то на мои 32 ядра прирост х7-x10 (почему не х32? 🤷). При этом нам обещают что скорости будут расти с новыми релизами.
Режим без GIL похож (визуально) на async, тоже параллельно, тоже не по порядку. Но это не IO! и от того некоторый диссонанс в голове 😵💫, нас учили не так!
Интересно, что чистый Thread работает быстрей чем ThreadPoolExecutor без GIL.
Ну и где-то плачет один адепт мульти-интерпретаторов😭 Теперь нужно искать где они могут пригодиться с такой-то скоростью. Скорее всего своя область применения найдется.
Отдельно я затестил память и вот что вышло на 32 потока:
ThreadPoolExecutor GIL ON
305.228 MB
ThreadPoolExecutor GIL OFF
500.176 MB
basic Thread GIL ON
90.668 MB
basic Thread GIL OFF
472.444 MB
with Multi Interpreter
1267.788 MB
Пока не знаю как к этому относиться)
В целом - радует направление развития!
#release
#Mac#Release
Version 5.10.0-3195
### New Feature: Port Forwarding
Example
[Port Forwarding]
0.0.0.0:6841 localhost:3306 policy=SQL-Server-Proxy
The policy parameter is optional; if not specified, the standard proxy matching will be used to determine the policy.
This feature is commonly used in development and debugging scenarios such as connecting to servers like MariaDB using SSH.
### #!REQUIREMENT upgrade
- Now provides three simple notations: #!IOS-ONLY, #!MACOS-ONLY, and #!TVOS-ONLY.
- Content disabled by this end-of-line comment can now be displayed and edited in the UI. It will appear as disabled when conditions are not met, and if enabled, restrictions will be automatically removed.
Example
DOMAIN,reject.com,REJECT #!MACOS-ONLY
### Host Optimization
Host section supports configuration using DOMAIN-SET and RULE-SET to improve matching efficiency. Use case:
[Host]
DOMAIN-SET:https://example.com/domains.txt = server:https://doh.com/dns-query
RULE-SET:https://example.com/rules.txt = server:https://doh.com/dns-query
### Other Improvements
- Optimize using Smart policy groups as the underlying proxy. Now, in this usage scenario, the characteristics of Smart policy groups can be fully utilized.
- Surge Ponte can now automatically retry to recover after an abnormal NAT type appears.
- Bug fixes and other improvements.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.9.2-3098
- The menu bar icon can now display the outbound mode.
- Fixed some issues related to Ponte.
- Fixed the issue where error messages on the DHCP configuration page sometimes could not be displayed, preventing further actions.
- Fixed an issue where the Host entry configured for .local domain names might be invalid.
- Optimized the proxy and rule editing pages; parameters that are not editable in the UI will now also be retained.
- Other bug fixes.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.9.0-3025
### New Features
- Added pre-matching rules for low-overhead request rejection. Please refer to the documentation for details. https://manual.nssurge.com/policy/reject.html
- Body Rewrite supports using JQ expressions to manipulate JSON.
- The shadowsocks protocol adds support for the 2022-blake3-aes-256-gcm and 2022-blake3-aes-128-gcm encryption modes
### Improvements
- The URL-REGEX rule now supports extended-matching tags.
- Allow the use of Ponte policy as an underlying proxy.
- Modify the termination logic of HTTP scripts. If a request needs to be interrupted, use $done({abort: true}). Other failures will not modify or terminate the request.
- Overall optimization and improvement of UDP forwarding.
### Bug Fixes
- Fix the issue where DNS requests cannot select the correct interface according to the routing table in enhanced mode.
- Fix the issue of not being able to obtain system routes on macOS 12.
- Fix the issue where determining the existence of IPv6 might be incorrect in some cases.
- Fix the issue where an incorrect message might sometimes indicate that the proxy settings have been modified by another program.
- Other bug fixes.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.8.2-2946
- Fix the issue where IPv6 VIF cannot take over requests when the gateway-restricted-to-lan parameter is enabled.
- DNS lookup of use-application-dns.net will return NXDOMAIN, causing Firefox to automatically disable application DNS, (i.e., DoH). Using encrypted DNS directly in the browser will prevent Surge from correctly obtaining the requested domain names.
- Bug fixes and minor improvements.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
⚠️版本回撤‼️
Version 5.8.1-2929
- New parameters: proxy-restricted-to-lan/gateway-restricted-to-lan
It has been found that some users, due to a lack of understanding of network security knowledge, accidentally expose proxy and gateway services to the Internet (e.g., configured DMZ). Therefore, these two parameters have been added to restrict proxy and gateway services to only accept devices from the current subnet. These two parameters are enabled by default.
- Fix the compatibility between enhanced mode and PPPoE direct dialing.
- Support using ETag to avoid downloading duplicate data when requesting external resources.
- Surge now supports handling the system's DNS search domain settings.
- Other bug fixes and compatibility improvements.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.8.2-2946
- Fix the issue where IPv6 VIF cannot take over requests when the gateway-restricted-to-lan parameter is enabled.
- DNS lookup of use-application-dns.net will return NXDOMAIN, causing Firefox to automatically disable application DNS, (i.e., DoH). Using encrypted DNS directly in the browser will prevent Surge from correctly obtaining the requested domain names.
- Improved HTTP engine compatibility with non-standard requests
- Enhanced error handling logic for encrypted DNS, retrying immediately upon encountering errors
- Other bug fixes and minor improvements.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.8.1-2929
- New parameters: proxy-restricted-to-lan/gateway-restricted-to-lan
It has been found that some users, due to a lack of understanding of network security knowledge, accidentally expose proxy and gateway services to the Internet (e.g., configured DMZ). Therefore, these two parameters have been added to restrict proxy and gateway services to only accept devices from the current subnet. These two parameters are enabled by default.
- Fix the compatibility between enhanced mode and PPPoE direct dialing.
- Support using ETag to avoid downloading duplicate data when requesting external resources.
- Surge now supports handling the system's DNS search domain settings.
- Other bug fixes and compatibility improvements.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.8.0-2900
### Network Extension
- Due to numerous issues arising from the traditional utun takeover solution in newer system versions, starting from Surge Mac 5.8.0, Surge Mac will use Network Extension as the enhanced mode to take over the system network.
- The minimum system version requirement for Surge Mac is raised to macOS 12.
- Due to different required permissions, manual authorization operations is needed after updating.
- The vif-mode parameter will no longer be effective.
- Enhanced mode can now be used in conjunction with network sharing functionality, meaning you can directly create a Wi-Fi managed by Surge (requires wired network)
### Port Hopping
Hysteria2 and TUIC protocol now support port hopping to improve ISP's QoS issues with UDP. See the server documentation for details.
Proxy = hysteria2, 1.2.3.4, 443, password=pwd, port-hopping="1234;5000-6000;7044;8000-9000", port-hopping-interval=30
After configuring the port-hopping parameter, the primary port number configured in the front will no longer be effective.
Parameters:
- port-hopping: Used to configure the range of ports. Separated by commas and supports ranges configured with a hyphen.
- port-hopping-interval: The interval for changing port numbers. Defaults to 30 seconds
### Other Improvments
- Due to the large amount of features requiring permissions in the new macOS system, a dedicated page has been added for managing system permissions.
- The syslib keyword for local DNS mapping can now be used in enhanced mode. However, in non-enhanced mode, the resolution is entirely handled by the system. In enhanced mode, Surge resolves it using the system's DNS address.
- Added [General] parameter show-error-page, which is used to control whether Surge's HTTP error page is displayed when an error occurs. This parameter is enabled by default, and the behavior is consistent with previous versions.
Official Channel: @SurgeTestFlightFeed
#Mac#Release
Version 5.7.5-2826
- The panel is now available in Surge Mac.
- DNS Forwarding Subsystem Optimization
- When the domain of a DNS query is one that should not be forwarded to the public network (e.g., .home.arpa, 1.0.168.192.in-addr.arpa), it will automatically determine the upstream DNS address and only forward to LAN DNS servers.
- Surge can now correctly respond to PTR requests for fake IPs, meaning that using the dig -x 198.18.23.87 command can be used to determine the original domain name corresponding to a fake IP.
- The DNS forwarder will now forward DNS requests to specific upstream servers based on [Host] section configuration.
- Directly respond with NOTIMP to unsupported DNS-SD PTR requests for fake IPs, without forwarding.
- When adding a rule for the current webpage, you can choose to add to an existing ruleset.
- Bug fixes.
Official Channel: @SurgeTestFlightFeed
🚀 Ускоряем создание контента с обновлениями Phygital+
💜Буст работы с видео: предложенные промпты в Runway ML с популярными эффектами анимации
💜Удобство и качество из Midjourney: новые кнопки Pan и Zoom Out оригинального MJ для расширения изображений – все ваши генерации и итерации на одном канвасе
💜Новая нода Change Background: новый фон для промо вашего продукта по тексту менее чем за 2 минуты. На базе Flux
💜Новые шаблоны для ускорения ваших задач
– Создание анимации: пролет камеры, движение человека, морфинг и эффекты
– Создание 3D моделей персонажа,продукта и изометрии
– Создание персонажа: с нуля, изменение цвета или эмоций
– Архитектурные проекты: быстрая визуализация
– Улучшение фотографий для FMCG
Попробовать все – можно уже сейчас😉
#релиз#release