标签: cpu

C#程序可以以某种方式测量自己的CPU使用率吗?

我正在开发一个将运行很长时间的后台程序,我有一个外部日志记录程序(SmartInspect),我希望定期提供一些值,以便在调试时实时监控它.

我知道我可以简单地启动多个程序,比如任务管理器或IARSN TaskInfo,但是我想在我自己的程序中保留所有内容,因为我还想添加一些简单的规则,比如程序使用的多于X%CPU,在日志中标记它.

我有一个后台线程,定期向SmartInspect提供一些统计信息,如内存消耗,工作集等.

这个线程是否有可能合理准确地衡量它消耗的计算机CPU资源量?主程序是单线程应用程序(除了记录统计信息的监视程序线程),因此如果一种技术仅限于单个线程使用多少,那么这也是好的.

我找到了一些与Linux和C的rusage相关的条目.我可以使用类似的东西吗?


编辑:好的,我尝试了性能计数器方式,但每次调用时都添加了大量的GC数据,因此内存使用和垃圾收集的图表飙升.我想我现在就把这部分留下来.

c# cpu monitoring performancecounter

39
推荐指数
2
解决办法
3万
查看次数

如何用C#编写超高速文件流代码?

我必须将一个巨大的文件拆分成许多较小的文件.每个目标文件由偏移量和长度定义为字节数.我正在使用以下代码:

private void copy(string srcFile, string dstFile, int offset, int length)
{
    BinaryReader reader = new BinaryReader(File.OpenRead(srcFile));
    reader.BaseStream.Seek(offset, SeekOrigin.Begin);
    byte[] buffer = reader.ReadBytes(length);

    BinaryWriter writer = new BinaryWriter(File.OpenWrite(dstFile));
    writer.Write(buffer);
}
Run Code Online (Sandbox Code Playgroud)

考虑到我必须将此功能调用大约100,000次,因此速度非常慢.

  1. 有没有办法让Writer直接连接到Reader?(也就是说,实际上没有将内容加载到内存中的Buffer中.)

c# cpu streaming performance utilization

39
推荐指数
3
解决办法
9万
查看次数

呼叫门,中断门,陷阱门之间的区别?

我正在研究英特尔保护模式.我发现Call Gate,Interrupt Gate,Trap Gate几乎是一样的.事实上,除了Call Gate具有参数计数器的字段,并且这3个门具有不同的类型字段,它们在所有其他字段中是相同的.

至于它们的功能,它们都用于将代码控制转移到某些代码段中的某些过程.

我很想知道,因为这3个门都包含跨权限边界调用所需的信息.为什么我们需要3种呢?不是一个就够好吗?

感谢您的时间和回应.

更新1

相关问题:何时使用中断门或陷阱门?

更新2

今天我想出了这个想法:

不同的目的,不同的门,以及不同的CPU行为细节进行.如IF标志处理.

cpu x86 operating-system processor interrupt

39
推荐指数
3
解决办法
2万
查看次数

是x86 RISC还是CISC?

根据维基百科,x86是一个CISC设计,但我也听说过/它是RISC.什么是正确的?我还想知道为什么它是CISC或RISC.什么决定设计是RISC还是CISC?它只是微处理器所具有的机器语言指令的数量,还是有任何其他决定架构的特性?

cpu x86 cpu-architecture

39
推荐指数
2
解决办法
5万
查看次数

整数乘法与现代CPU上的加法速度完全相同

我经常听到这种说法,现代硬件上的乘法是如此优化,以至于它实际上与加法相同.真的吗?

我从来没有得到任何权威的确认.我自己的研究只会增加问题.速度测试通常会显示让我感到困惑的数据.这是一个例子:

#include <stdio.h>
#include <sys/time.h>

unsigned int time1000() {
    timeval val;
    gettimeofday(&val, 0);
    val.tv_sec &= 0xffff;
    return val.tv_sec * 1000 + val.tv_usec / 1000;
}

int main() {
    unsigned int sum = 1, T = time1000();
    for (int i = 1; i < 100000000; i++) {
        sum += i + (i+1); sum++;
    }
    printf("%u %u\n", time1000() - T, sum);
    sum = 1;
    T = time1000();
    for (int i = 1; i < 100000000; i++) {
        sum += i * …
Run Code Online (Sandbox Code Playgroud)

c++ cpu performance multiplication addition

39
推荐指数
6
解决办法
2万
查看次数

如何在Macbook Pro上启用CPU虚拟化支持?

我在我的Macbook Pro上安装了VirtualBox,我想在VirtualBox上安装一个Linux VM.当我启动新VM时,它会提示"您的CPU不支持长模式.使用32位分发."

在搜索此问题后,我发现此VM需要支持CPU虚拟化.然后我检查了我的Macbook,它的CPU是支持虚拟化的i7.所以我猜这个问题与OS或EFI版本有关?

操作系统版本:10.6.8/EFI版本:最新版本(请访问apple.com)

有谁知道我的Macbook有什么问题?如何启用CPU虚拟化支持?

macos cpu virtualization

37
推荐指数
2
解决办法
10万
查看次数

获取CPU/GPU /内存信息

我需要获取有关CPU/GPU /内存的任何信息.内核数量,内存值,内存和CPU使用情况......我找到了一种方法为IE执行此操作:如何使用JavaScript查找硬件信息

我不知道的其他浏览器的解决方案.知道怎么做吗?也许webgl可以访问有关您的计算机的信息?还是闪光?或任何其他技术?

非常感谢你

javascript memory cpu gpu webgl

37
推荐指数
3
解决办法
5万
查看次数

找出CPU时钟频率(每个核心,每个处理器)

像CPUz这样的程序非常擅长提供有关系统的深度信息(总线速度,内存时序等)

但是,是否有一种编程方式来计算每个核心(以及每个处理器,在每个CPU具有多个核心的多处理器系统中)频率,而无需处理CPU特定信息.

我正在尝试开发一种反作弊工具(用于时钟限制基准测试),它能够在基准测试期间记录系统中所有活动核心(所有处理器)的CPU时钟.

c++ cpu cpu-speed

36
推荐指数
1
解决办法
3万
查看次数

为什么我们使用CPU进行光线跟踪而不是GPU?

在对光栅化和光线追踪进行了一些研究之后.我发现没有太多关于CPU如何在互联网上提供光线跟踪的信息.我偶然发现了关于皮克斯的文章,以及他们如何在CPU上预渲染汽车2.这花了他们每帧11.5小时.GPU是否会以相同的图像质量更快地渲染? http://gizmodo.com/5813587/12500-cpu-cores-were-required-to-render-cars-2 https://www.engadget.com/2014/10/18/disney-big-hero-6/ http://www.firstshowing.net/2009/michael-bay-presents-transformers-2-facts-and-figures/ 干杯,萨姆

hardware cpu gpu raytracing rasterizing

36
推荐指数
1
解决办法
1万
查看次数

64位处理器有哪些优点?

显然,64位处理器具有64位地址空间,因此您可以使用超过4 GB的RAM.编译与64位相同的程序并在64位CPU上运行是否有任何其他优点可能实际上有益于不是巨大内存占用的程序?

我一般都在询问CPU,尤其是与Intel兼容的CPU.

cpu 64-bit

35
推荐指数
3
解决办法
3万
查看次数