Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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

PoE2 Oracle — нативная программа для Windows, написанная на Rust: один процесс, без Electron и без браузера внутри, а интерфейс рисует видеокарта. Здесь собраны замеры, на которых стоят числа сайта: PoE2 Oracle рядом с другими программами проверки цен в игре и пока игра в фоне, её собственная скорость и размер, как и на каком ПК это мерили и чего эти числа не говорят.

Чем она рисует

  • GPUI — фреймворк интерфейса редактора кода Zed — рисует все окна программы видеокартой, через Direct3D 11, и все одним устройством: на ПК из замера у него уровень возможностей 11.1, а в запасе есть 11.0 и 10.1. Шейдеры компилируются при сборке программы, а не при её запуске.
  • Каждое окно выводит кадры через собственную flip-цепочку буферов DXGI, а собирает окна вместе DirectComposition — поэтому оверлеи прозрачны попиксельно.
  • Текст растеризует DirectWrite: глифы ложатся в атлас на видеокарте, и она рисует их оттуда — с ClearType в непрозрачных окнах и оттенками серого в прозрачных. Два шрифта интерфейса вшиты в exe.
  • Процесс один, и доустанавливать ничего не нужно: один exe с вшитым C-рантаймом, без .NET, Visual C++ Redistributable и Chromium.
  • Две вещи рисуют другие. Меню значка у часов — собственное меню Windows. Необязательное окно входа на pathofexile.com показывает сайт во встроенном браузере Windows — Microsoft Edge WebView2. Он запускается, только когда вы нажимаете «Войти», а его процессы завершаются вместе с окном.

В игре

Замер 27 сентября 2026 года на ПК из раздела Как мерили, Path of Exile 2 на переднем плане. PoE2 Oracle, POE2 Currency Overlay, Exiled Exchange 2 и PoE Overlay II работали одновременно, и каждая минута замера снимала все четыре. Sidekick в этом сеансе не участвовал.

ПрограммаВерсияНа чём сделана
PoE2 Oracle0.1.0: в настоящей игре — коммит 786f69b, в контрольном замере — 5fc9b59, для проверок цены — 93296e4Rust, GPUI на Direct3D 11
POE2 Currency Overlay3.0.7Electron
Exiled Exchange 20.16.7Electron
PoE Overlay II1.67.0Overwolf 0.310.1.1

Настоящая игра

Замер с 10:32 до 10:37 (UTC+3), со сборкой PoE2 Oracle на коммите 786f69b: владелец ПК играл как обычно, а мы три минуты только снимали показания, ничего не нажимая. Каждая минута снимала все четыре программы, так что игра у них была одна и та же.

Процессор в каждой минуте, в % одного ядра, и медиана трёх минут:

Программа10:3210:3510:36Медиана
PoE2 Oracle, коммит 786f69b0,6720,6860,6680,672
POE2 Currency Overlay2,8323,2253,6243,225
PoE Overlay II + Overwolf, главное окно открыто3,3013,7004,1043,700
Exiled Exchange 23,7174,2284,7724,228
  • В настоящей игре процессора меньше всех из четырёх нужно PoE2 Oracle: 0,672 % ядра по медиане против 3,225 % у POE2 Currency Overlay, 3,700 % у PoE Overlay II и 4,228 % у Exiled Exchange 2. В каждой минуте она брала в 4–7 раз меньше процессора, чем любая из остальных: 401–412 мс в минуту против 1,7–2,9 с.
  • Остальным трём в каждой следующей минуте нужно было больше процессора, чем в предыдущей, — на 0,39–0,54 процентного пункта; PoE2 Oracle держалась на 0,668–0,686 %.
  • После перезапуска игры у PoE Overlay II снова было открыто главное окно — на втором мониторе.
  • Куда уходил процессор PoE2 Oracle, по потокам, за минуту: наблюдатель экрана у оверлея опыта — 177–182 мс (64–70 пробуждений в секунду); поток интерфейса, который обновляет плашки опыта и карты, — 115–126 мс (44–58); поток кадровой синхронизации GPUI — 38–41 мс (21–24); перехватчик клавиатуры, которого будит каждое нажатие в игре, — 10–16 мс (26–36); 31 поток драйвера NVIDIA — около 40 мс (около 155).

Остальные показатели из тех же снимков, медиана трёх минут:

ПрограммаПроцессов / потоковПамять в диспетчере задач, МБВидеопамять выделенная, МБ
PoE2 Oracle, коммит 786f69b1 / 4450,568,1
POE2 Currency Overlay4 / 15241,072,3
PoE Overlay II + Overwolf, главное окно открыто9 / 327372,538,8
Exiled Exchange 24 / 10371,00,0
  • Столбец памяти — не сравнение. Windows урезает память программ, которые простаивают, поэтому за сеанс числа в столбце «Память» диспетчера задач меняются, пока вы играете. Exiled Exchange 2 и POE2 Currency Overlay работали с 08:09–08:10, и с утра Windows урезала Exiled Exchange 2 с 90 до 71 МБ, а POE2 Currency Overlay — со 107 до 41 МБ. PoE2 Oracle работала с 10:20, и по её журналу владелец проверил в ней цены шесть раз с 10:20 до 10:34 — ни разу в минуту замера. Сайт сравнивает память через несколько минут после запуска каждой программы: см. Пока игра в фоне.

