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

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

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

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

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

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

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

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

Winperst

10 постов сначала свежее
2
rollnoir
5 лет назад

Наш опыт работы с 1cloud⁠⁠

Доброго дня, уважаемые читатели Pikabu!

В этой статье хотим поделиться своим опытом работы с небезызвестным хостинг-провайдером 1cloud.


Мы постарались полностью исключить какие-либо оценочные суждения и предоставить только набор фактов и последовательность действий. Изложение данных событий не имеет цели задеть чьи-либо чувства и направлено исключительно на то, чтобы поделиться с читателями Pikabu полученным опытом.
Наш опыт работы с 1cloud Winperst, Хостинг, Интернет-провайдеры, Служба поддержки, Сервер, Серверное администрирование, Длиннопост

Далее речь пойдёт от нас, как от команды WPS Performance Station, которая выступила в данной истории клиентом многоуважаемой компании 1Cloud. Надеемся наш опыт поможет другим пользователям при подборе хостинга для серверов.


Итак, утром 15-го февраля 2020-го года нам стали поступать жалобы от пользователей нашего приложения о недоступности части сетевых сервисов. После проверки доступности проблема была обнаружена, причиной оказалось ограничение канала связи до 100 Мбит/с по неизвестным нам причинам.


Сразу после этого, было создано обращение в техподдержку 1Cloud и в 4:47:06 по Московскому времени. Далее приводим всю имеющуюся на данный момент переписку с ТП 1Cloud начиная с этого момента (заранее просим извинить за стилистическое несовершенство данной беседы, т.к. к сожалению, наш администратор имеет не самые лучшие коммуникативные навыки):

Наш опыт работы с 1cloud Winperst, Хостинг, Интернет-провайдеры, Служба поддержки, Сервер, Серверное администрирование, Длиннопост
Наш опыт работы с 1cloud Winperst, Хостинг, Интернет-провайдеры, Служба поддержки, Сервер, Серверное администрирование, Длиннопост

Обратите внимание на тайминги сообщений.


Расценки на момент данной ситуации у 1Cloud составляли 4000р/мес за сервер (с конфигом указанным в начале статьи), в дополнение к этому 900р/мес за канал связи шириной 100 Мбит/с и существенно больше чем 900р за 300Мбит/с (так и не удалось найти место, где была бы указана цена за данную скорость после принудительного снижения до 100Мбит/с).


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


Далее будут приведены выдержки из SLA по адресу — 1cloud.ru/conditions/sla

Наш опыт работы с 1cloud Winperst, Хостинг, Интернет-провайдеры, Служба поддержки, Сервер, Серверное администрирование, Длиннопост
Наш опыт работы с 1cloud Winperst, Хостинг, Интернет-провайдеры, Служба поддержки, Сервер, Серверное администрирование, Длиннопост

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


Более по текущему поводу нам сказать нечего. От лица команды WPS, приносим собственные извинения всем нашим пользователям за возникшие проблемы, мы со своей стороны применим все возможные меры для того, чтобы данная ситуация не повторилась.

Показать полностью 5
[моё] Winperst Хостинг Интернет-провайдеры Служба поддержки Сервер Серверное администрирование Длиннопост
10
13
rollnoir
5 лет назад

Новый уровень оптимизации Windows⁠⁠

Около двух лет назад наша команда поведала Хабру о своём проекте по оптимизации ОС Windows с помощью технологии нейросетей.

За прошедшие два года многое изменилось, но самое главное осталось неизменным. И в этой статье мы хотим поделиться теми открытиями и теми выводами, которые сделали за эти два года.

Новый уровень оптимизации Windows Windows, Оптимизация, Wps, Wps Performance Station, Winperst, Разработка, It проекты, Длиннопост

Если вам интересно, как в 2020ом обстоят дела по независимому продакшену софта для ПК, добро пожаловать:


Но прежде чем перейти к основному повествованию, необходимо уточнить, что всё сказанное ниже рассказано с позиции независимой компании, которая в процессе развития двигается вперед только за счёт внутренних ресурсов.

Что было сделано за эти два года:


UWP

Публикация в MS Store стала одним из самых непростых, но и одним из самых важных достижений при работе над проектом. Именно этот шаг позволил выйти за пределы СНГ рынка и осваивать глобальный рынок ПО для Windows.


