标签: cpu-time

测量Julia中经过的CPU时间

许多科学计算语言区分绝对时间(挂钟)和CPU时间(处理器周期).例如,在Matlab中我们有:

>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.

>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
        0
Run Code Online (Sandbox Code Playgroud)

在Mathematica,我们有:

>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}

>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}
Run Code Online (Sandbox Code Playgroud)

当对计算服务器上运行的代码进行基准测试时,这种区别非常有用,其中绝对时序结果可能存在很大差异,具体取决于其他进程同时运行的情况.

茱莉亚标准库通过提供支持表达式的时机tic(),toc(),@time和一些其他的功能/宏都基于time_ns(),测量绝对时间的函数.

>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有一种简单的方法可以获得Julia中表达式评估所用的CPU时间?

(旁注:做一些挖掘,似乎Julia计时基于libuvuv_hrtime()功能.在我看来,使用同一个库可能会提供一种方法来访问Julia中经过的CPU时间,但我不是专家.有没有人尝试过这样的东西?)uv_getrusage

performance time cpu-time julia

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

用c ++测量CPU时间

如果我有以下代码

clock_t t;
t = clock();
//algorithm
t = clock() - t;
Run Code Online (Sandbox Code Playgroud)

t将等于运行程序的滴答数.这与CPU时间相同吗?有没有其他方法来衡量C++中的CPU时间?

操作系统 - Debian GNU/Linux我对任何有用的东西持开放态度.我想比较两种算法的CPU时间.

c++ time runtime cpu-usage cpu-time

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

SQL Server查询调优:为什么CPU时间高于经过时间?它们与设定操作有关吗?

我有两个查询来过滤一些用户ID依赖于问题及其答案.

脚本

查询A是(原始版本):