Контрольный замер

Замер с 09:40 до 09:46 (UTC+3), со сборкой PoE2 Oracle на коммите 5fc9b59; персонаж в убежище, инвентарь открыт. Мышь стоит: минута без ввода, начатая после 100 секунд без него. Мышь двигается: минута медленных кругов по сетке инвентаря — настоящим вводом, без щелчков.

ПрограммаМышь стоит, % ядра (мс в минуту)Мышь двигается, % ядра (мс в минуту)Память в диспетчере задач, МБПотоков
PoE2 Oracle, коммит 5fc9b590,088 (53)0,348 (209)34,043
POE2 Currency Overlay0,099 (59)0,71 (427)107,0152
Exiled Exchange 20,081 (49)1,00 (599)88,0103
PoE Overlay II + Overwolf1,49 (894)1,97 (1181)327,7–331,5325
PoE2 Oracle, коммит 93296e4 — сборка перед ней0,69–0,72 (412–430)5,57 (3343)35–4843
  • Пока мышь двигается, процессора меньше всех из четырёх нужно PoE2 Oracle: 0,348 % ядра против 0,71 % у POE2 Currency Overlay, 1,00 % у Exiled Exchange 2 и 1,97 % у PoE Overlay II.
  • Пока мышь стоит, PoE2 Oracle (0,088 %), Exiled Exchange 2 (0,081 %) и POE2 Currency Overlay (0,099 %) примерно вровень, у Exiled Exchange 2 — чуть меньше всех. В более ранних минутах того же сеанса остальные три показали примерно то же: Exiled Exchange 2 — 0,075–0,090 %, пока мышь стоит, и 1,00 %, пока двигается, POE2 Currency Overlay — 0,10 и 0,73 %, PoE Overlay II — 1,45–1,47 и 2,03 %.
  • Столбец памяти — не сравнение: сборку 5fc9b59 запустили в 09:39:57, и цены она ещё не проверяла, а остальные три к тому времени сделали по шесть проверок. Память до и после одних и тех же шести проверок сравнивает раздел Проверки цены.
  • В сборке 5fc9b59 изменился наблюдатель экрана у оверлея опыта: кадр он читает асинхронно, будит его сырой ввод, а на экран он смотрит не чаще раза в 2 секунды, пока мышь стоит, и раз в 50 мс, пока она двигается. По сравнению со сборкой перед ней PoE2 Oracle брала примерно в 8 раз меньше процессора, пока мышь стоит, и в 16 раз меньше, пока она двигается.

Куда уходил процессор PoE2 Oracle, по потокам, за минуту:

СостояниеВесь процесс, мсНаблюдатель экрана, мс (пробуждений в секунду)Драйвер NVIDIA: потоков / мс / пробуждений в секунду
Мышь стоит, коммит 5fc9b59536,8 (1,4)31 / 36 / 150
Мышь стоит, сборка перед ней394–446347–399 (15–24)31 / 36–37 / 148–149
Мышь двигается, коммит 5fc9b59205158 (51)31 / 35 / 149
Мышь двигается, сборка перед ней32493199 (66)31 / 36 / 150
  • Пока мышь стоит, больше всего из оставшегося берут два потока драйвера NVIDIA: 36 мс в минуту и около 150 пробуждений в секунду на двоих.
  • Плашки по-прежнему уходят из-под подсказки: когда курсор навели на флакон здоровья, чья подсказка ложится на полосу опыта, плашка опыта и её ⚙ скрылись не позже чем через 129 мс и вернулись не позже чем через 94 мс после того, как курсор ушёл на пустую клетку инвентаря.

Проверки цены

Замер с 08:37 до 09:25 (UTC+3), со сборкой PoE2 Oracle на коммите 93296e4 — той, что была перед 5fc9b59. Проверили шесть предметов, каждый во всех четырёх программах.

Время отсчитано от нажатия клавиши по записи экрана с частотой 60 кадров в секунду, то есть с точностью до кадра, ±17 мс. Окно — первый кадр, где видно окно программы. Результат — последнее изменение в области окна, после которого 500 мс ничего не менялось.

