Здравствуйте, ononim, Вы писали:
O>Таймер будит CPU периодически. Побудка CPU — это жор батареи лаптопа. Я конечно ожидаю контраргумента "да я по чуть-чуть, и только раз в полсекунды"
CPU в первую очередь будит системный таймер, минимум 18 раз в секунду.
O>но таких вот с десяток наберется, а потом батарея на час меньше держит.
На час меньше — это с двухсот часов номинальных?
Я Вас умоляю — в винде столько собственной фоновой активности, что какой-то вшивый таймер, даже сто раз в секунду, на ее фоне совершенно незаметен. У меня есть приложения, увеличивающие разрешение системного таймера до 500 мкс, и с такой же частотой получающие события от CreateWaitableTimer — они даже полпроцента загрузки не создают.
А теоретически согласен — лишний поток, вечно висящий в ожидании, занимает только память под дескрипторы, да крохи времени CPU при просмотре списков.
O>Юзер может быть бухгалтершей, работающей с 1Ской через RDP. И рядом в соседних сессиях — еще десяток таких же.
Моего приложения на таких компьютерах, скорее всего, не будет, а если и будет, то бухгалтерша точно не будет с ним работать.
O>В остальных случаях не вижу причин для экслюзивности.
Эксклюзивность там банально для упрощения интерфейса между драйвером и приложением. Самому юзеру дополнительные экземпляры не нужны, а если они вдруг появятся, то добавят геморроя и ему, и мне.
O>2) С т.з. безопасности: хакер может модифицировать ваше приложение или даже написать свое, и подключиться к драйверу параллельно с другим приложением.
Драйвер его банально не пустит — он поддерживает только одного клиента. А если городить взаимодействие клиентов через него, то нужно будет сперва добавить поддержку нескольких, синхронизацию, дополнительные команды... Нет смысла.
Здравствуйте, ononim, Вы писали:
ЕМ>>CPU в первую очередь будит системный таймер, минимум 18 раз в секунду.
O>Необязательно
Вам приходилось видеть реальную пользовательскую винду, в которой это давало бы заметную экономию? Охотно допускаю, что в специально настроенной это возможно, но в мейнстримовой...