Новый функционал

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

И если с управлением ядрами и приоритетами ЦП всё было относительно просто, то для управления приоритетами ОЗУ и приоритетами ввода-вывода пришлось настолько погрузиться в архитектуру Windows, что уже в пору писать диссертации. Для примера, из всего известного нам софта, установить «высокий» приоритет ввода-вывода может только WPS и Process Lasso.

Ну и как только было освоено полное управление ЦП, ОЗУ и ПЗУ, дело оставалось за периферийными устройствами. Поэтому следующим шагом развития стало управлением питанием, где WPS стал единственным известным нам приложением, которое управляет питанием динамически, а не статически. Это означает, что для максимальной производительность не нужно постоянно держать частоту ЦП на 100% и не давать ядрам парковаться, что приводит к постоянной работе на предельных нагрузках и повышенному расходу питания. Теперь за счёт анализа приложений нейросетью, появилась возможность получить ту же максимальную производительность, но именно тогда, когда пользователь работает с тяжёлым софтом или играет в требовательные игры, чтобы в остальное время компьютер не переводил без пользы электричество в тепло.

И в дополнение к оптимизации ключевых элементов ПК, была добавлена оптимизация передачи данных (через сжатие трафика и блокировку рекламы на VPN), а так же автоматическая очистка мусорных файлов.


Стабильность

За прошедшее время мы многократно убедились в правильности выбора архитектуры приложения. Благодаря тому, что все операции с системой производятся через WinAPI, вопрос стабильности (системы и ПО) при внесении изменений в параметры работы оказался решён практически идеально. За более чем два года существования приложения и более миллиона устройств, на которых оно было установлено, мы не зарегистрировали ни одного случая возникновения проблем со стабильностью работы системы или несовместимости со сторонними приложениями.


UI/UX

Одним из самых ключевых направлений работы за прошедшее время было усовершенствование UI/UX, которое позволило очень сильно понизить порог входа новых пользователей для освоения ключевых функций приложения. Тем кому интересна тема развития UI/UX могут оценить последовательные изменения нашего основного интерфейса.

- было:

Новый уровень оптимизации Windows Windows, Оптимизация, Wps, Wps Performance Station, Winperst, Разработка, It проекты, Длиннопост

- стало:

Новый уровень оптимизации Windows Windows, Оптимизация, Wps, Wps Performance Station, Winperst, Разработка, It проекты, Длиннопост

Рейтинг аппаратной производительности

Появилась возможность не просто сказать сколько условных попугаев выдаёт тот или иной ПК, а оценить реальное соответствие производительности отдельного компьютера относительно всех актуальных ПК, на которых установлено приложение. Такая функция решает сразу три проблемы. Первая — вопрос того, какой компонент компьютера сильнее всего устарел и нуждается в замене. Вторая — насколько данный компьютер быстрее/медленнее всех прочих в целом. Третья — встроенные алгоритмы могут использовать различные подходы к повышению производительности мощных и слабых ПК для достижения наилучших результатов.


Ключевые выводы

- Продажи так же важны как и производство, одно без другого существовать не может, поэтому оба этих направления при разработке ПО требуют одинакового внимания и вложений.


- Обратная связь от конечного клиента решает всё, какими бы выдающимися не были ваши технологические решения, они бесполезны, если клиенту они не нужны, он не знает как их использовать или они банально непривлекательны.


- Любые решения необходимо проверять и перепроверять, теория и практика расходятся независимо от объёма вашей экспертизы, поэтому нужно проверять любое изменение на фокус-группе, чтобы убедится в верности ваших решений.


- Стабильность — залог успеха. Это справедливо на всех уровнях, как стратегическом в поведении компании и людей, так и в прикладном в отношении продукта.

Большое спасибо всем, кто дочитал!

Показать полностью 3
[моё] Windows Оптимизация Wps Wps Performance Station Winperst Разработка It проекты Длиннопост
10
rollnoir
7 лет назад

WPS Comparison Split Screen (Antutu)⁠⁠

The video comparison of WPS Performance Station in Antutu test on Razer Edge Pro.

Download application on: https://www.microsoft.com/ru-ru/store/p/wps-performance-stat...

[моё] Wps Performance Station Windows Performance Station Winperst Antutu Windows Windows performance Видео
2
rollnoir
7 лет назад