ПредметPoE2 Oracle: окно / результат, мсСамая быстрая из остальных по результатуЕё окно / результат, мс
Валюта: стопка из 27 сфер усиления92 / 231POE2 Currency Overlay47 / 342
Редкий шлем109 / 731POE2 Currency Overlay, с поиском46 / 792
Редкое кольцо93 / 715POE2 Currency Overlay, с поиском46 / 669
Редкий путевой камень (ур. 15)108 / 715POE2 Currency Overlay, с поиском48 / 686
Неогранённый камень умения (ур. 18)108 / 217POE2 Currency Overlay46 / 280
Волшебный самоцвет93 / 683POE2 Currency Overlay, с поиском47 / 638
  • Валюту и камень PoE2 Oracle оценила без поиска по торговле и показала результат первой из четырёх программ: за 231 и 217 мс.
  • Четыре предмета, которым нужен поиск по торговле, заняли у PoE2 Oracle 683–731 мс, а у POE2 Currency Overlay — 638–792 мс; у POE2 Currency Overlay три из четырёх вышли быстрее. Большую часть этого времени занимает сайт торговли: по журналу PoE2 Oracle около 0,61 с из 0,64 с поиска уходит на ожидание двух ответов pathofexile.com (см. Скорость и размер).
  • Окно POE2 Currency Overlay появлялось первым, через 46–48 мс, но в нём сначала был прошлый результат, пока не приходил новый.
  • PoE Overlay II по сайту торговли не искал: через 451–659 мс (окно открывалось через 435–529 мс) он показывал свою оценочную стоимость с надёжностью «очень низкая» или «низкая», а для самоцвета не показал ничего.
  • Exiled Exchange 2 открывал окно через 93–114 мс, а валюту и камень оценил за 917 и 980 мс. Его проверка по Ctrl+Y, которой здесь пользовались, по сайту торговли сама не ищет: для остальных четырёх предметов он показал фильтры и ждал «Поиск».
  • Панель PoE2 Oracle проявляется плавно: её первый кадр был через 92–109 мс, а фильтры полностью нарисованы примерно к 200 мс.

Процессор на проверку — сколько процессорного времени процессы программы потратили за 13,3 секунды от нажатия, за вычетом того, что они тратят за это время в простое. Память — «Память» диспетчера задач до первой проверки и после последней.

ПрограммаПроцессов / потоковПроцессор на проверку, мс: медиана (разброс)Память в диспетчере задач, МБ: до → послеВидеопамять выделенная, МБ
PoE2 Oracle, коммит 93296e41 / 43164 (89–223)35,1 → 47,784 → 130
Exiled Exchange 24 / 100–103154 (144–331)66,9 → 89,50
PoE Overlay II + Overwolf9 / 318–3261050 (602–1285)285,2 → 320,739
POE2 Currency Overlay4 / 145–153212 (148–385)41,8 → 106,371–72
  • За шесть проверок память PoE2 Oracle выросла меньше всех: на 12,6 МБ, у Exiled Exchange 2 — на 22,6 МБ, у PoE Overlay II — на 35,5 МБ, у POE2 Currency Overlay — на 64,5 МБ.
  • Её выделенная видеопамять выросла с 84 до 130 МБ: после первой проверки окно панели остаётся.

PoE2 Oracle в игре не во всём лучше других. В контрольном замере, пока мышь стоит, у Exiled Exchange 2 процессора чуть меньше: 0,081 % ядра против 0,088 %. На проверку Exiled Exchange 2 тоже тратил чуть меньше процессора — 154 мс против 164 по медиане, — причём для четырёх предметов из шести он по торговле не искал. Окно POE2 Currency Overlay появлялось первым, с прошлым результатом, и три поиска по торговле из четырёх он закончил быстрее. А вокруг проверок цены выделенной видеопамяти у PoE2 Oracle было больше всех четырёх: 84 МБ до них и 130 МБ после, у сборки перед 5fc9b59. В настоящей игре у сборки 786f69b было 68,1 МБ — меньше, чем 72,3 МБ у POE2 Currency Overlay, но больше, чем у Exiled Exchange 2 и PoE Overlay II. См. Оговорки.

Пока игра в фоне

Замер 26 сентября 2026 года, в три сеанса, на ПК из раздела Как мерили. Path of Exile 2 была открыта в фоне и видна на экране, и никто не играл и не проверял цены. Остальные программы запускались по одной, каждая рядом с игрой и одной из сборок PoE2 Oracle; сборку, которую показывает сайт, мерили одну, в том же состоянии. На сайте это память после запуска: каждую программу мерили через несколько минут после старта, пока она ждала проверки.

ПрограммаВерсияНа чём сделанаКогда мерили
PoE2 Oracle0.1.0, сборка 26 сентября, 18:30Rust, GPUI на Direct3D 1119:00, 19:01 и 19:03
POE2 Currency Overlay3.0.7Electron17:32
Exiled Exchange 20.16.7Electron14:18
Sidekick2026.9.2.NET и WebView214:22 и 14:32
PoE Overlay II1.67.0Overwolf 0.310.1.114:37, 14:39 и 14:43

С каждого времени (UTC+3) начиналась минута замера. Четыре замера, которые показывает сайт:

Программа, состояниеПроцессовПамять в диспетчере задач, МБЦП в простое, % ядраВидеопамять выделенная, МБ
PoE2 Oracle139,60,1240,1
POE2 Currency Overlay4132,90,1261,7
Exiled Exchange 24138,30,090,0
Sidekick, готов к работе7267,00,4075,3
Sidekick, ждёт на странице настройки7157,80,1582,5
PoE Overlay II, главное окно открыто, 2–3 мин9663,0109,6938,0
PoE Overlay II, главное окно открыто, 4–5 мин9654,1112,4538,0
PoE Overlay II, главное окно свёрнуто, 8 мин8349,71,8738,0

Остальные счётчики из тех же снимков:

