Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Играйте в Длинные и Короткие нарды онлайн! Наслаждайтесь классической настольной игрой с простыми правилами и захватывающей стратегией. Бросайте кубики, перемещайте шашки и обыгрывайте своего соперника. Играйте прямо сейчас бесплатно!

Нарды Длинные и Короткие онлайн

Настольные, Для двоих, Пошаговая

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
5
user9424531

Протестировал Добрыню. Расстрелял обойму⁠⁠

3 часа назад

Короче поехал в лес и разрядил обойму в лист А4 с 3 метров.

Ложится кучно.

Спуск тугой,надо привыкнуть и знать. В момент когда понадобится навёл на цель и сильно без задержек дави до упора,держа цель на мушке. Вообщем надо потренироваться,чтобы навык появился. Имитатор дульного среза естественно засерается аэрозолью,поэтому буду класть в кобуру ещё и полиэтиленовый пакет,чтобы положить пистолет в пакет после стрельбы,если попадет аэрозоль мало не покажется. Вообщем вполне себе оружие самозащиты,надо немного привыкнуть. За видео извиняюсь,делал для знакомого,решил поделиться.

Ло

Перейти к видео
Показать полностью 3
[моё] Короткие видео Путешествия Самооборона Тестирование Видео Вертикальное видео Длиннопост
7
10
PeterNefedov
PeterNefedov
Про железо

Обзор материнской платы Gigabyte B850 Aorus Stealth Ice с обратным подключением⁠⁠

8 часов назад

Компания Gigabyte активно развивает направление белоснежных продуктов AERO и ICE, которые ломают общие стереотипы обычных черных комплектующих, нередко безликих на общем фоне других компонентов. И поэтому продукты компании Gigabyte серий AERO и ICE выглядят поистине красиво и как магнит притягивают взгляды.

Однако в компании Gigabyte не оставляют без внимания и новое движение продуктов с обратным подключением, которое подразумевает скрытый монтаж и аккуратность компьютерных сборок. Мы знаем несколько подобных серий, но у компании Gigabyte оно наиболее четко описывает происходящее — STEALTH. И в сегодняшнем обзоре мы познакомимся с материнской платой последнего поколения Gigabyte B850 Aorus Stealth Ice.

Упаковка и комплектация

Материнская плата Gigabyte B850 Aorus Stealth Ice поставляется в огромном белоснежном боксе из очень толстого картона и с минималистичным оформлением. Коробка открывается как ларец и в лучших традициях преподносится своему новому хозяину.

1/3

Упаковка Gigabyte B850 Aorus Stealth Ice получила минимальное оформление. И, кажется, это прекрасно.

Комплектация новинки включает необходимые компоненты, и исключительно в белом исполнении! Несколько инструкций и брошюр, Wi-Fi-антенна, стикеры и наклейки, пара белых SATA-кабелей, логотип бренда AORUS, винты крепления M.2, переходник для упрощения подключения кабелей передней панели корпуса.

1/2

Внешний вид и дизайн материнской платы

Материнская плата Gigabyte B850 Aorus Stealth Ice является успешным продолжением прошлой модели на чипсете AMD B650, дизайн которой кажется выполнен в еще более уникальном минималистичном исполнении. Однако новинка получила заметные улучшения и дополнения, обзавелась вторым слотом PCI Express x16, не теряя магии минимализма. Производителю удалось переместить и спрятать большинство разъемов, делая внешний вид Gigabyte B850 Aorus Stealth Ice очень притягательным. Однако что такое материнская плата с обратным подключением?

Новая тенденция стала набирать популярность совсем недавно. Сколько бы ни старались разработчики сделать уникальным свой продукт, после установки в корпусе и подключения питания и всей периферии компьютер все равно превращался в клубок кабелей, и лишь самые грамотные и упертые энтузиасты старались превратить процесс сборки и кабель-менеджмент в искусство. Нужно было что-то решать. И первыми должны были сделать шаг, конечно же, производители. Они и сделали.

Gigabyte B850 Aorus Stealth Ice — это одна из материнских плат с обратным подключением, где разъемы питания и второстепенные коннекторы вынесены на противоположную сторону текстолита. Все провода теперь будут подключаться сзади, не портя основную гармонию внешнего вида. Конечно, подобные действия потребовали переделки печатных плат, но результат того стоил.

На материнской плате Gigabyte B850 Aorus Stealth Ice основные разъемы располагаются сзади. У данной модели имеется металлический бэкплейт и симпатичная полиграфия на поверхности. Новинка выполнена в классическом форм-факторе ATX с габаритами 305 х 244 мм.

Сердцем материнской платы Gigabyte B850 Aorus Stealth Ice выступает платформа AMD AM5 с поддержкой актуальных процессоров данного сокета. Он окружен вереницей больших ребристых радиаторов с тепловой трубкой.

Gigabyte B850 Aorus Stealth Ice оснащена четырьмя полноценными слотами DIMM DDR5 с защелками с обеих сторон. Она поддерживает объем ОЗУ до 256 Гбайт, а частотный потенциал составляет от 4400 МГц до 8200+ МГц. Ниже находится металлическая вставка, которая в некоторых других решениях была бы отличным радиатором для еще одного посадочного места М.2, но не здесь.

