Около двух лет назад наша команда сказал Хабр о своем проекте по оптимизации ОС Windows с помощью технологии нейронных сетей.
За последние два года многое изменилось, но самое главное осталось неизменным.
И в этой статье мы хотим поделиться открытиями и выводами, которые мы сделали за эти два года.
Если вас интересует, как обстоят дела в 2020 году с независимым производством программного обеспечения для ПК, добро пожаловать под кат.
Но прежде чем перейти к основной истории, необходимо уточнить, что все сказанное ниже рассказано с позиции независимой компании, которая в процессе развития движется вперед только за счет внутренних ресурсов.
Что сделано за эти два года
UWP Публикация в MS Store была одним из самых сложных, но и одним из самых важных достижений в работе над проектом.Именно этот шаг позволил нам выйти за пределы рынка СНГ и освоить глобальный рынок программного обеспечения для Windows. Новый функционал Следующим шагом, после получения возможности управлять приоритетами ЦП и ядрами ЦП для оптимизации Windows, было научить приложение управлять всеми другими ключевыми компонентами ПК, чтобы использовать алгоритмы нейронной сети с максимальной эффективностью.
И если с управлением ядрами и приоритетами ЦП все было относительно просто, то для управления приоритетами оперативной памяти и приоритетами ввода-вывода мне пришлось настолько глубоко погрузиться в архитектуру Windows, что пришло время писать диссертации.
Например, из всего известного нам программного обеспечения только WPS и Process Lasso могут устанавливать «высокий» приоритет ввода-вывода.
Что ж, как только полный контроль над ЦП, ОЗУ и ПЗУ был освоен, дело было оставлено на усмотрение периферийных устройств.
Следующей эволюцией стало управление питанием, где WPS стало единственным известным нам приложением, которое управляет питанием динамически, а не статически.
Это значит, что для максимальной производительности не нужно постоянно держать частоту процессора на уровне 100% и не допускать парковки ядер, что приводит к постоянной работе при максимальных нагрузках и повышенному энергопотреблению.
Теперь, анализируя приложения с помощью нейросети, можно получить ту же максимальную производительность, но только тогда, когда пользователь работает с тяжелым ПО или играет в требовательные игры, чтобы в остальное время компьютер бесполезно не преобразовывал электроэнергию в нагревать.
А кроме оптимизации ключевых элементов ПК добавлена оптимизация передачи данных (за счет сжатия трафика и блокировки рекламы по VPN), а также автоматическая очистка ненужных файлов.
Стабильность За прошедшее время мы неоднократно убедились в правильности выбора архитектуры приложения.
Благодаря тому, что все операции с системой выполняются через WinAPI, вопрос стабильности (системы и ПО) при внесении изменений в параметры работы решен практически идеально.
За более чем два года существования приложения и более миллиона устройств, на которых оно было установлено, мы не зафиксировали ни одного случая проблем со стабильностью системы или несовместимости со сторонними приложениями.
UI/UX Одним из наиболее ключевых направлений работы за последнее время стало улучшение UI/UX, которое позволило значительно снизить порог входа новых пользователей для освоения ключевых функций приложения.
Те, кому интересна тема UI/UX разработки, могут оценить последовательные изменения нашего основного интерфейса под спойлером: Главный интерфейс WPS
Рейтинг производительности оборудования
Стало возможным не только сказать, сколько условных попугаев производит тот или иной ПК, но и оценить реальную производительность отдельного компьютера относительно всех текущих ПК, на которых установлено приложение.
Эта функция решает сразу три проблемы.
Первый – это вопрос о том, какой компонент компьютера наиболее устарел и требует замены.
Во-вторых, насколько этот компьютер быстрее/медленнее всех остальных в целом.
В-третьих, встроенные алгоритмы могут использовать разные подходы для повышения производительности мощных и слабых ПК для достижения наилучших результатов.
Ключевые результаты
- Продажи так же важны, как и производство; одно не может существовать без другого, поэтому обе эти области разработки программного обеспечения требуют одинакового внимания и инвестиций.
- Обратная связь от конечного клиента – это все, какими бы выдающимися ни были ваши технологические решения, они бесполезны, если они не нужны клиенту, не умеют ими пользоваться или просто непривлекательны.
- Любые решения необходимо проверять и перепроверять, теория и практика различаются независимо от объема вашей экспертизы, поэтому любые изменения необходимо проверять в фокус-группе, чтобы убедиться в правильности ваших решений.
- Стабильность – ключ к успеху.
Это верно на всех уровнях, как стратегических в поведении компании и людей, так и прикладных по отношению к продукту.