Как я могу получить информацию о производительности из OpenOffice в C #? - PullRequest
1 голос
/ 21 марта 2010

Я пытаюсь отслеживать информацию о производительности для 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);

1 Ответ

3 голосов
/ 23 марта 2010

«Имя экземпляра», используемое объектом Process, - это просто имя исполняемого файла, за вычетом любого расширения .exe. Это не полный путь к файлу.

Таким образом, вместо C:\Program Files (x86)\OpenOffice.org 3\program\soffice.bin, вы должны указать soffice (для soffice.exe) или soffice.bin.

Загляните в Perfmon, чтобы увидеть реальные имена экземпляров в вашей системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...