На интерфейсной панели ввода-вывода красуется такая же простая минималистичная картина, как и на всей материнской плате. Два ряда USB-портов 3.2 Gen1 и 2.0, видеовыход HDMI для встроенной графики, пара красных USB-портов 3.2 Gen2, порт USB Type-C (3.2 Gen2), пара аудиоразъемов, подключение Wi-Fi антенны и оптический S/PDIF.

На материнской плате Gigabyte B850 Aorus Stealth Ice также реализована одна простая, но чертовски удобная функция для Wi-Fi: на микросхеме BIOS выделено отведенное место с зашитым драйвером Wi-Fi, что позволяет пользоваться беспроводным соединением сразу после установки операционной системы, а не скачивать его предварительно.

Основное отличие Gigabyte B850 Aorus Stealth Ice от прошлой версии заключено в многофункциональном управлении. Новинка получила индикатор посткодов, что достаточно удобно, и три кнопки: включение, перезагрузка и перепрограммируемая MultiKey. Рядом — светодиоды Q-Flash прохождения POST.

При взгляде на материнскую плату Gigabyte B850 Aorus Stealth Ice сбоку сразу отмечаешь куда подевались основные порты и коннекторы.

Среди всевозможного скрытого монтажа просматривается одна кнопка в виде зиккурата. Это кнопка безопасного извлечения видеокарты EZ-Latch Plus. Обычно к защелке слота PCIe x16 трудно подобраться, а здесь она вынесена наружу вбок.

Gigabyte B850 Aorus Stealth Ice оснащена четырьмя слотами M.2 для твердотельных накопителей, три из которых прячутся под единой металлической пластиной-радиатором, доступ к которой открывается простым нажатием замка EZ-Latch Click.

1/2

Крепление системы охлаждения у твердотельных накопителей M.2 выполнено на достаточно простом и эффективном уровне. Механизм заключен в металлических штырях и специальном фиксаторе. У компании MSI первое поколение было реализовано сложнее, с пружиной, и однажды заклинило, поэтому разработчики из Gigabyte пошли более надежным путем.

Дополнительное питание материнской платы осуществляется через разъемы 24-pin MB и процессора по схеме «8+4»-pin EPS.

Для надежности коннекторы дополнительно усилены в основании, чтобы выдержать процесс установки в корпус и эксплуатации.

Что впечатлило меня на материнской плате Gigabyte B850 Aorus Stealth Ice сразу после обратного подключения и общего дизайна? Все разъемы имеют понятные грамотные подписи, позволяя не обращаться к инструкции каждые несколько секунд.

Сверху располагаются три разъема для вентиляторов: охлаждения процессора, дублер и корпусного вентилятора с номером 4. Все коннекторы рассчитаны на ток до 2 А и мощность до 24 Вт!

Вдоль материнской платы за разъемом питания находятся два порта USB для подключения передней панели, два порта SATA и один корпусной вентилятор.

1/2

Нижняя секция представлена целым вереницей разъемов, которые потребуют разъяснения и помощи инструкции. Здесь находятся две колодки USB и передней панели корпуса, пара коннекторов для подсветки, порты для термодатчиков, датчика шума, сброса BIOS и TPM.

1/2

Аудиоподсистема прокачана до аудикокодека Realtec ALC1220.

Печатная плата Gigabyte B850 Aorus Stealth Ice

Материнская плата Gigabyte B850 Aorus Stealth Ice в естественном своем виде, без декоративных элементов и систем охлаждения. Она построена на шестислойной печатной плате светло-кремового цвета.

Вид на обратную сторону материнской платы с демонтированной платой-бэкплейтом.

Производитель раскрывает схему питания VRM на основной странице продукта, которая выполнена по формуле «2*7 + 2 + 2» для CPU/SoC/Misc. По одной фазе для CPU с каждой стороны нераспаяно: они для старшей версии на чипсете X870. В качестве ШИМ-контроллера выступает Infineon XDPE192C3, но если изучить документацию, то он помечен как 12-фазный. Мосфеты — Infineon PMC41410 с силой тока 80А.

У материнской платы Gigabyte B850 Aorus Stealth Ice поистине мощная и эффективная система охлаждения! Даже радиатор чипсета больше, чем у многих других производителей, и получил оребрение. Два основных радиатора соединены тепловой трубкой. А вот бэкплейт выполняет строго механическую защиту от повреждений и прогиба, и жаль, что не участвует в охлаждении.

1/2

Программное обеспечение

Графическая оболочка с обновлением платформы претерпела изменения. Перед нами BIOS материнской платы Gigabyte B850 Aorus Stealth Ice с кодовым обозначением UC (User-Centered), ориентированная на удобный интерфейс. Подстать цветовой гамме модели она выполнена в светлых тонах. Функционал улучшился и расширился.

Кoнфигурация тестoвого стeнда

  • Прoцeccop: AMD Ryzen 7 9700X

  • Mатеринская плaтa: Gigabyte B850 Aorus Stealth Ice

  • Систeмa oxлaждения: Formula V Line Oasis L360 ARGB

  • Oперaтивная память: AGI UD858 TurboJet ARGB DDR5-6000 2x16

  • Накопитель: Team Group T-Force Cardea Z540

  • Блoк питания: Formula APMM-1000GM

  • Мoнитор: АОС U2790PQU

  • Kоpnyc: Formula V Line Timberline T0

