Gamedev Евгений Иванов
3 423

Принудительная оптимизация игр c WPS Performance Station

В закладки
Аудио

Здравствуйте, уважаемые читатели!

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

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

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

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

Суть работы сводилась к поддержанию некоторых СЭД, написанию различных макросов на VBA, утилиток для автоматизации или интеграций разных простеньких систем и т.п. И как раз в то же время я решал одну из наболевших проблем организации, а именно, неудовлетворительную работу различного ПО на новых ноутбуках сотрудников. Мне пришлось столкнуться с проблемой, которая возникает у многих сисадминов крупных компаний — на компьютерах персонала, кроме любимых ими MS Office, SAP, 1С и т.п., присутствовал не менее любимый всеми IT специалистами «McAfee», «punto switcher», «mail спутник» и что только не.

Тут стоит уточнить, что данная компания тогда продвигала либеральное отношение к компьютерам сотрудников, и зарождала у себя BYOD. Так как жалобы на производительность поступали в т.ч. и мне, я стал искать приложения для настройки производительности на подобии Process Lasso.

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

Найденный на тот момент «Bill2`s Process Manager» имел массу преимуществ перед системными средствами, т.к. был довольно простым в управлении и настройке. Он позволял делать то же самое, что умеет диспетчер задач, а именно, задавать базовый приоритет и маску ядер для приложений, но, в отличии от диспетчера, давал возможность сохранить эти параметры после перезагрузки и различал приложения которые отображаются в окнах на рабочем столе или работают в фоне. Благодаря этому приложению мне удалось решить одну из самых насущных проблем, объяснить компьютеру с какими приложениями я работаю сейчас, и что для меня важнее — EXCEL или фоновая установка обновлений. Но, несмотря на то, что для меня это приложение решило основную проблему, оно имело массу недостатков:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссыки на сравнение производительности с приложением и без:

Antutu
Dirt rally

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Евгений Иванов", "author_type": "self", "tags": [], "comments": 57, "likes": 58, "favorites": 74, "is_advertisement": false, "subsite_label": "gamedev", "id": 40260, "is_wide": false, "is_ugc": true, "date": "Tue, 19 Feb 2019 14:12:20 +0300" }
{ "id": 40260, "author_id": 118338, "diff_limit": 1000, "urls": {"diff":"\/comments\/40260\/get","add":"\/comments\/40260\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/40260"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

57 комментариев 57 комм.

Популярные

По порядку

Написать комментарий...
9

Все хорошо, но статья скорее для хабра

Ответить
4

Тащем-то эта статья там тоже есть)

Ответить
0

Опыт в работе в IT не поправили. Сейчас он скорее-всего больше чем два года назад.

Ответить
0

По всей видимости да, но это не особо важно)

Ответить
6

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

Ответить
1

Подумал, что и так много инфы, а тесты вот:
1) https://youtu.be/3L3mhqZJUjs
2) https://youtu.be/J4lqDnf7XQc

Ответить
1

Добавил в статью :)

Ответить
5

А зачем надо было копировать текст двухгодичной давности? Или за два года вообще ничего не поменялось и не добавилось?
Из комментов тоже видно, что абсолютно не нужная хрень.
Как и было ясно изначально, полнейший рекламный буллшит.
https://habr.com/ru/post/320110/

Ответить
1

Как и написано в начале, мы хотим поделиться своей историей практического создания продукта от идеи, до абсолютно работающего решения. За два года была проделана огромная работа, но в этой статье рассказывается именно этап от идеи до выхода на рынок, а не дальнейший жизненный цикл развития. Если вам действительно интересно, какими функциями обросло приложение, то мы можем написать отдельную статью об этом, ведь было добавлено очень многое, например, как упомянули в соседнем комментарии функция оптимизации передаваемых данных за счет сжатия трафика и отсечения рекламы. Ещё были добавлены профили для алгоритмов нейросети, дополнительные параметры для адоптации, среди которых аппаратный рейтинг пользователя и многое другое.
Но вместо того, чтобы просто изъявить интерес к подробностям проекта, вы просто ставите негативный ярлык, подумайте над этим ;)

Ответить
0

Ну объем работы и правда большой, но все равно - на дтф толку нет от таких статей.

Ответить
0

Типичный snake oil. В MS люди не знают как планировщик делать, мы лучше знаем!

Ответить
0

Ну да, и браузер они лучше всех сделали, не то, что бракоделы из гугла)

Ответить
0

Ну поставил я эту шляпу вчера. В 3D Mark эффекта ноль, в Kingdom Come Deliverance тоже. Если где и может помочь, то на одноядерных процессорах.

Ответить
0

Ну почему не добавилось - теперь они прокси продают. Или два года назад это уже было?

Ответить
0

Почти) На самом деле много всего добавилось, мы не знали будет ли читателям DTF интересно увидеть больше подробностей поэтому не стали писать обо всём, что прошло с момента публикации приложения, но так как интерес явно проявился, мы с удовольствием поделимся нашим дальнейшим опытом развития продукта и подводными камнями, которые встретили и преодолели)

Ответить
3

конечное тестирование показало эффективность данных решений

Больше похоже на рекламный буклет. Где бенчи, сравнения скорости/работы аккума в конце то концов?

для работы не требуется никаких настроек

Это чего, за меня и есть будет? А если ваш алгоритм не правильно приоритеты расставил?
Что конкретно меняет, какие настройки, куда лезет и зачем... Весьма много вопросов для сомнительной приблуды.

Ответить
3

Обычно, конечному потребителю не важно, что именно изменилось, если в итоге стало работать лучше :) такая информация интересует не более 1го процента от всех пользователей, поэтому если реально интересно что и как делает алгоритм и какие есть настройки, добро пожаловать в подробную инструкцию - https://winperst.ru/wps_details

Ответить
4

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

написанию различных макросов на VBA

вопрос немного не по теме конечно, но мож подскажешь
некоторое время назад писал макросы для экселя, которые вели расчет по данным из разных листов и заметил одну интересную вещь, на 4 ядерной машине (i5) во время работы макроса использовалось одно ядра и загрузка проца была в районе 25% (что логично, ибо работало в однопотоке), но если во время расчета вызвать диспетчер задач, то загрузка проца становилась 40-45% и соответственно макрос выполнялся почти в 2 раза быстрее, я так и не понял из-за чего так получалось, но было забавно

Ответить
2

Добавил видео в статью :)

Ответить
0

Any programmer || Code with no bugs

Но вообще забавно, надо будет потестить.

Ответить
0

там точно не в багах было дело)
неоптимальный алгоритм - возможно, но я там все равно не использовал многопоточность (да и в VBA ее вроде и нет) и поэтому меня заинтересовало такое странное поведение)

Ответить
0

Я говорю не про баги в коде скрипта, а баги в самом интерпретаторе VBA. Да. Многопоточки там по идее нет.

Ответить
0

Такое запредельное количество абстракций, которое используется в Excel VBA может приводить к чему угодно) но вообще, скорее всего дело в Hyper Threading, когда ядро с HT выполняет разнотипные операции, оно может их параллелить само, вероятно, когда менялся контекст приложения, основной поток excel переставал обрабатывать какую-то из фоновых активностей, что освобождало дополнительные блоки HT.

Ответить
0

там точно был i5 без ht)
а так вполне здравое рассуждение

Ответить
0

Ну тогда, либо чудо, либо фокус :)

Ответить
2

Заинтересовали, скачал, посмотрю что и как и если пойдет, то куплю в ближайшее время.

Ответить
1

Все ждал что в конце будут тесты с запущенными играми и как это повлияло на производительность)

Ответить
1

Подумал, что и так много инфы, а тесты вот:
1) https://youtu.be/3L3mhqZJUjs
2) https://youtu.be/J4lqDnf7XQc

Ответить
0

И все? Дирт 4 и бенчмарк? Без указания характеристик системы, которая используется для теста? А что насчет более ресурсоемких игр, таких как Assassin's Creed Odyssey например, которая сама по себе грузит процессор на 100%? Или Metro Exodus скажем?

Ответить
1

Метро вышла в пятницу, а вы уже требуете бенчмарки с ней)))
Эти видео были представлены для наглядности работы алгоритма, какой смысл снимать все подряд, если суть не меняется?)
По характеристикам согласен, но вроде бы в описании к ролику на youtube должны быть статы.

Ответить
4

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

Ответить
0

Тут вы абсолютно правы, думаю скоро действительно запилим ещё парочку тестов)

Ответить
0

Почему сайт называет winperst.ru, а при установке программы, подпись у неё называется OOO "Vinperst"?

Ответить
3

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

Ответить
1

Интересно... Заценю, если понравится - обязательно куплю.

Ответить
1

Там ещё и скидка - прога ровно $0,99 в winstore стоит. Купил на попробовать, из непонравившегося - встроенная подписка на какой то прокси (то ли рекламорезка то ли для gprs инета). Есть ли прок - время покажет. Кстати автор - почему в посте нет ссылок на сайт? И про цену ни слова (про скидку тоже).

Ответить
0

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

Ответить
0

Так, я скачал пробную версию, в чем подвох?
У меня что-то майниться будет или вы мои файлики смотрите?

Ответить
1

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

Ответить
0

Было бы интересно узнать на чём писали (Звучит как Си с ассемблерными вставками), какие пользовали фреймворки и либы и всякое такое. Вообще, дело хорошее. Кстати. Я понимаю, что хочется заработать денежек, но развитие шло бы быстрее не open-source рельсах.

Ответить
0

c# скорее всего, врядли там нужны ассемблерные вставки, чтобы менять приоритет у текущих задач
хотя посмотреть на код тоже было бы интересно

Ответить
0

Ну там вроде и контекст процессора перекидывается, и работа с RAM.

Ответить
1

Все гораздо прозаичней, для UI используется обычный VCL, а для работы с ядром ОС стандартные WinAPI. Вся логика нейросети и прочая обвязка для обмена данными, файлами и т.п реализована на Delphi. При том, есть версия UWP и классический EXE.

Ответить
1

Ого, так делфи ещё не умер.

Ответить
2

У всех такая реакция) представляю как бомбит у ребят из borland :)

Ответить
0

Кто-то уже потестил?

Ответить
0

брат жив

Ответить
0

брат умер, винт перебил ногу, а может и крокодил, потому нужны ещё тестеры.

Ответить
0

Работаете там же, в международной организации производящей порошки и шампуни?

Ответить
0

Нет, это уже дела давно минувших дней)

Ответить
0

Вообще тема конечно интересная, за 99 рублей можно и самому попробовать.
Лишь бы майнеров в комплекте не было.
А то поди вы оптимизируете работу компа, чтоб пользователь не заметил что на нем майнят)

Ответить
0

Хотел бы я увидеть такой оптимизатор, который делает незаметным майнинг) а если серьезно, ни один антивирус не ругается на наше ПО, можете проверить на Virustotal.

Ответить
0

Почему нельзя было сухо изложить что конкретно делает прога? Половина статьи это какое-то жизнеописание человека. В чем дело то? Пока я играю в crysis.exe всем остальным прогам выставляется низкий приоритет?

Ответить
0

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

Ответить
0

Есть техническое описание что делает програ? Спасибо.

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

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
10 самых лучших блюд
(согласно инстаграму Хидео Кодзимы)
Подписаться на push-уведомления