Оптимизация ПК с помощью нейросети⁠⁠

Короткий обзор интересного приложения для улучшения многозадачности ОС Windows.

Windows Performance Station Winperst FPS Оптимизация Windows Видео
6
rollnoir
7 лет назад

Windows Performance Station в Windows Store⁠⁠

Здравствуйте, уважаемые пикабушники!
Хочу поделиться с вами радостью любого инди-разработчика!

С сегодняшнего дня, наше приложение Windows Performance Station стало доступно в официальном магазине Microsoft!

Windows Performance Station в Windows Store Компьютер, Windows, Microsoft, Windows store, Windows Performance Station, Winperst, Публикация, Разработка

Если кому будет интересно - напишу подробный пост про процесс публикации десктопных приложени в Windows Store. Ссылку оставлю в комментариях.

[моё] Компьютер Windows Microsoft Windows store Windows Performance Station Winperst Публикация Разработка
7
rollnoir
7 лет назад

Что такое SMT (Hyper-Threading) — плюсы и минусы⁠⁠

Пока я радую свои графоманские пристрастия написанием детальной технической статьи про «Windows Performance Station», захотелось поделиться своими мыслями о том, что хорошего и плохого приносит SMT в процессоры «AMD» и «Intel», и как тут поможет «Windows Performance Station».

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

Тем, кому интересна данная тема, добро пожаловать под кат…

Итак, для начала давайте определимся, что такое SMT.

Как говорит нам википедия, SMT (от англ. simultaneous multithreading) это одновременная многопоточность, т.е. несколько потоков выполняются одновременно, а не последовательно, как это происходит во "временной многопоточности".


Многие знают эту технологию под названием «Intel Hyper-Threading», про неё уже всё давно написано, но до сих пор я сталкиваюсь с тем что многие разработчики, и, тем более, обыватели не понимают в чём основная суть «одновременного» выполнения нескольких команд одним ядром процессора и какие проблемы это несёт.


Для начала поговорим про временную многопоточность.


До реализации технологии SMT в виде «Hyper-Threading» использовалась технология «временной многопоточности».


Тут всё просто, представим, что у нас есть один конвейер и один рабочий (Ядро ЦП), который выполняет операции над числами и записывает результат. Предположим, для этих операций ему нужна отвёртка и гаечный ключ. Операционная система (ОС) складывает нашему рабочему на конвейер по порядку одну операцию для отвёртки, а за ней одну операцию для гаечного ключа. Один рабочий в один момент времени может оперировать или только гаечным ключом или только отвёрткой. Таким образом, выкладывая разное количество разных блоков, ОС определяет приоритет выполнения тех или иных операций от разных приложений. Пропорцию одних блоков к другим мы можем указывать внутри ОС, когда указываем приоритет процесса. Именно это и делают все диспетчеры задач в т.ч. и «Windows Performance Station». Это приоритизирование распространяется далее на механизмы SMT и всю работу с конвейерами.

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

С появлением SMT ситуация становится чуть сложнее.

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


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

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

Исходя из этого, когда на конвейере находится операция (A и B) с одной стороны и (D и E) с другой стороны — всё отлично, но при распараллеливании цепочки вычислений могут получиться две проблемы:

1. С одной стороны конвейера оказалось действие (A и B) = С, а с другой (D и E) = C,


т.е. нужно записать сначала одно значение C, а потом второе значение C, но не одновременно (конфликт по управлению).


2. С одной стороны конвейера оказалось действие (A и B) = C, а с другой (A и C) = D,


т.е. нужно сначала посчитать C, а потом посчитать D, но не одновременно (конфликт по данным).



Оба конфликта вызывают задержку выполнения инструкций и решаются последовательным выполнением команд. Чтобы уменьшить такие задержки были введены элементы процессора под названием предсказатель переходов и кэш процессора.



Предсказатель переходов, как понятно из названия, осуществляет предсказание :)


Предсказывает он вероятность возникновения первой проблемы, когда разные преобразования должны произойти над одним числом.


В свою очередь, кэш процессора, необходим для быстрого решения второй проблемы, когда мы останавливаем решение выражения (A и C) = D и пишем в кэш результат выполнения (A и B) = C, после чего сразу вычисляем (A и C) = D.