Для материнских плат с обратным подключением единственным условием совместимости появляются корпуса, у которых имеются дополнительные вырезы. В моем случае она идеально поместилась в корпус Formula V Line Timberline T0. Однако, как с лампами накаливания, здесь приходится мириться с «холодным белым» и «теплым белым»: многие бренды по-разному трактуют белый цвет, и на палитре он может слегка отличаться.

Тестирование

На момент написания статьи BIOS материнской платы Gigabyte B850 Aorus Stealth Ice обозначался кодом F1 и был единственным на RU-сайте компании. Однако позже была выпущена версия F3, но доступна пока на EN-портале.

Данные из утилиты HWInfo64 с главной страницы и вкладки о материнской плате.

Дополнительные данные из утилиты HWInfo64.

У каждой модели материнской платы производители сами решают, какие датчики и сенсоры устанавливать. Поэтому я считаю важным показать, какие показания нам доступны: особенно это касается температурных датчиков.

По умолчанию на материнской плате Gigabyte B850 Aorus Stealth Ice для процессора AMD Ryzen 7 9700X выставлены стандартные параметры. Для работы и тестов я вручную снял лимиты и увеличил PBO. В таком случае энергопотребление CPU выросло с 90W до 155W.

1/2

Переходим к тесту оперативной памяти. По умолчанию комплект AGI UD858 TurboJet ARGB DDR5-6000 2x16 автоматически запустился на профиле JEDEC-4800. Мы получаем значения, указанные на скриншоте.

Далее вручную активируем EXPO с частотой 6000 МГц и таймингами «30-40-40».

У материнских плат Gigabyte и B850 Aorus Stealth Ice в частности имеются свои пресеты по повышению производительности. Для процессоров с увеличенным кэшем X3D это, соответственно, режим «X3D Mode», но есть механизмы для работы с оперативной памятью: опции XMP/EXPO High Bandwidth Support и Core Tuning Config. Я их активировал, второстепенные тайминги, в частности tRFC, понизились, и мы получаем прирост быстродействия.

Результаты теста бенчмарка Cinebench R24 при EXPO-6000.

Основное тестирование дисковой подсистемы проведено на Team Group T-Force Cardea Z540 объемом 1 Тбайт с шиной PCIe 5.0, установленный в первый слот мат. платы с процессорными линиями.

Температурный режим

С эффективностью охлаждения у материнской платы Gigabyte B850 Aorus Stealth Ice все в полном порядке! Силовая часть VRM прогрелась до 46°С без дополнительного обдува, что можно назвать отличным результатом. Чипсет — до 48°С, накопитель M.2 PCIe 5.0 x4 — до 67°С.

Заключение

Материнская плата Gigabyte B850 Aorus Stealth Ice является отличным воплощением практичности в белом дизайне и обратным подключением. У данной модели прекрасное исполнение, удобно реализованное расположение коннекторов, фирменные функции и технологии для повышения быстродействия. К плюсам можно отнести также Wi-Fi 7, сетевой порт 5G, эффективное охлаждение всех компонентов, интересная комплектация. В сравнении с прошлой версией «прокачался» аудиокодек.

Сколько не пытался, но найти недостатков в материнской плате Gigabyte B850 Aorus Stealth Ice не удалось. Лично за себя скажу, что считаю второй слот PCI Express x16 лишним, а верхний правый угол хотелось бы закрыть (вместе с посткодами после всех отладок) декоративной панелью, чтобы еще улучшить внешний вид.

Подводя итоги, материнскую плату Gigabyte B850 Aorus Stealth Ice можно назвать одной из лучших для сборки ПК в белоснежном дизайне и обратным подключением на системной логике AMD B850 на текущий момент.

Показать полностью 44
[моё] Компьютерное железо Игровой ПК Электроника Тестирование Длиннопост
6
3
Pinelab
Pinelab
Инженериум DIY

Браузерный UART-инструмент для проверки датчиков качества воздуха с поддержкой построения графиков и вебхуков⁠⁠

9 часов назад
Браузерный UART-инструмент для проверки датчиков качества воздуха с поддержкой построения графиков и вебхуков

Я работал над небольшим инструментом под названием polluSensWeb. Он изначально создавался для моего собственного отладки и тестирования, но в итоге я стал использовать его достаточно часто, чтобы привести в порядок и поделиться с другими.

Это браузерный UART-ридер для датчиков качества воздуха, таких как PM2.5, VOC, CO2 и подобных. Никакой установки не требуется. Вы подключаете USB–UART адаптер, открываете страницу и начинаете считывать и строить графики данных. Инструмент обрабатывает сырые бинарные кадры, включая проверку контрольной суммы, и отображает значения в реальном времени. Всё работает локально в браузере и не требует подключения к интернету, кроме отправки вебхуков.

Датчики описываются с помощью JSON-конфигураций, которые задают структуру кадров, смещения полей и тип контрольной суммы. Это позволяет легко добавлять поддержку новых датчиков без написания отдельного драйвера. На данный момент поддерживается 25 датчиков, в основном популярные модули для измерения PM и газов.

Вы легко можете сравнивать работу разных датчиков до их интеграции в свой проект.