Программа, состояниеПотоковРабочий набор, МБЧастные байты (commit), МБВидеопамять общая, МБ
PoE2 Oracle5694,2162,61,0
POE2 Currency Overlay161376,8292,84,5
Exiled Exchange 2107389,7584,30,0
Sidekick, готов к работе300704,5449,04,6
Sidekick, ждёт на странице настройки304596,9341,45,6
PoE Overlay II, главное окно открыто, 2–3 мин3661 197,91 193,15,9
PoE Overlay II, главное окно открыто, 4–5 мин3461 183,91 187,52,7
PoE Overlay II, главное окно свёрнуто, 8 мин313657,4788,42,6
  • Память — в МБ по 1024 × 1024 байта, как в диспетчере задач. PoE Overlay II мерили через 2–3 и 4–5 минут после запуска с открытым главным окном и через 8 минут — со свёрнутым.
  • Память в диспетчере задач — столбец «Память», который диспетчер задач показывает по умолчанию: частный рабочий набор, то есть оперативная память, принадлежащая только этому процессу. Сайт сравнивает именно её. У программы из нескольких процессов это их сумма; почему не складывается рабочий набор, см. Оговорки.
  • Частные байты (commit) — столбец «Выделенная память» на вкладке «Подробности»: память, которую Windows пообещала процессу в ОЗУ или в файле подкачки, трогал он её или нет.
  • Видеопамять выделенная — память на самой видеокарте, общая — оперативная память, которую видеокарта использует для этого процесса.
  • ЦП в простое — в процентах одного логического ядра: 100 % — одно ядро занято полностью. Ядер у этого ПК 24, поэтому в столбце «ЦП» диспетчера задач эти числа в 24 раза меньше: 110 % там выглядят как примерно 4,6 %.
  • Строка PoE2 Oracle — медиана трёх окон замера, в 19:00, 19:01 и 19:03: программа работала одна рядом с игрой, через 3,7–8,2 минуты после запуска. В них было 39,6, 39,5 и 39,6 МБ и 0,128, 0,122 и 0,116 % ядра; выделенной видеопамяти в первом окне было 71,8 МБ, в двух других — 40,1 МБ (см. Оговорки).
  • В эти минуты PoE2 Oracle держала над игрой три окна: плашку опыта, её ⚙ и плашку карты, которая появляется, когда после входа в игру уже была карта. Более ранние сборки мерили с первыми двумя.

PoE2 Oracle не меньше всех в трёх столбцах. Процессор в простое: у Exiled Exchange 2 меньше — 0,094 % против 0,122 % у PoE2 Oracle; 0,119 % у POE2 Currency Overlay — в пределах разброса трёх минут самой PoE2 Oracle, 0,116–0,128 %; у Sidekick (0,145 и 0,398 %) и PoE Overlay II — больше. Выделенная видеопамять: у Exiled Exchange 2 и PoE Overlay II меньше, у POE2 Currency Overlay и Sidekick — больше. Общая видеопамять: у Exiled Exchange 2, который рисует без видеокарты, её нет совсем. См. Оговорки.

Предыдущая сборка. POE2 Currency Overlay мерили рядом со сборкой 26 сентября, 15:32, в том же состоянии, и над игрой у неё было два окна: плашка опыта и её ⚙. Медиана двух её окон замера — в 17:28 она работала одна, в 17:32 рядом с POE2 Currency Overlay: 1 процесс и 55 потоков, 37,5 МБ в диспетчере задач, рабочий набор 88,6 МБ, 224,1 МБ частных байтов, 70,5 МБ выделенной и 0,8 МБ общей видеопамяти и 0,20 % ядра. Одна в 17:19, когда развёрнутое окно браузера целиком закрывало игру и программа прятала плашки, она занимала 37,4 МБ, рабочий набор 88,6 МБ, 277,4 МБ частных байтов, 70,5 и 0,2 МБ видеопамяти и брала 0,14 % ядра; остальные программы в этом состоянии не мерили.

Ранняя сборка. Exiled Exchange 2, Sidekick и PoE Overlay II мерили рядом с более ранней сборкой PoE2 Oracle 0.1.0 — ещё до того, как урезали её работу в простое. В том же состоянии у неё был 1 процесс и 71 поток, 49,9 МБ в диспетчере задач, рабочий набор 133,1 МБ, 277,2 МБ частных байтов, 159,6 МБ выделенной и 1,0 МБ общей видеопамяти, а процессора она брала 0,71 % ядра: это медиана семи окон, в каждом было 0,70–0,76 %.

Скорость и размер

Время взято из журнала ранней сборки на том же ПК: 18 проверок цены 26 сентября 2026 года, 5 в журнале одного запуска и 13 в журнале следующего.