Справедливости ради, стоит уточнить, что проблема распараллеливания конвейера появляется и у многоядерных процессоров без SMT, но у многоядерников не возникает момента простаивания процессора, когда на двоих рабочих одна отвёртка, т.к. в такой терминологии у каждого рабочего есть своя отвёртка и свой гаечный ключ.

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

Все эти пляски вокруг угадывания процессором того, как распараллелить текущие операции, приводят к серьёзным потерям энергии и к ощутимым фризам, когда происходит голодание разнотипных задач на ядрах с SMT.



Вообще, стоит держать в уме, что «Intel» разработала «Hyper-Threading» одновременно с созданием своих первых многоядерных процессоров «Xeon» и, по сути, эту технологию можно считать эдаким компромиссом когда ставится двойной конвейер на одно ядро.



С подачи маркетологов принято нахваливать то, как хорошо одно ядро может выполнять несколько задач одновременно и как повышается производительность «в некоторых сценариях использования», однако про проблемы, присущие концепции SMT принято умалчивать.



Примечательно, что на сайте «Intel» в рекламном ролике показывается скорее двухядерность, нежели «Hyper-Threading», тот кто дочитал до этого момента, наверняка уже догадался почему :)



Изображение из видео:

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

Более точное изображение:

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

https://www.intel.ru/content/www/ru/ru/architecture-and-tech...



Какой вывод можно здесь сделать и что улучшить?


Вместе с очевидными плюсами, SMT приносит фризы в чувствительные для времени выполнения задачи (воспроизведение видео/музыки или FPS в играх). Именно поэтому, многие геймеры наблюдают падение FPS при включенном SMT/Hyper-Threading. Так как же нам уменьшить эти минусы и не потерять плюсы SMT?



Вот тут как раз нам и поможет управление задачами в ОС.


Как я и написал ранее, мы можем сортировать блоки, выкладываемые на конвейер, ещё на этапе обработки задач ядром ОС. С помощью приоритетов и разделения процессов по ядрам процессора, можно выкладывать определённые блоки на конвейер в нужном количестве и класть разнотипные блоки для разных виртуальных ядер, чтобы не наступало голодание разнотипных задач. Именно для этой задачи динамического анализа в «Windows Performance Station» мы объединили нейросеть и диспетчер задач. В итоге, нейросеть анализирует задачу и раскладывает её в зависимости от полученных данных по разным правилам, благодаря чему, каждое ядро в паре SMT выполняет разные задачи.

Что такое SMT (Hyper-Threading) — плюсы и минусы Winperst, Windows performance Station, Оптимизация, Windows, Amd Ryzen, Hyper-threading, Длиннопост

Благодаря такому подходу, процессоры с SMT в Windows могут более эффективно работать с многозадачностью и многопоточными процессами. И именно поэтому нас весьма порадовало появление SMT в новых процессорах «AMD Ryzen».



Приложение «Windows Performance Station» бесплатное и не содержит рекламы, его можно скачать с нашего сайта: winperst*ru



Большое спасибо всем, кто осилил данный текст :)

Показать полностью 6
[моё] Winperst Windows performance Station Оптимизация Windows Amd Ryzen Hyper-threading Длиннопост
5
10
rollnoir
8 лет назад

Windows Performance Station или как я учил комп работать эффективно⁠⁠

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Здравствуйте, уважаемые пикабушники!

Подводя итоги года, хочу поведать здесь историю своего проекта.

Многие аспекты собственного опыта и работы приходится описывать довольно общими терминами, чтобы не задеть коммерческую тайну тех организаций, о которых идёт речь.


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

Итак, данная история началась в 2013ом году, в то время я работал в одной крупной международной организации производящей порошки и шампуни. Должность у меня была сисадминская, но, как это часто бывает, по сути я был "тыжпрограммистом". Суть работы сводилась к поддержанию некоторых систем СЭД, написанию различных макросов на VBA, утилиток для автоматизации или интеграций разных простеньких систем и т.п.

И как раз в то же время я решал одну из наболевших проблем организации, а именно, неудовлетворительную работу различного ПО на новых ноутбуках многих сотрудников.