SELECT userid
FROM mem..ProfileResult
WHERE ( ( QuestionID = 4
          AND QuestionLabelID = 0
          AND AnswerGroupID = 4
          AND ResultValue = 1
        )
        OR ( QuestionID = 14
             AND QuestionLabelID = 0
             AND AnswerGroupID = 19
             AND ResultValue = 3
           )
        OR ( QuestionID = 23
             AND QuestionLabelID = 0
             AND AnswerGroupID = 28
             AND ( ResultValue & 16384 > 0 )
           )
        OR ( QuestionID = 17
             AND QuestionLabelID = 0
             AND AnswerGroupID = 22
             AND …
Run Code Online (Sandbox Code Playgroud)

sql-server performance query-optimization cpu-time

8
推荐指数
1
解决办法
8848
查看次数

c ++ <cmath> SQRT()的实际计算复杂度

CPU周期(或者,实质上,"速度")之间有什么不同

 x /= y;
Run Code Online (Sandbox Code Playgroud)

 #include <cmath>
 x = sqrt(y);
Run Code Online (Sandbox Code Playgroud)

编辑:我知道操作不等同,我只是随意提出x /= y作为基准x = sqrt(y)

c++ complexity-theory cpu-cycles sqrt cpu-time

7
推荐指数
2
解决办法
8312
查看次数

如何在Windows上测量C++中的CPU时间并包含system()的调用?

我想在C++算法上运行一些基准测试,并希望获得所需的CPU时间,具体取决于输入.我在Windows 7上使用Visual Studio 2012.我已经发现了一种在Windows中计算CPU时间的方法:如何在Linux/Windows上测量CPU时间和挂钟时间?

但是,我在我的算法中使用system()命令,这不是那样测量的.那么,我如何测量CPU时间并通过system()包含我的脚本调用次数?

我应该添加一个小例子.这是我的get_cpu_time函数(来自上面描述的链接):

double get_cpu_time(){
    FILETIME a,b,c,d;
    if (GetProcessTimes(GetCurrentProcess(),&a,&b,&c,&d) != 0){
        //  Returns total user time.
        //  Can be tweaked to include kernel times as well.
        return
            (double)(d.dwLowDateTime |
            ((unsigned long long)d.dwHighDateTime << 32)) * 0.0000001;
    }else{
        //  Handle error
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这工作正常,当我制作一个程序,对一些数组进行排序(或做一些其他需要一些时间的东西),它工作正常.但是,当我在这种情况下使用system() - 命令时,它不会:

int main( int argc, const char* argv[] )
{
    double start = get_cpu_time();
    double end;
    system("Bla.exe");
    end = get_cpu_time();

    printf("Everything took %f seconds of CPU time", end …
Run Code Online (Sandbox Code Playgroud)

c++ windows cpu-time

7
推荐指数
1
解决办法
1606
查看次数

空闲线程是否在 Java Executors 中占用 CPU 执行时间?

当我在应用程序中有此代码时:

Executors.newFixedThreadPool(4);
Run Code Online (Sandbox Code Playgroud)

但我从不使用这个线程池。空闲线程会消耗 CPU 时间吗?如果是这样 - 为什么?

java multithreading cpu-time threadpoolexecutor

7
推荐指数
2
解决办法
1775
查看次数

确定php脚本使用了多少资源(cpu百分比和内存)

我目前正在使用xhproftideways.io分叉的库来进行性能分析myscript.php.从xhprof,我可以得到walltime,cputime,memoryusage,和peakmemoryusage.我尽力基准测试中symfony的控制台-所以我添加TIDEWAYS_ENABLE()ConsoleCommandEventTIDEWAYS_DISABLE它的ConsoleTerminateEvent.

问题:

  1. 我该如何确定是否myscript.php消耗了多少百分比的cpu?我可以cpuusage = cputime / realtime服务器故障中所说的那样计算百分比吗?
  2. 鉴于a memoryusage (mu)peakmemoryusage (pmu)来自xhprof分析器,我如何转换或计算其ram使用?(top结果显示远高于memoryusage但不知何故接近peakmemoryusage价值,所以我可以说ram使用价值是peakmemoryusage

笔记:

php profiling cpu-time symfony xhprof

6
推荐指数
1
解决办法
588
查看次数

如何使用 bash 内置“时间”捕获 Python 变量中的挂钟时间和 CPU 时间?

我正在编写一个将在命令行中运行的 Python 脚本。这个想法是从用户那里获取命令,运行它,然后提供用户提供的命令的挂钟时间和 CPU 时间。请参阅下面的代码。

#!/usr/bin/env python 
import os
import sys

def execut_cmd(cmd_line):
    utime = os.system('time '+cmd_line)
    # Here I would like to store the wall-clock time in the Python variable 
    # utime.
    cputime = os.system('time '+cmd_line)
    # Here the CPU time in the cputime variable. utime and cputime are going to 
    # be used later in my Python script. In addition, I would like to silence the 
    # output of time in the screen.

execut_cmd(sys.argv[1]) 
print ('Your command wall-clock …
Run Code Online (Sandbox Code Playgroud)

bash time cpu-time python-3.x wall-time

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

实时与CPU时间性能指标

我正在尝试通过以毫秒为单位测量实际经过时间与以毫秒为单位的cpu时间来在c ++中执行一些性能度量。这是我的代码的样子:

auto start = std::chrono::high_resolution_clock::now();
unsigned begin = clock();

// some computationally expensive task

auto finish = std::chrono::high_resolution_clock::now();
unsigned end = clock();

(finish - start).count();

int duration = std::chrono::duration_cast<std::chrono::milliseconds>(finish - start).count();
int cpu_duration = 1000*(end - begin)/(CLOCKS_PER_SEC);
Run Code Online (Sandbox Code Playgroud)

现在,我希望cpu时间值低于系统时间,因为线程可能会中断。但是,CPU时间是实时时间的2-3倍。我做错了什么还是我误解了CPU时间的概念?

c++ ctime measure cpu-time c++-chrono

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

使用 malloc 测量 CPU 与 Wall 时间的奇怪差异

答:用户和内核cpu时间是分开测量的,小心!

编辑:pTimes 现在在每个基准测试之间重置为零,但结果变得更奇怪了!

最终目标是摆弄我自己的自定义内存管理方案,我为 Visual Community 2019、Windows 10 中现有的 malloc() 做了一个简单的基准测试。出于兴趣,我对 CPU 时间和墙时间进行了基准测试,然后我通过在许多块中分配大块内存,然后单独释放每个块而不使用它们来测试 malloc。看这里:

void malloc_distr256(int nMemsize) {
    long long pFreeList[256];

    for (int i = 0; i < 256; ++i) pFreeList[i] = malloc(nMemsize >> 8);
    for (int i = 0; i < 256; ++i) free((void*)pFreeList[i]);
}

void malloc_distr64(int nMemsize) {
    long long pFreeList[64];

    for (int i = 0; i < 64; ++i) pFreeList[i] = malloc(nMemsize >> 6);
    for (int i = 0; i < 64; ++i) free((void*)pFreeList[i]);
}

void malloc_distr0(int …
Run Code Online (Sandbox Code Playgroud)

c memory windows malloc cpu-time

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

如何使用C#限制Windows进程的CPU使用率

我需要编写一个类,它将附加到某些Windows进程,监视和限制其CPU使用率.流程优先级的改变对我没有帮助,所以我真的需要编写一个与BES或ThreadMaster基本类似的程序.所以我需要创建一个类似这样的类(伪代码):

public void cpuLimiter(pid)
{
    ProcessHandle handle = attachToProcess(pid);
    while (cpuLimiting)
    {
        if (handle.cpuUsage > 30%)
        {
            handle.sleep(100miliseconds);
        }
        sleep(10miliseconds);
    }
    closeHandle(pid);
}
Run Code Online (Sandbox Code Playgroud)

我希望我说清楚我想要完成什么,只是我不知道如何.感谢每一位帮助.

c# cpu-usage cpu-time thread-priority

2
推荐指数
1
解决办法
711
查看次数