ОтрезокМедианаРазбросПроверок
От команды копирования, которую программа посылает игре, до текста предмета: копирование в самой игре и опрос буфера обмена каждые 5 мс12 мс6–19 мс18
Разбор предмета, его фильтры, показ панели, запуск поиска6 мс0–31 мс18
Поиск на pathofexile.com328 мс274–451 мс12
Чтение ответа и запрос лотов с pathofexile.com285 мс275–517 мс12
Разбор лотов2 мс1–9 мс12
От текста предмета до лотов, целиком640 мс570–905 мс10
От текста предмета до цены товара биржи или повторённого из памяти поиска6 мс0–16 мс4
  • Из 640 мс около 610 уходят на два запроса к pathofexile.com. Собственная доля программы — копирование (около 12 мс, и это в основном время самой игры), разбор предмета (около 6 мс) и разбор ответов (около 2 мс).
  • Два поиска ждали отправки 3,4 и 2,8 с и в строки «Поиск» и «целиком» не вошли: программа придерживает третий поиск за пять секунд, пока до лимита GGG остаётся один запрос.
  • Два поиска ничего не нашли и поэтому лотов не запрашивали: 274 и 341 мс от текста предмета.
  • Время от горячей клавиши до посланного копирования и момент, когда панель появляется на экране, в журнал не пишутся. Время от нажатия до панели и результата на экране записали 27 сентября: см. Проверки цены.
  • Сборка 786f69b пишет время каждой проверки в журнал по своим часам — от нажатия до того, как она показывает панель и рисует лоты, так что на экране они появляются примерно на кадр позже. За шесть проверок, которые владелец ПК сделал во время игры 27 сентября (см. Настоящая игра), панель появлялась через 36–66 мс после нажатия, а лоты — через 628–788 мс, из них 591–743 мс уходили на поиск и выборку на pathofexile.com. Эти времена и приводит сайт.

Запуск. Программа была готова оценивать предметы через 0,27 с после старта процесса: первая строка журнала появилась через 36 мс, а «ready to price items» — ещё через 233 мс. Запуск перед ним, сразу после установки и с подробным журналом, занял 0,38 с от первой строки журнала, из них 0,14 с ушло на создание устройства Direct3D 11. Судя по времени файлов, оба запуска нашли каталоги сайта торговли сохранёнными на диске; самый первый запуск сначала их скачивает, и таких запусков в этих журналах нет.

Размер.

  • Установщик PoE2-Oracle-Setup-0.1.0.exe — 7 268 475 байт (6,9 МБ).
  • Программа, которую он ставит, poe2-oracle.exe — 28 299 776 байт (27,0 МБ). Вместе с деинсталлятором, лицензиями и списком сторонних компонентов установленная программа занимает около 27,5 МБ. Сборка 18:30, чью память и процессор мерили выше, пока игра в фоне, — exe на 28 505 600 байт из установщика на 7 321 898 байт; сборка 5fc9b59 — exe на 28 535 808 байт; сборка 786f69b — exe на 28 691 968 байт из установщика на 7 383 172 байта.
  • Кэш, %LOCALAPPDATA%\poe2-oracle\cache, для текущей лиги держит около 5,4 МБ: каталоги сайта торговли на английском и русском (3,0 МБ), три часа сводок сделок валютной биржи от GGG (2,3 МБ) и цены poe2scout (0,14 МБ).

Как мерили

Компьютер. Windows 11 Pro 64-бит (сборка 26200), русская. Intel Core i7-13700KF (16 ядер, 24 потока), 32 ГБ ОЗУ, из них 15,2 ГБ свободно в начале замера, NVIDIA GeForce RTX 4090 с драйвером 32.0.16.1714. Два монитора 3840 × 2160 с масштабом 200 %, основной на 60 Гц.

Сеансы с игрой в фоне, 26 сентября. С 14:14 до 14:45 (UTC+3) Exiled Exchange 2, Sidekick и PoE Overlay II мерили рядом с ранней сборкой PoE2 Oracle: она работала с 12:07, и за это время было 13 проверок цены и один вход на pathofexile.com. С 17:19 до 17:33 POE2 Currency Overlay мерили рядом со сборкой 15:32, запущенной в 17:03, а саму эту сборку — ещё и одну, в 17:19 и 17:28. С 19:00 до 19:05 сборку 18:30 трижды мерили одну; её запустил установщик в 18:56.

Игра 26 сентября. Path of Exile 2 (Steam) работала все три сеанса на основном мониторе — на виду, но не на переднем плане: впереди был браузер на втором мониторе. Плашки PoE2 Oracle были видны над игрой во всех окнах замера, кроме окна в 17:19: в первых двух сеансах — плашка опыта и её ⚙, в третьем — ещё и плашка карты, потому что после входа в игру карта уже была. В первом сеансе персонаж стоял в убежище в режиме «отошёл». Перед вторым сеансом игру перезапустили, и владелец был за компьютером: с 17:18 до 17:28 игру целиком закрывало развёрнутое окно браузера — тогда и снято окно в 17:19, — а в остаток второго сеанса, с 17:28:41, и весь третий игра была на виду и ничем не закрыта. Ни в одну минуту замера в журнал игры не добавилось ни строки.

Сеанс в игре, 27 сентября. С 08:37 до 09:25 (UTC+3) сборка PoE2 Oracle на коммите 93296e4, POE2 Currency Overlay, Exiled Exchange 2 и PoE Overlay II работали одновременно: мерили минуты, пока мышь стоит и пока двигается, и проверки цены. Во все минуты замера игра была на переднем плане, персонаж стоял в убежище с открытым инвентарём. С 09:40 до 09:46 минуты с неподвижной и движущейся мышью сняли заново со сборкой 5fc9b59. Её установщик, запущенный тихо в сессии пользователя с обычными правами, сам закрыл работавшую PoE2 Oracle и за 2,0 секунды поставил новый exe; программу затем запустили обычным способом в 09:39:57, и её минута с неподвижной мышью началась через 2 мин 53 с. Владелец несколько раз брал мышь во время сеанса; эти минуты выбросили и сняли заново.