По сути, мне пришлось столкнуться с проблемой, которая возникает у многих сисадминов крупных компаний - на компьютерах персонала, кроме любымых ими MS Office, SAP, 1С и т.п., присутствовал не менее любимый всеми IT специалистами "mcafee", "punto switcher", "mail спутник" и что только не. Тут стоит уточнить, что данная компания тогда продвигала либеральное отношение к компьютерам сотрудников, и, по сути, зарождала у себя BYOD.

Так как жалобы на производительность поступали в т.ч. и мне, я стал искать приложения для настройки производительности на подобии Process Lasso. Мой выбор тогда пал на "Bill2`s Process Manager". На тот момент я нашёл много альтернатив, но все они имели жутко перегруженный интерфейс и на собственную работу отъедали больше ресурсов, чем можно было высвободить оптимизацией.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Найденный на тот момент "Bill2`s Process Manager" имел массу приемуществ перед системными средствами, т.к. был довольно простым в управлении и настройке. По сути, он позволял делать то же самое, что умеет диспетчер задач, а именно, задавать базовый приоритет и маску ядер для приложений, но, в отличии от диспетчера, давал возможность сохранить эти параметры после перезагрузки и различал приложения которые отображаются в окнах на рабочем столе или работают в фоне.

Благодаря этому приложению мне удалось решить одну из самых насущных проблем, объяснить компьютеру с какими приложениями я работаю сейчас, и что для меня важнее - EXCEL или фоновая установка обновлений.


Но, несмотря на то, что для меня это приложение решило основную проблему, оно имело массу недостатков:

1) Отсутствие переемственности конфига, нельзя было просто скопировать приложение с одного компа на другой с аналогичной конфигурацией, нужно было настраивать заново. Частично эта проблема решалась запаковкой настроенного приложения в Portable экзешник. (Может как-то можно было вытащить параметры из реестра, но на тот момент я не разобрался).

2) Отсутсвие управления RAM, а именно сжатием оперативной памяти. У многих твикеров есть так называемая "дефрагментация памяти", что по сути является чушью, т.к. дефрагментировать оперативку совершенно бессмысленно с точки зрения производительности. Мне нужно было чистить данные, которые висят в оперативке и не падают в SWAP, чтобы при резкой нагрузке на RAM она уже была свободна и ОС не пыталась угадать, что тебе сейчас в RAM нужно, а что нет. К слову, через год эта фишка штатно появилась в Windows 10, но там это архивирование внутри оперативной памяти, что тоже по сути не совсем решает проблему.

3) Отсутствие управления приоритетами ввода-вывода на жёсткий диск (или SSD). Штатно Windows имеет эту функцию ещё с висты, но активно использоваться она начала только в Win10.

4) Отсутствие определения "фокусного" приложения, т.к. оконность это ещё не всё, если я работаю с десятком приложений, в одном из которых что-то компилируется, а в другом я смотрю YouTube, то мне совсем не хочется, чтобы YouTube лагал если фокус окна на нём, а не на других окнах.

5) Невозможность указать папку с приложениями, чтобы разом применить правило к новым устанавливаемым программам.


По сути, изучая архитектуру ОС Windows я постоянно находил множество отличных механизмов, которые позволяют выстроить производительность в системе идеально при условии одного "НО". НО, если программисты, которые пишут своё ПО будут сообщать операционной системе что их ПО делает, для чего оно предназначено (игры, фильмы и т.п.) и с каким приоритетом оно должно обращаться к ЦП/RAM/HDD.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

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

И это не говоря про службы, которые совершенно беспардонно отъедают любые доступные ресурсы как только поступает эвент к действию (типа скачивания и установки обновлений).

Желающие проверить ситуацию на своём ПК могут открыть диспетчер задач и отобразить столбец "базовый приоритет" во вкладке с процессами.

Немного данную ситуацию исправляет MMCSS, но он слижком мягко влияет на процессы, почти не затрагивая их фактическую производительность.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Самая неприятная вещь в многозадачности Windows, которая меня постоянно преследовала, было прослушивание музыки во время ресурсоёмких операций. Т.к. я во время работы слушал музыку через Хром и запускал расчёты крупных таблиц в Excel, звук имел особенность подвиснуть именно на момент полной загрузки ЦП или постоянно похрипывать при любом скачке этой нагрузки. Данная ситуация почти полностью решилась использованием "Bill2`s Process Manager", но его нужно было вручную настроить на Хром, чтобы тот не кряхтел и получалось, что хром всё время в повышенном приоритете, даже когда музыка не нужна, что уже было не гуд.

