草庐IT

cpu_percent

全部标签

windows - 为分析设置 CPU 亲和性

我正在从事计算密集型C#项目,该项目实现了多种算法。问题是,当我想分析我的应用程序时,特定算法所需的时间会有所不同。例如,有时运行该算法100次大约需要1100毫秒,而另一次运行100次需要更多时间,如2000甚至3000毫秒。即使在同一次运行中,它也可能会有所不同。所以当我优化一段代码时,不可能衡量改进。这只是不可靠。这是另一个运行:所以基本上我想确保一个CPU专用于我的应用程序。PC有一个旧的双核IntelE5300CPU,在Windows732位上运行。所以我不能只设置进程亲和性而永远忘记一个核心。这会使计算机在处理日常任务时变得非常慢。我需要其他应用程序在我需要时使用特定的核心

windows - 如何在 Windows 上获取 cpu 缓存关联设置

如何获取有关L1、L2和L3关联性设置的信息?我可以得到大小但不能得到结合性,知道吗?到目前为止我还没有找到任何有用的东西 最佳答案 x86CPUIDinstruction不需要任何权限,因此您可以在任何操作系统的程序中运行它。它在叶2(eax=2)中具有缓存关联性信息。另见x86标记wiki以获取更多文档链接。不过,它仅适用于x86,因此如果您关心非x86上的Windows的可移植性,则必须为其他架构寻找其他东西。如果您不想通过编写解码函数和asm函数或内联asm重新发明轮子来首先运行CPUID,则可以使用库来解码此CPUID信息

c - 获取 CPU 型号名称、供应商 ID、Windows C 中的物理处理器数量

我看到了this主题,但我没有提供我需要的所有信息。是否有任何可移植的方式(仅限所有Windows的可移植)来获取cpu型号名称、供应商ID和物理处理器的数量? 最佳答案 您提供的链接适用于Windows的移动版本,因此如果您所说的可移植版本也指桌面版本,那么GetSystemInfo可用于(如所述)Window2000及更高版本的所有版本。如果您需要比这更旧的版本,那么您应该给出一些限制。 关于c-获取CPU型号名称、供应商ID、WindowsC中的物理处理器数量,我们在StackOv

c# - 如何从 c# 应用程序获取远程 linux 机器的 cpu 和 ram 使用情况

我有一个c#应用程序,它通过WMI从远程Windows机器收集数据(cpu、ram、硬盘使用情况等)。但现在我还需要监控几个linux机器。有没有办法从运行在Windows机器上的c#应用程序中至少获得Linux机器的CPU和RAM利用率? 最佳答案 我设法从linuxbox获取指标统计信息。正如VirtualBlackFox提到的那样-标准化的方法是为此目的使用snmp。第一步是在linux上安装snmp。(我在VM上安装了Ubuntu12)这是我用来安装snmp的链接one和two.基本上,您需要安装snmp守护进程并配置公开指

c++ - 如何在 Windows 内核模式下获取进程使用的 CPU 时钟周期?

正如标题所暗示的,我对获取仅在内核模式下进程使用的CPU时钟周期很感兴趣。我知道有一个名为“QueryProcessCycleTime”的API可以返回CPU时钟进程的线程使用的周期。但这个值包括在用户模式和内核模式下花费的周期。我怎样才能获得仅在内核模式下花费的周期?我需要使用性能计数器来获取它吗?如果是,我应该使用哪一个?预先感谢您的回答。 最佳答案 我刚刚发现一篇有趣的文章,几乎描述了您的要求。在MSDNInternals上.他们在那里写道,如果您使用的是C#或C++/CLI,您可以轻松地从System.Diagnostic.

windows - 如何在 Windows 中以 30 毫秒的间隔执行 10 毫秒的 CPU 时间操作?

如何在Windows中执行一个需要大约10毫秒CPU时间且间隔正好为30毫秒的操作?(我可以允许+/-5毫秒余量)我尝试过但已经失败了sleepAPI:)接下来,我想到了MMTimerAPI。但是这篇博文说这是不可能的。WhyaretheMultimediaTimerAPIs(timeSetEvent)notasaccurateasIwouldexpect?此外,MSDN说timeSetEvent已过时,我们必须使用CreateTimerQueueTimerAPI。http://msdn.microsoft.com/en-us/library/dd757634(v=vs.85).asp

c++ - 在我的 C++ 程序中有一种方法可以检查 CPU 是否有 AES-NI

我希望能够在Windows上使用C++代码检查CPU是否具有可用的AES-NI。(MinGW海湾合作委员会)我找到了一个用C#和visualstudio编写的解决方案。TestforAES-NIinstructionsfromC#privatestaticboolIsAESNIPresent(){byte[]sn=newbyte[16];//!!!Herewere8bytesif(!ExecuteCode(refsn))returnfalse;varecx=BitConverter.ToUInt32(sn,8);return(ecx&(1有没有一种简单的方法可以用C++做同样的事情?(

c++ - 计算总 CPU 使用率

计算进程执行期间特定时间总CPU使用率的最佳算法是什么。我正在使用C++开发Windows平台。 最佳答案 GetProcessTimes用于100纳秒分辨率。如果您想要周期时间,请在Vista及更高版本中使用QueryProcessCycleTime。 关于c++-计算总CPU使用率,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/448811/

windows - 在 Windows 7 中更改内存和 CPU 使用率

我想用低性能硬件的Windows机器进行测试。不幸的是我有一台更高端的机器。有没有办法限制CPU和RAM内存使用的性能?我可以通过任何其他软件来完成吗?还是可以通过Windows操作系统本身来完成? 最佳答案 您可以使用VMWare来限制内存。您将无法限制虚拟机中的处理器速度,但您只能为其分配1个内核。 关于windows-在Windows7中更改内存和CPU使用率,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

windows - 写入 CPU 寄存器实际上是如何工作的?

当写入一个寄存器时,比如movax,1,它会覆盖它之前可能拥有的值。现在我想知道的是,我可以将多大的数字/字符串输入寄存器,并且另一个应用程序可以覆盖我的应用程序的寄存器值吗?我的意思是,寄存器是在进程之间共享,还是它们接收自己的沙盒/虚拟寄存器?我对Intelx86(-64)核心CPU和Windows很感兴趣。 最佳答案 在单个内核上一次只能调度一个线程。核心是有寄存器的东西。调度新线程时,首先保存寄存器,恢复线程之前保存的寄存器。这包括程序计数器寄存器,它指向下一条要执行的指令。寄存器(来自内存):AX、BX、CX、DX是16位