Настоящая игра, 27 сентября. Потом так же тихо поставили сборку на коммите 786f69b — её установщик управился за 2,0 секунды, — и в 10:20:09 (UTC+3) программу запустили. С 10:20 владелец ПК играл сам и сам проверял цены в PoE2 Oracle; с 10:32 до 10:37 сняли три минуты, ничего не нажимая, — они начались в 10:32:47, 10:35:00 и 10:36:13.

Порядок 26 сентября.

  1. Остальные программы запускались по одной, так же, как их запускает игрок: Exiled Exchange 2, PoE Overlay II и POE2 Currency Overlay — ярлыками на рабочем столе (ярлык PoE Overlay II запускает его через лаунчер Overwolf), Sidekick — ярлыком в меню «Пуск», который создал его установщик. Все работали в сессии пользователя с обычными правами, и ни одна не забирала фокус.
  2. На запуск давалось 90 секунд, PoE Overlay II — 120: он стартует ступенями — лаунчер Overwolf, его клиент, затем браузерные процессы. Потом шла минута замера: три снимка через 20 секунд, а процессорное время считалось за всю минуту. В таблицах — медиана трёх снимков. Память между снимками менялась меньше чем на 1,5 %, кроме PoE Overlay II с открытым окном: 620–689 МБ в первом окне замера и 649–675 МБ во втором.
  3. Во втором и третьем сеансах состояние рабочего стола проверялось изнутри сессии пользователя — до начала замера, перед каждым снимком и в конце каждой минуты: запущена ли игра, на переднем ли она плане и не свёрнута ли, какую её часть закрывают чужие окна (чьё окно оказывается сверху в 144 точках по всему окну игры), какое окно впереди и какие окна показывает PoE2 Oracle. Если бы состояние поменялось посреди минуты, её перемерили бы; с 17:28:41 оно держалось в каждом снимке. Окно в 17:19 снято до того, как проверка научилась видеть чужие окна поверх игры: по снимку экрана в 17:20 и проверке в 17:23 игру целиком закрывал браузер, поэтому это окно — отдельное состояние.
  4. С каждого процесса снималось одно и то же:
    • память в диспетчере задач — счётчик производительности Win32_PerfFormattedData_PerfProc_Process.WorkingSetPrivate;
    • рабочий набор и частные байты — WorkingSet64 и PrivateMemorySize64 самого процесса;
    • видеопамять — счётчики GPU Process Memory, DedicatedUsage и SharedUsage;
    • процессор — счётчик тактов процесса (QueryProcessCycleTime) в начале и в конце минуты; проверка по его процессорному времени (GetProcessTimes) разошлась не больше чем на 0,2 процентного пункта, а на 110 % у PoE Overlay II — на 1,2;
    • потоки — Get-Process.
  5. Процессы программы — это все процессы, чей exe лежит в её папке (у POE2 Currency Overlay — в его папке или в папке его автообновления), и все процессы, которые они запустили: так засчитаны процессы WebView2 у Sidekick, хотя они запускаются из системной папки WebView2. Для PoE Overlay II засчитаны все процессы Overwolf: без него PoE Overlay II не работает. Каждый процесс отслеживался всю минуту, так что и тот, что завершился или появился за это время, тоже учтён.
  6. PoE2 Oracle снимали точно так же в каждом окне замера и ещё отдельно, когда она работала одна: в 14:14 — раннюю сборку, в 17:19 и 17:28 — сборку 15:32, в 19:00, 19:01 и 19:03 — сборку 18:30.

Порядок 27 сентября.

  1. Память и процессор снимались изнутри сессии владельца скрытыми задачами, без окон, по дереву процессов каждой программы: «Память» диспетчера задач (WorkingSetPrivate), рабочий набор и частные байты, счётчики GPU Process Memory и счётчик тактов процессора (QueryProcessCycleTime) за 60 секунд, по три снимка через 20 секунд. Потоки PoE2 Oracle снимались за те же 60 секунд.
  2. Проверки цены: шесть предметов, каждый во всех четырёх программах; порядок сдвигался от предмета к предмету, PoE2 Oracle шла первой. Курсор ставился на предмет через SetCursorPos, а затем немного сдвигался настоящим движением мыши через драйвер Interception. Горячая клавиша тоже шла через Interception: Ctrl, буква, отпускание буквы через 60 мс и Ctrl через 200 мс. Перед каждым нажатием проверялось, что игра на переднем плане и курсор на месте.
  3. ffmpeg записывал экран с частотой 60 кадров в секунду (ddagrab с NVENC), и у каждого кадра была метка настенного времени (setpts=RTCTIME-C); время нажатия бралось по тем же часам, так что задержки считаются по кадрам.
  4. Процессор и память на проверку: такты процессора и частный рабочий набор дерева процессов прямо перед нажатием и через 13 секунд после.
  5. Окно каждой программы закрывали её собственным способом: у PoE2 Oracle и PoE Overlay II — клавишей Esc, которую каждая из них забирает себе, пока её окно открыто; у Exiled Exchange 2 — Esc, пока его окно в фокусе; у POE2 Currency Overlay — щелчком по его крестику, после проверки, что под курсором именно его окно.
  6. Мышь двигается: 60 секунд медленных кругов по сетке инвентаря, настоящим вводом, без щелчков.
  7. Настоящая игра: владелец играл как обычно, а ввода с нашей стороны не было никакого. Три минуты снимали так же, как в пункте 1, все четыре программы в каждой, и каждый снимок отмечал, на переднем ли плане игра: она была впереди во всех. Повторить его игру нельзя, так что это один сеанс.

Оговорки

  • «Память» диспетчера задач и рабочий набор. «Память», то есть частный рабочий набор, — это страницы процесса в ОЗУ, которые принадлежат только ему: самое честное одно число. Рабочий набор добавляет к ним страницы, общие с другими: DLL, отображённые файлы и память, которую процессы Chromium делят между собой. Если сложить рабочие наборы нескольких процессов, одни и те же страницы посчитаются по разу на каждый, и программа из многих процессов окажется тяжелее, чем есть; у PoE2 Oracle процесс один, и завышать нечего. Системные DLL и драйвер видеокарты, общие для всех программ, входят в рабочий набор каждого процесса и не входят ни в чью «Память». Частные байты — это обещанная, а не занятая память: у PoE2 Oracle при 162,6 МБ частных байтов в ОЗУ было 39,6 МБ.
  • Игру на переднем плане и в фоне друг с другом не сравнивают. Числа в игре сняты 27 сентября с игрой на переднем плане, с игрой в фоне — 26 сентября, и из одних в другие они не переносятся. Особенно память: у POE2 Currency Overlay было 132,9 МБ, пока игра была в фоне, и 41,8 МБ в игре до первой проверки.
  • Три сборки в игре. Проверки цены, а с ними память и видеопамять до и после них, мерили со сборкой на коммите 93296e4; контрольный замер — со сборкой 5fc9b59, в которой изменился наблюдатель экрана у оверлея опыта; настоящую игру — со сборкой 786f69b, следующим коммитом, который наблюдатель экрана не трогал.
  • Настоящая игра — один сеанс. Игру владельца не повторить, и в другом сеансе числа будут другими. Все четыре программы снимались в одни и те же минуты, так что игра у них была одна. Остальным трём в каждой следующей минуте нужно было больше процессора, чем в предыдущей; по трём минутам не скажешь, продолжилось бы это или нет.
  • Время — с точностью до кадра: ±17 мс. «Окно» — первый изменившийся кадр: у PoE2 Oracle это начало плавного появления панели. «Результат» у Exiled Exchange 2 для предметов, которым нужен поиск, — лишь его фильтры: поиска не было.
  • Процессор на проверку включает и 13 секунд простоя, которые вычтены по замеру простоя; у PoE Overlay II это около 195 мс, поэтому разброс у него больше.
  • Память PoE2 Oracle до проверок — у экземпляра, запущенного в 08:43: до первой проверки у него было 35,1 МБ. Экземпляр, запущенный в 08:12, в 08:38 показывал 14,4 МБ, потому что Windows урезала его рабочий набор, и его не сравнивают.
  • Видеопамять — это счёт самой Windows по каждому процессу. Вокруг проверок цены выделенной видеопамяти у PoE2 Oracle было больше всех четырёх: 84 МБ до них и 130 МБ после, у сборки на коммите 93296e4. В настоящей игре у сборки 786f69b со скрытой панелью было 68,1 МБ — меньше, чем 72,3 МБ у POE2 Currency Overlay; пока панель была открыта, журнал самой программы показывал 83,7 МБ. Пока игра в фоне, у PoE2 Oracle видеопамяти больше, чем у Exiled Exchange 2 и PoE Overlay II, и меньше, чем у POE2 Currency Overlay и Sidekick; у сборки 15:32 было 70,5 МБ, у ранней — 159,6 МБ, больше, чем у всех. У сборки 18:30 в первом из трёх окон замера было 71,8 МБ: между 19:01:03 и 19:01:33, примерно через 4,5 минуты после запуска, видеопамять упала до 40,1 МБ и дальше не менялась. В журнале программы в это время ничего нет, а почему так вышло, не разбирали; в таблице — медиана трёх окон. По замеру видеопамять не раскладывали; по коду GPUI каждое окно держит видеопамять пропорционально своему размеру в пикселях, так что число растёт вместе с экраном, а у этого ПК 4K с масштабом 200 %. У Exiled Exchange 2 видеопамяти нет: он отключает аппаратное ускорение (app.disableHardwareAcceleration()) и рисует свой оверлей процессором. Внутриигровой оверлей Overwolf работает внутри процесса самой игры и в счёт PoE Overlay II не попал.
  • ЦП в простое, пока игра в фоне. PoE2 Oracle брала 0,122 % одного ядра — медиану трёх окон, в которых было от 0,116 до 0,128 %. Это больше, чем у Exiled Exchange 2 (0,094 %), примерно как у POE2 Currency Overlay, чьи 0,119 % укладываются в этот разброс, и меньше, чем у Sidekick (0,145 % на странице настройки, 0,398 % в рабочем состоянии) и PoE Overlay II. Для этого 24-поточного процессора это 0,005 % целиком, и столбец «ЦП» диспетчера задач показывает 0. Плашки PoE2 Oracle всё время видны над игрой, а остальные программы в это время ничего поверх неё не показывали. По потокам в двух из трёх окон примерно треть этого времени ушла на потоки драйвера видеокарты, треть — на пул потоков Windows, где GPUI выполняет свои таймеры и фоновую работу, четверть — на поток интерфейса и десятая часть — на поток кадровой синхронизации GPUI. Сборка 15:32 брала 0,20 %, а когда игра была закрыта и плашки спрятаны, — 0,14 %; ранняя сборка — 0,70–0,76 %.
  • Что мерили, пока игра в фоне: простой. Оверлеи в тех сеансах никто не открывал и цены не проверял; проверки цены мерили в игре. POE2 Currency Overlay был открыт на вкладке «Проверка цены», как её сохранили его настройки; на вкладке «Валюта» он раз в 6 секунд запрашивает живые курсы, и это не мерили.
  • В каком состоянии были программы. Exiled Exchange 2 окон не открывал: он ждёт в трее и показывает оверлей по Shift+Space. Sidekick работал на настройках прошлой установки, лига в которых уже закончилась. При первом запуске он открыл окно настройки с просьбой выбрать лигу и ждал в нём — это строка «ждёт на странице настройки»: так его увидит любой, у кого в настройках лига прошлого сезона. С текущей лигой в настройках следующий запуск прошёл всю инициализацию за 12 секунд без окон (в тех настройках включён тихий старт) — это строка «готов к работе», и сравнивать надо с ней. PoE Overlay II, запущенный ярлыком, сам открыл главное окно на втором мониторе, не забирая фокус: персонаж, сводка сессии, тайник, а рядом два анимированных рекламных баннера, товары на которых сменились между снимками с разницей в 45 секунд, и два предложения перейти на Premium, чтобы убрать рекламу. Пока это окно открыто, браузер Overwolf постоянно его перерисовывает: его GPU-процесс занимал 92–99 % ядра, а процесс страницы — ещё 10–13 %. Потом окно свернули его же командой «Свернуть» и измерили снова. Закрыть окно, не закрывая программу, не пробовали. POE2 Currency Overlay при запуске показал заставку, которой к 30-й секунде уже не было, а окна первого запуска не было: обучение в тех настройках уже пройдено. Над игрой он держит одно окно — поверх всех остальных, пропускающее щелчки и полностью прозрачное: его не видно, пока горячая клавиша его не проявит. У остальных программ рекламы не было; в окне POE2 Currency Overlay есть ссылка на страницу доната Ko-fi.
  • Session Recap у PoE Overlay II, в игре. Когда игра теряла фокус, PoE Overlay II открывал посреди экрана своё окно Session Recap размером 3158 × 1628 с рекламными баннерами и предложением перейти на Premium: дважды за 30 минут. Окно закрывало инвентарь, и одна проверка PoE2 Oracle и одна проверка POE2 Currency Overlay прошли впустую: предмет оказался под этим окном. Оба раза окно закрыли так же, как его закрывает крестик.
  • Три сборки, пока игра в фоне. Сайт сравнивает сборку 18:30 с программами, которые мерили рядом с более ранними сборками: POE2 Currency Overlay — рядом со сборкой 15:32, остальные три — рядом с ранней сборкой, раньше в тот же день, а между первым и вторым сеансами игру перезапускали. Состояние было одно и то же: игра на виду и не на переднем плане, плашки PoE2 Oracle видны, все программы простаивают.
  • Состояние игры и плашки важны. Когда игру закрывает другое окно, PoE2 Oracle прячет плашки, и процессора ей нужно меньше: сборка 15:32 брала тогда 0,14 % против 0,20 % с видимой игрой. Плашка карты появляется, только когда после входа в игру уже была карта, и сборку 18:30 мерили с ней: над игрой было три окна, а у сборок до неё — два. Если это и сказалось, то не в пользу сборки 18:30. Свёрнутая игра — ещё одно, отдельное состояние; его не мерили.
  • Первые минуты против часов. Пока игра в фоне, остальные программы мерили через 1,5–8,5 минуты после запуска, раннюю сборку PoE2 Oracle — больше чем через два часа, сборку 15:32 — через 16–30 минут, сборку 18:30 — через 3,7–8,2 минуты. Программы на Electron, CEF и .NET обычно растут по мере того, как наполняются кэши, куча и история проверок, так что для них эти числа — скорее нижняя оценка. У PoE Overlay II они были одинаковыми на 2–3-й и на 4–5-й минуте, то есть это не всплеск при запуске.
  • Exiled Exchange 2 0.16.7 — сборка форка mttzzz/Exiled-Exchange-2: Exiled Exchange 2 0.16.3 от Kvan7 с добавленными каналом обновлений и русским переводом. Движок тот же, так что по памяти и процессору разницы быть не должно.
  • POE2 Currency Overlay 3.0.7 от POE2 VibeTools (POE2-VibeTools/poe2-currency-overlay) — его последний выпуск, и код установленной программы совпадает с исходниками этого выпуска.
  • PoE Overlay II Standalone, версию без Overwolf, на ПК не ставили и не мерили.
  • Один ПК и один прогон каждой программы. Внутри замера числа держались ровно, но в другой день, в другой лиге и с другим объёмом кэшей они будут немного другими.