Недавно я добавил опциональную поддержку вебхуков, чтобы разобранные данные датчиков можно было пересылать в другие системы. Типичные сценарии использования — локальные решения вроде Node-RED или Home Assistant, а также сетевые сообщества, такие как SensorCommunity или Narodmon, которые принимают HTTP-загрузки. Это позволяет обойтись без запуска серверной части или вспомогательных скриптов для передачи данных.

Это практический инструмент, предназначенный для отладки и проверки корректности работы протоколов датчиков. Он в основном существует потому, что мне надоели закрытые интерфейсы производителей, проприетарное ПО и разовые скрипты, лишь чтобы увидеть, что датчик реально передаёт по UART.

Подробности проекта здесь: https://github.com/WeSpeakEnglish/polluSensWeb

Если у вас есть другой датчик с UART-интерфейсом и USB–UART конвертер, я с радостью помогу с JSON-конфигурацией для него, чтобы вы могли попробовать — оставьте комментарий.

Показать полностью 1
[моё] Sensor Embedded Тестирование Arduino Автоматизация Программа Javascript
0
2
KuTaHo
KuTaHo

Ну.... Вы поняли⁠⁠

2 дня назад
Ну.... Вы поняли
Показать полностью 1
Мат Старость Тестирование ЯПлакалъ Картинка с текстом
5
1448
GhostAGGA
GhostAGGA
Видеохостинг на Пикабу

Мужики собрали плазменную пушку и бахнули из нее! (2 видео)⁠⁠

2 дня назад
Перейти к видео
Перейти к видео
Показать полностью 1
Короткие видео Вертикальное видео Со звуком Самоделки Опасность Удивление Смех (реакция) Закадровый смех Видео Газ Тестирование Зима Курение
151
4
R4YDMOND
R4YDMOND

От ПК-версии к мобильной: мой путь в Where Winds Meet⁠⁠

3 дня назад
От ПК-версии к мобильной: мой путь в Where Winds Meet

Тестирование мобильной версии игры Where Winds Meet: от установки до проверки перевода с LagoFast

Недавно я протестировал мобильную версию Where Winds Meet — эпической RPG в жанре Wuxia, действие которой разворачивается в Китае X века. Игра уже доступна в режиме предварительной загрузки, и я прошёл путь от установки до оценки функционала, включая работу сервиса LagoFast для перевода интерфейса. Делюсь объективным отчётом о своих впечатлениях.

Этап 1. Предварительная загрузка и установка

Перед официальным стартом бета-версии (запланирован на 12 декабря 2025 года, 8:00 AM UTC+8) игра находится в режиме Pre-download mode. На экране отображается сообщение:

«Pre-download mode active. Please wait for the mobile open beta starting on December 12, 2025 at 8:00 AM (UTC+8)».

Что происходит в этом режиме:

  • автоматически скачиваются ключевые ресурсы игры;

  • сохраняется прогресс загрузки — не нужно начинать с нуля после перезапуска;

  • функционал ограничен до официального релиза.

Требования к устройству:

1/3

Скриншоты характеристик моего телефона на котором производилась установка мобильной версии игры Where Winds Meet

  • Android 7.1+ с 8 ГБ ОЗУ или iOS 15 и выше;

  • стабильное интернет-соединение;

  • достаточное свободное место на устройстве (объём загружаемых данных — несколько ГБ).

Установка прошла стандартно:

  1. Скачал игру из Google Play (Android) .

  2. После установки и авторизации пользователя система автоматически запустила загрузку библиотек и файлов.

Этап 2. Загрузка ресурсов: что нужно знать

После запуска началась последовательная загрузка компонентов:

  • Core Resources — базовые файлы для работы локаций и механик (критичны для запуска);

  • Expanded Resources — дополнительные декоративные элементы;

  • Appearance — ресурсы для внешности персонажей (например, Appearance 0M/2.0G).

Особенности:

  • порядок загрузки фиксирован — нельзя пропустить этап;

  • время скачивания зависит от скорости интернета;

  • при паузе доступна кнопка «Resume» для продолжения;

  • опция «Allow download on cellular data» позволяет использовать мобильный интернет (рекомендуется Wi-Fi).

Этап 3. Авторизация: варианты входа

Меню и способы авторизации на мобильной версии Where Winds Meet

Меню и способы авторизации на мобильной версии Where Winds Meet

После загрузки ресурсов появилось меню «Switch Account» с вариантами входа:

  • NetEase Games — основной аккаунт (оптимален для кросс-платформенной игры);

  • Google, Guest, Sign in with Apple — быстрые способы входа;

  • Facebook, Steam, Epic Games, X, PSN — для синхронизации с другими платформами.

Вывод: система авторизации гибкая, поддерживает множество платформ. Для сохранения прогресса лучше использовать NetEase Games.

Этап  4. Первые впечатления от интерфейса и предварительной загрузки (накануне официального запуска)

Сегодня, 11 декабря 2025 года, за сутки до официального старта мобильной открытой беты (12 декабря 2025 года, 8:00 AM UTC+8), я протестировал текущее состояние мобильной версии Where Winds Meet — вплоть до загрузочного экрана и настройки вспомогательных сервисов.

Важно подчеркнуть: на данный момент полноценный геймплей ещё недоступен — игра находится в режиме предварительной загрузки. Поэтому оценка касается:

  • процесса установки и инициализации;

  • интерфейса авторизации;

  • работы сервиса перевода (на уровне меню и загрузочных экранов).