Тут же стоит уточнить, что компьютеры и тогда использовались довольно мощные по меркам ноутбуков. На тот момент это был Core i5 2430m / 8GB Ram / 256GB SSD.


При этом, зарождавшийся тогда в компании BYOD предполагал, что сотрудники со своими рабочими ноутбуками могут работать повсюду, в т.ч. из дома и, при этом, использовать рабочий ПК как домашний для просмотра фильмов игр и т.п.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Все эти факторы в итоге натолкнули меня на мысль о написании собственного приложения, которое будет вбирать в себя всё лучшее от имеющихся альтернатив и устранит их недостатки, при этом будет не просто интерфейсом для настройки как диспетчер задач, а полностью автоматической системой для адаптации производительности под выполняемую задачу. По сути, я собирался создать идеальную структуру для BYOD на своём ПК, в которой я мог бы и поработать без понижения производительности процессами Steam, iTunes или т.п. и поиграть, посмотреть фильмы без влияния корпоративного софта, антивирусов и т.п.

Для решения данной задачи мне понадобилось привлечь нескольких своих друзей, которые так же работали в IT. Изначальная мысль была в том, чтобы сделать приложение для нашего собственного удобства и расширить собственные познания по работе ОС и различных приложений.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Дело было за малым, сначала мы написали простенькую альтернативу "Bill2`s Process Manager", но без интерфейсов настройки, чтобы приложение работало с преднастроенным конфигом. Основной фишкой было определение того, какие окна развёрнуты, какие процессы работают в фоне и какое приложение в фокусе. Так же сразу добавили опцию назначения приоритета не только процессу, но и всем процессам из определённой папки. Написать данное приложение было довольно просто и благодаря имеющемуся опыту сразу же получилось недопустить утечек памяти, утекчки хэндлеров, вылетов и прочих багов т.к. приложение должно было работать в фоне длительное время без перезагрузок. Чтобы приложение было лёгким и работало эффективно, мы использовали только стандартные функции ОС и WinAPI. В самом начале мы обходились даже без интерфейса.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Следующим этапом было написать локальный алгоритм обучения, который по входным параметрам определял бы назначение приложения. За основу была взята математическая модель нейросети с нейронами на основе пороговой передаточной функции, но на тот момент не учитывались весовые коэффиценты, которые мы добавили позже. Эта нейросеть сначала училась только на базовых параметрах времени работы с приложением, его имени, правилом в конфигурации и расположением на жёстком диске (например, если много приложений постоянно используются и не работают в фоне, расположены в одной корневой папке типа "C:/Games/", то скорее всего все последующие приложения запускаемые из этой папки будут использоваться активно и понижать их приоритет в фоне не нужно).

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

Тут стоит уточнить, что в отличии от классических диспетчеров задач, мы решили не управлять приоритетами, ядрами, оперативкой и вводом-выводом по отдельности, а объеденили эти параметры в правила, которые комбинировали в разной пропорции. Например, для заглавного приложения правило = FOREGROUND (доступны все ядра, приоритет выше среднего, приоритет ввода-вывода высокий, оперативку в SWAP не сбрасываем).

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

В дальнейшем к алгоритму обучения были добавлены параметры положения окна (есть ли отображаемое окно у приложения, свёрнуто ли оно или развёрнуто. Если развёрнуто на весь экран и в фокусе, то нужно уделить этому процессу больше внимания, чем фоновым и т.п.).

Было добавлено определение служб, т.к. одинаково называющиеся процессы служб svchost.exe выполняют совершенно разные задачи.

Самым сложным, пожалуй, было научить приложение различать одинаковые процессы по разному назначению. Например, многие браузеры запускают для каждой отдельной вкладки отдельный процесс (Chrome, Firefox, Yandex, Opera и т.п.), а звук и видео воспроизводят хост процессы, следовательно из 20ти процессов хрома, когда он не в фокусе, нужно повысить те процессы, которые воспроизводят звук. Это же касается и любых других процессов, которые могут работать в фоне.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Чтобы не прописывать в конфиге все известные миру процессы, в конечном счёте приложение научилось определять не только то, как часто пользователь работает с процессом, но и фактическое назначение процесса и его важность для работы.

