Я анализировал (с Procmon) очень простая программа на двух разных VPS, которые я арендую. Программа представляет собой минимальную C ++ программу:
int main() {
return 0;
}
Я скомпилировал предыдущий код с g ++ (tdm64-1) 5.1.0 в обеих машинах. Я просто скомпилировал код как g++ Test.cpp -o Test.exe
, После этого я побежал Test.exe
файл на обоих серверах и фильтр с Procmon. Первый VPS показывает создание одного потока (Promon CSV), но второй создает два потока вместо (Promon CSV). Мне интересно, почему это происходит, и как я могу гарантировать, что «однопоточные программы» создают только один поток на втором сервере. Может, я что-то здесь упускаю. Я собираюсь описать свойства каждого VPS:
Первый VPS
Операционные системы: Windows Server 2012 R2
процессор: Процессор Intel (R) Xeon (R) E5-2620 v3 @ 2,40 ГГц 2,40 ГГц, 2 ядра, 2 логических процессора
Установленная память (RAM): 6,0 ГБ
Тип системы: 64-разрядная операционная система, 64-разрядный процессор
Второй VPS
Операционные системы: Windows Server 2016
процессор: Процессор Intel (R) Xeon (R) E5-2630 v4 @ 2,20 ГГц 2,20 ГГц, 6 ядер, 6 логических процессоров
Установленная память (RAM): 24,0 ГБ
Тип системы: 64-разрядная операционная система, 64-разрядный процессор
Для дальнейшего анализа я немного изменил свой код следующим образом:
int main() {
while (true);
return 0;
}
Я запустил предыдущий код и использовал Process Explorer чтобы увидеть его поведение и второй поток был создан и удален через 30 секунд после запуска программы.
Задача ещё не решена.
Других решений пока нет …