【问题标题】:How can I take the performance information from OpenOffice in C#?如何在 C# 中从 OpenOffice 获取性能信息?
【发布时间】:2010-03-21 17:42:10
【问题描述】:

我正在尝试使用 C# 中的性能计数器类来监视 openoffice 的性能信息。我遇到了一个奇怪的问题,虽然我的程序可以很好地监控其他应用程序信息,但它无法使用相同的程序正确监控 Open Office 的性能数据。本质上,我创建了一个进程并让性能计数器使用它的文件名从该进程中获取处理器时间。我注意到,OpenOffice 在任务管理器下有两个进程;一个是soffice.bin,一个是soffice.exe。 bin 文件比 exe 文件占用更多的内存,所以我试图监控在 exe 文件没有给我可用的性能数据之后(性能控制器一直返回值 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);

【问题讨论】:

    标签: c# openoffice.org performancecounter soffice


    【解决方案1】:

    Process 对象使用的“实例名称”只是可执行文件的名称,减去任何.exe 扩展名。这不是整个文件路径。

    因此,您应该指定soffice(对于soffice.exe)或soffice.bin,而不是soffice.bin

    查看 Perfmon 以查看系统上的实际实例名称。

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2011-12-06
      • 2011-12-08
      • 1970-01-01
      • 2012-06-27
      • 2014-05-27
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多