Таким образом приложение научилось распределять нагрузку по ключевым узлам компьютера в зависимости от того, с чем в данный момент работает пользователь. Более того, нагрузка распределяется индивидуально для каждого ПК в зависимости от сценария использования какого-либо приложения, т.е. используется ли оно в окне, воспроизводит ли оно видео/звук/3d, как много пользователь обращается к данному приложению и в какой папке данное приложение расположено.


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

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Вся данная логика не могла бы существовать без тесной интеграции с системой, поэтому для реализации всех механизмов пришлось задействовать по максимуму функции Windows API. Это позволило при минимальных затратах расчётных мощностей достучаться до глубоких функций ядра и сохранить максимальную совместимость с любым ПК на x86-64 процессоре.

Так же, важно было учитывать тип компьютера с которым работает пользователь. Например, при работе от аккумулятора используются несколько иные алгоритмы работы с ядрами ЦП, чтобы уменьшить нагрузку и сэкономить заряд. Были добавлены опции управления питанием, чтобы можно было не выключать ноутбук или планшет, а, погасив экран, продолжать слушать музыку или выполнять скачивание/копирование/архивирование файлов с энергопотреблением около спящего режима.

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

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

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Со временем к работе над данным проектом присоеденились другие мои товарищи, которые помогали заниматься дизайном, сайтом, группой ВК и т.п. вопросами.


Предвкушая различные советы от гуру, хочу сразу упомянуть, что мой суммарный опыт работы в IT на данный момент составляет 8 лет. За время работы над данным приложением я встречал множество противоречивой информации на тему особенностей работы ОС и некоторых компонентов ПК, поэтому не удивлюсь, что кто-то может быть несогласен с некоторыми описанными подходами, но конечное тестирование показало эффективность данных решений.

Даже в профессиональной сфере моих коллег, многие до конца не понимают тонкости работы ЦП, многопоточности, многозадачности и многоядерности. Информацию о некоторых системных функциях Windows приходилось находить в самых отдалённых частях интернета. Самым сложным, пожалуй, было найти работающий(!) способ установки высокого приоритета ввода-вывода сторонним приложениям.

Описанный механизм не является сфирическим алгоритмом в вакууме и успешно работает на реальных машинах. В случаях где реально используется многозадачность - прибавка производительности может составлять до 50%.

Windows Performance Station или как я учил комп работать эффективно Компьютер, Windows, Разработка, Оптимизация, Winperst, Производительность, Microsoft, Длиннопост

Финальным штрихом для работы над приложением стало подписание сертификатом "code signing" для ОС Windows.


Большое спасибо всем, кто осилил данный текст до конца.

А так же поздравляю всех с новым годом!

P.S. Прошу прощения за некоторую сумбурность, старался уложить только самую главную инфу, чтобы не сильно разрастался текст.

Мы распространяем приложение по схеме Freemium, чтобы любой пользователь мог воспользоваться самыми основными функциями, но нам будет очень приятно, если сообщество Пикабу нас поддержит, чтобы наш проект смог развиваться далее.

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

Искренне надеюсь, что наши усилия помогут облегчить работу с компьютером многим пользователям, которые не обладают специальными навыками для настройки своего ПК, а прожжёным спецам позволят избавиться от постоянного выбора между скоростью и функциональностью.

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

Показать полностью 11
[моё] Компьютер Windows Разработка Оптимизация Winperst Производительность Microsoft Длиннопост
51
rollnoir
8 лет назад

Windows Performance Station (WPS)⁠⁠

Уважаемые пикабушники!


Прошло ровно 200 дней с того дня, как мы решили явить своё творение посетителям пикабу!

И так совпало, что именно сегодня, мы наконец-то смогли получить свой собственный сертификат Microsoft для подписи приложений.

Наша команда будет очень признательна, если Вы разделите с нами радость этого события!
Большое спасибо всем, кто в нас верил и помогал развиваться.

Теперь мы сможем чаще радовать наших пользователей интересными функциями и обновлениями.


С уважением, команда WinPerSt!

Windows Performance Station (WPS) Производительность, Оптимизация, Windows, Windows 10, Microsoft, Сертификат, Winperst
[моё] Производительность Оптимизация Windows Windows 10 Microsoft Сертификат Winperst
42
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии