草庐IT

cpu_data_t

全部标签

c# - 计算 Windows 进程的 CPU 使用率?

给定进程ID,如何使用C#从该进程获取CPU负载?我已尝试使用c#calculateCPUusageforaspecificapplication中描述的PerformanceCounter我还尝试在一个时间范围内手动获取进程总cpu时间的两个值,并将delta-cpu-time除以delta-total-time。这两种方法一开始似乎都可以正常工作,但如果我将我的应用程序放在Windows任务管理器旁边,我的应用程序总是显示大约是任务管理器显示的两倍。我尝试使用从10毫秒到10秒的各种时间步长进行更新,并始终获得相同的结果。嗯,当我写这篇文章时意识到这可能是某种双核问题......

c# - 类似于任务管理器获取Windows中空闲进程的总CPU时间

我正在开发一个大型应用程序,想了解两个时间点之间的CPU负载情况。我不仅对自己的过程感兴趣,而且对所有过程都感兴趣。我的想法是获取两个时间段之间空闲进程的总CPU时间。然后将该值与实时差异进行比较。然后可以计算花费在空闲进程上的平均CPU时间百分比,以及实际进程上花费的平均CPU时间百分比。例如:实时样本:2012/07/3013:56:1和2012/07/3013:56:21空闲进程总CPU时间样本:56:23:10和56:23:15实时差异:20s空闲进程总CPU时间的差异:5秒空闲进程中的平均CPU时间百分比:25%实际进程中的平均CPU时间百分比:75%为了尽可能减少对性能的影

创建 3 个线程并使用 WSAWaitForMultipleEvents() 和 WSAEnumNetworkEvents() 时 CPU 使用率 100%

我创建了3个线程,每个线程都有一个套接字。在每个线程中,套接字被设置为“事件驱动”,并且每当数据可供读取时,就会生成一个事件。该代码工作正常,但它占用CPU使用率高达100%,这肯定是不可取的。我想我犯了一些错误。下面是我的代码。请帮助我找出导致100%CPU使用率的错误。代码:DWORDWINAPIThreadProc(LPVOIDparam){intthreadNumber=(int)param;intPORT=8888+threadNumber;//sothateachthreadbind()sitssockettoadifferentPortnumber.WSADATAwsa;

c - SetupDiGetDeviceRegistryProperty : "The data area passed to a system call is too small" error

我有一个使用SetupAPI在WindowsXP上枚举USB设备的代码:HDEVINFOhDevInfo=SetupDiGetClassDevs(&_DEVINTERFACE_USB_DEVICE,0,0,DIGCF_DEVICEINTERFACE|DIGCF_PRESENT);for(DWORDi=0;;++i){SP_DEVINFO_DATAdevInfo;devInfo.cbSize=sizeof(SP_DEVINFO_DATA);BOOLsucc=SetupDiEnumDeviceInfo(hDevInfo,i,&devInfo);if(GetLastError()==ERRO

windows - 获取 CPU 使用率(%)

我想使用AutoIt将CPU使用率(以%为单位)传递给一个变量。有没有像MemGetStats()这样的功能为此? 最佳答案 WMI很慢。Thefollowingsolution返回速度更快,并包含每个处理器内核的信息:$aUsage=_GetCPUUsage()For$i=1To$aUsage[0]ConsoleWrite('CPU#'&$i&'-'&$aUsage[$i]&'%'&@CRLF)Next;################################################################

c++ - WIN32_FIND_DATA 在目录中列出文件时返回 "."和 ".."

我正在编写一个应该可以在Windows和Linux上运行的虚拟文件系统。这是为了一项任务,所以不允许像Boost这样的外部事物。对于Windows版本,我正在尝试编写一个将所有文件挂载到给定目录中的函数。这是所说的功能:voidFileSystem::MountDirectory(conststd::stringdirectory){WIN32_FIND_DATAsearch_data;memset(&search_data,0,sizeof(WIN32_FIND_DATA));std::wstringwDir=StringToWstring(directory);LPCWSTRdir

windows - 列出占用最多 CPU 时间的进程。(Powershell)

如何使系统服务不被枚举?我希望系统进程和所有其他系统服务(例如svchost)都不在列表中。Get-Process|Sort-ObjectCPU-desc|Select-Object-first3|Format-TableCPU,ProcessName,Id-hidetableheader 最佳答案 我喜欢另一个答案,但还有另一种不需要管理员权限的可能性,尽管它可能不是万无一失的:大多数系统服务在名为svchost的进程中运行,因此您可以简单地使用Where-Object排除这些进程:Get-Process|Where-Object

c++ - 用于控制对 "All Users\Application Data"中文件的访问的 Windows 服务

这是我的情况:我有一个使用配置文件的应用程序。配置文件适用于系统的所有用户,所有用户都可以更改配置。我决定将配置文件放在“AllUsers\ApplicationData”文件夹中。问题是该文件只能由创建它的用户写入。这是我的临时解决方案:创建文件时,应用程序会设置其安全选项,以便系统的所有用户都可以写入。然而,Ithinkthisisahack我想我必须创建一个服务来管理对文件的访问。我的应用程序是用C++(MFC)编写的,我不是所有.Net方面的专家。所以我的第一个想法是编写一个带有COM接口(interface)的WindowsC++服务,该服务将由应用程序调用。我的问题:我的想

windows - 是什么阻止 Windows CPU 工作超过 100%?

今天我上了第一节UNIX课,如果有一些愚蠢的问题,请多多包涵。在类里面导师刚刚跑~$:是的“你好,世界”两次,然后CPU超过100%,实际上达到1.36,然后他杀死了2yes进程。他说在Solaris中,CPU可以达到400%,并且仍然可以工作。缓慢,但从不崩溃。这个cpu百分比是多少,如果是百分比怎么会超过100%?而且我从来没有在Windows中观察到任何超过100%的CPU百分比,如果它是80%,它就像蠕虫一样慢。是否有任何Windows操作系统限制以使其不会超过100%? 最佳答案 Unix和Windows都不能使用超过10

windows - Cygwin-x64 上的 "CPU you selected does not support x86-64 instruction set"错误

我正尝试按照以下说明在cygwin中安装openssl:我从这个网站下载了最新的tarballhttp://www.openssl.org/source/,并将其放入C:\cygwin64\home,然后我从cygwin运行这些命令tarzxvfopenssl-1.0.1e.tar.gzcdopenssl-1.0.1e./配置制作做测试安装(此处的说明:http://www.slideshare.net/ganaaturuu/cygwinandopen-sslinstallguide)直到第3步./config我相信它工作正常,至少没有报告错误,并且它给出消息“已为Cygwin配置”。