Что удалось проверить

1/2

Скриншот с мобильной версии игры Where Winds Meet

  1. Процесс загрузки ресурсов

    • Система корректно скачивает Core Resources, Expanded Resources и Appearance (например, блок Appearance 0M/2.0G).

    • Статус «Waiting for prior resource download» отображается адекватно, указывая на последовательную загрузку компонентов.

    • Кнопка «Resume» работает: позволяет возобновить процесс после паузы.

    • Опция «Allow download on cellular data» функционирует, но для больших объёмов данных (2 ГБ+) рекомендуется Wi‑Fi.

  2. Система авторизации

    • Меню «Switch Account» предлагает все заявленные способы входа (NetEase Games, Google, Apple, Steam и др.).

    • Синхронизация с учётной записью NetEase Games прошла без ошибок — прогресс с ПК‑версии отображается в интерфейсе.

    • Режим Guest доступен, но предупреждает о невозможности сохранения прогресса.

  3. Работа LagoFast (перевод интерфейса)

    • После предоставления разрешений (всплывающие окна и запись видео) сервис активируется.

    • Замечена небольшая задержка (~2–3,5 секунды("+"-")) при обновлении переведённого текста.

    • Смещение шрифтов при экранном переводе(местами).

Перейти к видео

Что пока недоступно для тестирования

  • Управление в бою и паркур — механика сенсорного управления не проверялась, так как игра не запущена.

  • Диалоги NPC — тестирование перевода диалогов невозможно до входа в игровые локации.

  • Загрузка локаций — оценить скорость перехода между зонами или FPS в реальном геймплее пока нельзя.

  • Интерфейс инвентаря и карты — элементы UI в процессе исследования мира не тестировались.

Выводы на текущий момент

На этапе предварительной загрузки мобильная версия Where Winds Meet демонстрирует:

  • Стабильность базовых процессов (установка, авторизация, загрузка ресурсов).

  • Работоспособность кросс‑платформенного прогресса — синхронизация с ПК‑версией работает.

  • Потенциал LagoFast как инструмента для локализации, хотя с оговорками (задержки, неполный охват терминов, смещение шрифтов при экранном переводе(местами).

Рекомендации перед запуском 12 декабря:

  1. Убедитесь, что загрузка ресурсов завершена.

  2. Проверьте разрешения для LagoFast (если используете перевод).

  3. Подключите устройство к Wi‑Fi для минимизации задержек.

  4. Сохраните резервную копию учётной записи (особенно если играете через Guest).

Официальное открытие игры завтра даст возможность оценить геймплей в полном объёме. Пока же можно констатировать: подготовительные этапы реализованы корректно, а сервис перевода уже сейчас облегчает взаимодействие с интерфейсом.

P.S. В сообществах игроков встречаются упоминания о сложностях при установке мобильной версии Where Winds Meet. На моём устройстве процесс загрузки из официального магазина приложений (Google Play/App Store) прошёл без нареканий — всё установилось корректно, начата предварительная загрузка ресурсов.

В целях всесторонней проверки планирую дополнительно протестировать установку через APK‑файл (из одного из доступных интернет‑источников). Это позволит:

  • оценить различия между официальным и альтернативным способами установки;

  • выявить возможные нюансы совместимости или предупреждения системы безопасности;

  • сравнить скорость загрузки и целостность файлов.

Результаты тестирования (включая возможные ошибки, время установки и особенности работы игры после неё) будут подробно описаны в следующей статье. Цель — предоставить объективную информацию, которая поможет другим игрокам при выборе способа установки.

Показать полностью 6 1
Тестирование Программа Видео Без звука Вертикальное видео Короткие видео Длиннопост
4
2
kznalp
kznalp
Postgres DBA
Серия СУБД PostgreSQL

Оптимизация пагинации в PostgreSQL: Как настройка work_mem превратила ROW_NUMBER в лидера производительности⁠⁠

3 дня назад

Взято с основного технического канала Postgres DBA (возможны правки в исходной статье).

Память решает: как ROW_NUMBER обогнал Deferred Join

Память решает: как ROW_NUMBER обогнал Deferred Join

Предисловие

В мире высоконагруженных баз данных выбор метода пагинации может стать решающим фактором для производительности системы. Эксперимент, проведённый с двумя подходами — классическим ROW_NUMBER и отложенным соединением (Deferred Join) — показал, что даже архитектурно более совершенный метод не гарантирует победы без тонкой настройки СУБД. Исследование раскрывает, как правильная конфигурация памяти PostgreSQL перевесила преимущества Deferred Join и позволила ROW_NUMBER добиться превосходства на параллельной нагрузке до 22 сессий.

Начало экспериментов с методом пагинации ROW_NUMBER

Прогноз нейросети

Вопрос

Используя информацию о размерах таблиц, схеме баз данных и тестовых запросах, дай прогноз и обоснование - какой тестовый запрос покажет большую производительность для нагрузочного тестирования с параллельной нагрузкой от 5 до 22 сессий для СУБД PostgreSQL 17 c ресурсами CPU=8 RAM=8GB

Прогноз:
Наибольшую производительность при параллельной нагрузке (5–22 сессии) покажет запрос plan-1 (ROW_NUMBER()) после оптимизации индексами.

Экспериментальная проверка

Анализ ситуации нейросетью

Почему не оправдался прогноз нейросети о большей эффективности метода ROW_NUMBER для заданных условий ?

5. Условия, при которых ROW_NUMBER() действительно был бы эффективнее:

Сценарий 2: Адекватный размер work_mem

Если бы work_mem был ≥ 256MB для сортировки в памяти

какие значение work_mem необходимо установить для получения преимущества метода row_number при максимальной нагрузке 22 параллельные сессии при общем размере RAM=8GB ?

-- Для получения преимущества ROW_NUMBER():
SET work_mem = '180MB';
SET max_parallel_workers_per_gather = 1;
SET max_parallel_workers = 16;

-- В postgresql.conf:
work_mem = 180MB
max_parallel_workers_per_gather = 1
max_parallel_workers = 16
max_worker_processes = 16
shared_buffers = 2GB
effective_cache_size = 6GB

Задача

Экспериментальная проверка рекомендации нейросети по оптимизации метода пагинации ROW_NUMBER

Изменение конфигурационных параметров СУБД

ALTER SYSTEM SET work_mem = '180MB';

ALTER SYSTEM SET max_parallel_workers_per_gather = 1;

ALTER SYSTEM SET max_parallel_workers = 16;

ALTER SYSTEM SET max_worker_processes = 16 ;

ALTER SYSTEM SET shared_buffers = '2GB';

ALTER SYSTEM effective_cache_size = '6GB';

Производительность и ожидания СУБД в ходе нагрузочного тестирования

Операционная скорость

График изменения операционной скорости в ходе нагрузочного тестирования

График изменения операционной скорости в ходе нагрузочного тестирования

График изменения относительной разницы операционной скорости при использовании метода DIFFERED JOIN по сравнению с методом ROW_NUMBER в ходе нагрузочного тестирования

График изменения относительной разницы операционной скорости при использовании метода DIFFERED JOIN по сравнению с методом ROW_NUMBER в ходе нагрузочного тестирования

Результат

Среднее превышение операционной скорости , при использовании метода ROW_NUMBER составило 12.59%

Ожидания СУБД

График изменения ожиданий СУБД в ходе нагрузочного тестирования

График изменения ожиданий СУБД в ходе нагрузочного тестирования

График изменения относительной разницы ожиданий СУБД при использовании метода DIFFERED JOIN по сравнению с методом ROW_NUMBER в ходе нагрузочного тестирования

График изменения относительной разницы ожиданий СУБД при использовании метода DIFFERED JOIN по сравнению с методом ROW_NUMBER в ходе нагрузочного тестирования

Результат

Среднее снижение ожиданий СУБД, при использовании метода ROW_NUMBER составило 18.06%

Характерные особенности тестовых запросов и планов выполнения

1. Общая цель запросов

Оба запроса решают задачу случайной пагинации (выбор случайной "страницы" из 100 строк) для отфильтрованных данных (билеты с бизнес-классом).

2. Основные различия в подходах

Первый запрос (ROW_NUMBER()):

  • Использует оконную функцию ROW_NUMBER() для нумерации всех строк

  • Фильтрует по диапазону номеров строк после нумерации

  • Ключевая проблема: Выполняет полную сортировку и нумерацию всех 2.15 млн строк

Второй запрос (Deferred Join):

  • Использует отложенное соединение (deferred join)

  • Сначала выбирает только ticket_no с помощью OFFSET/LIMIT

  • Затем соединяет остальные данные по отобранным ключам

  • Преимущество: Сортирует только ключи, а не все данные

3. Производительность

Первый запрос:

  • Время выполнения: 12.65 секунд

  • Основные затраты:
    Merge Semi Join: 9.3 секунды
    Сортировка 2.15 млн строк: 850-1000 мс (quicksort, 170 МБ памяти)
    WindowAgg (оконная функция): 1723 мс

Второй запрос:

  • Время выполнения: ~16.1 секунды (неполные данные в выводе)

  • Основные затраты:
    Merge Semi Join: 8.75 секунды
    Сортировка для OFFSET: 5.5 секунды (top-N heapsort, 15 МБ памяти)
    Hash Join: 5575 мс

4. Критические различия в планах

Сортировка:

  1. Первый запрос: Сортирует все столбцы (ticket_no, book_ref, passenger_name) - 92 байта на строку

  2. Второй запрос: Сортирует только ticket_no - 32 байта на строку

Использование памяти:

  1. Первый: 170 МБ для сортировки всех данных

  2. Второй: 15 МБ для сортировки только ключей

Фильтрация:

  1. Первый: Сначала нумерует все строки, затем фильтрует 100

  2. Второй: Сначала выбирает 100 ключей, затем соединяет данные

5. Проблемы обоих подходов

  1. Общая проблема: floor(random() * COUNT(*)/100) требует полного сканирования для подсчета строк

  2. Производительность OFFSET: Во втором запросе OFFSET должен "пропустить" много строк (случайная страница * 100)

6. Рекомендации

Для оптимизации:

  1. Второй подход лучше архитектурно (deferred join), но в данном случае медленнее из-за:
    Необходимости вычислять OFFSET
    Hash Join вместо более эффективного соединения

  2. Потенциальные улучшения:
    Использовать keyset pagination вместо OFFSET
    Кэшировать общее количество строк
    Рассмотреть материализованные представления для filtered_tickets

В текущей реализации:

  • Первый запрос быстрее (12.65с vs ~16.1с), но использует больше памяти

  • Второй запрос масштабируется лучше при увеличении размера данных, так как сортирует меньше данных

7. Вывод

Оба запроса имеют проблемы с производительностью из-за необходимости обработки всех 2.15 млн строк для случайной выборки. Deferred Join (второй подход) - более правильная архитектурная паттерн, но требует оптимизации OFFSET и соединения для повышения эффективности в данном конкретном случае.

Характерные особенности производительности СУБД

1. Производительность (SPEED)

ROW_NUMBER подход:

  • Начальная производительность: 60

  • Стабильная после 45 итерации: 96

  • Максимум: 96 (после адаптации)

  • Прирост: 60 → 96 (+60%)

Deferred Join подход:

  • Начальная производительность: 52

  • Стабильная после 55 итерации: 84

  • Максимум: 84

  • Прирост: 52 → 84 (+61.5%)

Вывод: ROW_NUMBER показывает на 14.3% выше абсолютную производительность (96 vs 84).

2. Динамика адаптации

ROW_NUMBER:

  • Быстрый рост до 96 за 55 итераций

  • Более резкие скачки производительности

  • Ранняя стабилизация (с 55 итерации)

Deferred Join:

  • Более плавный рост до 84

  • Дольше адаптируется (до 55 итерации)

  • Стабильнее на низких нагрузках

3. Ожидания и блокировки

ROW_NUMBER:

  • TIMEOUT появляются с итерации 46 (при нагрузке 10 соединений)

  • LWLOCK стабилизируются на уровне 3-6

  • WAITINGS: 4-7

Deferred Join:

  • IO ожидания появляются с итерации 73 (при нагрузке 15+ соединений)

  • LWLOCK: 4-8 (выше, чем у ROW_NUMBER)

  • WAITINGS: до 21 пикового значения

  • Более выраженные скачки в ожиданиях (74 итерация: 21 ожидание)

4. Корреляция с нагрузкой

  • Нагрузка растет от 5 до 22 соединений

  • Критические точки:
    10 соединений (итерация 46): ROW_NUMBER начинает показывать TIMEOUT
    15 соединений (итерация 73): Deferred Join показывает IO ожидания
    18+ соединений: оба подхода стабилизируются на максимальных значениях ожиданий

5. Ключевые различия в поведении

ROW_NUMBER:

  1. Выше пиковая производительность (96 vs 84)

  2. Раннее появление TIMEOUT (с 10 соединений)

  3. Меньше LWLOCK в среднем (3-6 vs 4-8)

  4. Более предсказуемые паттерны ожиданий

Deferred Join:

  1. Лучше масштабируется при низких нагрузках

  2. Более стабильные WAITINGS (кроме пиков)

  3. Появление IO ожиданий вместо TIMEOUT

  4. Сильнее страдает от LWLOCK

6. Анализ проблемных точек

ROW_NUMBER:

  • Проблема: TIMEOUT при 10+ соединениях

  • Причина: WindowAgg + сортировка больших данных конкурируют за ресурсы

  • Симптом: Конкуренция за CPU/память

Deferred Join:

  • Проблема: IO ожидания при 15+ соединениях

  • Причина: Hash Join + сортировка для OFFSET требуют disk I/O

  • Симптом: Конкуренция за disk I/O и LWLOCK

7. Рекомендации по оптимизации

Для ROW_NUMBER:

  1. Увеличить work_mem для уменьшения disk spills

  2. Рассмотреть материализованные представления для filtered_tickets

  3. Кэшировать COUNT(*) для random_page

Для Deferred Join:

  1. Оптимизировать индексы для сортировки ticket_no

  2. Увеличить shared_buffers для кэширования hash таблиц

  3. Рассмотреть использование keyset pagination вместо OFFSET

8. Общий вывод

  1. ROW_NUMBER лучше для:
    Максимальной производительности (14.3% выше)
    Систем с достаточными CPU/памятью
    Сценариев с <10 конкурентных соединений

  2. Deferred Join лучше для:
    Систем с ограничениями по памяти
    Сценариев с предсказуемыми IO паттернами
    Приложений, чувствительных к TIMEOUT

  3. Оба подхода требуют оптимизации при >10 конкурентных соединений

  4. Критическая нагрузка: 10-15 соединений (точка деградации производительности)

Метрики производительности инфраструктуры

1. Использование CPU

ROW_NUMBER:

  • Начало: 61% user, 3% system, 36% idle

  • Критическая точка (итерация 50): резкий переход на 95-96% user, 4% system, 0% idle

  • Стабильная нагрузка: 96% user, 4% system, 0% idle

  • Вывод: Полная загрузка CPU с преобладанием пользовательского времени

Deferred Join:

  • Начало: 61% user, 2% system, 36% idle

  • Критическая точка (итерация 52): переход на 97% user, 3% system, 0% idle

  • Стабильная нагрузка: 97% user, 3% system, 0% idle

  • Вывод: Аналогичная полная загрузка, но меньше системного времени

Сравнение: Deferred Join показывает на 1% выше user CPU и на 1% ниже system CPU.

2. Использование памяти

ROW_NUMBER:

  • Свободная память: 1791 → 2753 KB (+53% рост)

  • Буферы: 47 → 6 KB (-87% снижение)

  • Кэш: 4955 → 2751 KB (-44% снижение)

  • Своп: 70 → 67 KB (минимальное изменение)

  • Вывод: Активное использование кэша и буферов

Deferred Join:

  • Свободная память: 4567 → 2207 KB (-51% снижение)

  • Буферы: 18 → 6 KB (-67% снижение)

  • Кэш: 2211 → 2728 KB (+23% рост)

  • Своп: 69 → 73 KB (незначительный рост)

  • Вывод: Увеличение использования кэша, снижение свободной памяти

Сравнение: ROW_NUMBER активнее использует кэш в начале, Deferred Join наращивает кэш в процессе.

3. Ввод-вывод (IO)

ROW_NUMBER:

  • io_bo: 52 → 58 (+11.5% рост)

  • Пиковые значения: до 59

  • Вывод: Умеренный рост IO при увеличении нагрузки

Deferred Join:

  • io_bo: 59 → 65 (+10% рост)

  • Пиковые значения: до 68

  • Вывод: Более высокий базовый уровень IO

Сравнение: Deferred Join имеет на 10-15% выше активность IO, что соответствует ожиданиям из предыдущего анализа (IO ожидания).

4. Системные метрики

ROW_NUMBER:

  • Прерывания (system_in): 5687 → 8279 (+45% рост)

  • Переключения контекста (system_cs): 657 → 1053 (+60% рост)

  • Процессы в run queue (procs_r): 6 → 15 (+150% рост)

Deferred Join:

  • Прерывания (system_in): 5652 → 8274 (+46% рост)

  • Переключения контекста (system_cs): 652 → 1063 (+63% рост)

  • Процессы в run queue (procs_r): 5 → 15 (+200% рост)

Сравнение: Оба подхода показывают схожий рост системных метрик, Deferred Join имеет немного больше переключений контекста.

5. Критические точки перехода

ROW_NUMBER:

  • Итерация 50 (нагрузка 10): переход на 0% idle CPU

  • Сопровождается: Ростом procs_r до 9

  • Симптом: Резкое изменение паттерна использования памяти

Deferred Join:

  • Итерация 52 (нагрузка 10): переход на 0% idle CPU

  • Сопровождается: Ростом procs_r до 9

  • Симптом: Снижение свободной памяти до 4000 KB

6. Корреляция с нагрузкой

  • 5-8 соединений: Оба подхода работают с простоями CPU (36% idle)

  • 10 соединений: Критическая точка (0% idle)

  • 12-15 соединений: Стабилизация на максимальной нагрузке

  • 18-22 соединений: Дальнейший рост системных метрик

7. Ключевые различия по метрикам

ROW_NUMBER преимущества:

  1. Меньше IO операций (58 vs 68)

  2. Лучшее использование памяти (растущая свободная память)

  3. Более стабильный кэш (меньше колебаний)

Deferred Join преимущества:

  1. Меньше системного времени CPU (3% vs 4%)

  2. Более предсказуемое использование кэша (постепенный рост)

  3. Меньше начальных буферов (более эффективное использование)

8. Проблемные паттерны

ROW_NUMBER:

  • Проблема: Резкое падение кэша с 4955 до 2751

  • Причина: Оконные функции требуют больших рабочих наборов

  • Риск: Потенциальные page faults при недостатке памяти

Deferred Join:

  • Проблема: Высокий базовый уровень IO (59 vs 52)

  • Причина: Hash Join и сортировка для OFFSET

  • Риск: Disk I/O bottlenecks при высокой нагрузке

9. Общие выводы по метрикам

  1. Оба подхода CPU-bound: 0% idle при нагрузке ≥10 соединений

  2. Deferred Join более IO-intensive: на 10-15% выше IO активность

  3. ROW_NUMBER более memory-intensive: активнее использует кэш и буферы

  4. Критическая нагрузка: 10 соединений для обоих подходов

  5. Масштабирование: Deferred Join лучше сохраняет кэш, но требует больше IO

10. Рекомендации по оптимизации системы

Для ROW_NUMBER:

  1. Увеличить work_mem для сортировки в памяти

  2. Настроить shared_buffers для кэширования рабочих наборов

  3. Мониторить page faults и swap активность

Для Deferred Join:

  1. Оптимизировать индексы для уменьшения IO

  2. Рассмотреть SSD для уменьшения latency IO операций

  3. Настроить effective_io_concurrency для параллельного IO

Итог:

Выбор между подходами зависит от конфигурации системы -

  • ROW_NUMBER для CPU-обеспеченных архитектур

  • Deferred Join для систем с хорошим IO.

Показать полностью 6
[моё] Postgresql Тестирование Нейронные сети Инженер Статья Длиннопост
0
user9614331
user9614331

Анимешки из фото онлайн⁠⁠

4 дня назад

Знаю многих здесь задолбали всякие ИИ, но кому интересно, то запустил новую модель на своем сайте Фотомагия для создания из фото анимешек с сохранением всех деталей исходной композиции. Думаю, будет интересно использовать на аватарках в соцсетях или как-то иначе. Под это выделил отдельный сервер (не очень мощный конечно, но думаю справится).

Ну и, как и ранее, все бесплатно для всех.

Показать полностью 2
[моё] Нейронные сети Сайт IT Тестирование Бесплатно
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии