Кажется, что это довольно сложно измерить, потому что вы не можете выделить отдельный процесс для запуска сам по себе. Фактически, если вы попытаетесь это сделать, вы столкнетесь с трудностями при определении того, что представляет собой «единый процесс» - это всего лишь код пользовательского пространства, принадлежащий этой программе? Или вы включаете код ядра, выполняемый также от имени программы? Что, если ОС оптимизирует код ядра, чтобы аналогичные запросы из разных программ обрабатывались вместе, используя почти постоянное количество энергии? Тогда вы не сможете даже выделить энергопотребление по программам.
В таком случае я склонен измерять ожидаемое значение, по сути, среднее количество энергии, используемой приложением. В идеале вы должны начать с большого количества систем, все одинаковые, за исключением того, что на половине из них запущено приложение, а на половине нет. Пусть каждая из систем работает в любых рабочих условиях, которые вы хотите протестировать (в одинаковых условиях для всех устройств, конечно, за исключением того факта, что половина из них работает с приложением, а половина - нет), и измерьте уровень энергии. потребления с использованием стандартного API, или дайте батарейкам разрядиться и измерьте, сколько времени требуется каждому устройству, чтобы разрядить его батарею. Затем сравните средний результат по устройствам, на которых было запущено приложение, и средний результат по тем, которые не были запущены, и вы сможете выяснить, насколько программа увеличивает энергопотребление компьютера.