Я пытаюсь отслеживать информацию о производительности для openoffice, используя класс счетчика производительности в C #. Я столкнулся со странной проблемой, когда хотя моя программа может точно контролировать информацию о других приложениях, она не может должным образом отслеживать данные о производительности открытого офиса, используя ту же процедуру. По сути, я создаю процесс, и счетчик производительности получает время процессора из этого процесса, используя его имя файла. Я заметил, что OpenOffice имеет два процесса под диспетчером задач; один - soffice.bin, другой - soffice.exe. Файл bin занимает намного больше памяти, чем exe-файл, поэтому я попытался проследить, чтобы после того, как exe-файл не дал мне полезных данных о производительности (Performance conter возвращал значение 0). Однако у файла bin та же проблема: я не могу получить полезные данные о производительности, независимо от того, что я делаю с приложением.
Может кто-нибудь сказать мне, почему я не получаю хорошие показания для работы openoffice? Я использую неправильное имя процесса или это что-то более тонкое?
// create a process
p = new Process();
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = fileName;
p.Start();
// for open office, I found that the BIN file takes up more memory in the task manager
String name = "C:\\Program Files (x86)\\OpenOffice.org 3\\program\\soffice.bin";
// So I make a performance counter to monitor that.
pc = new System.Diagnostics.PerformanceCounter("Process",
"% Processor Time",
name,
true);