相关疑难解决方法(0)

如何在多任务环境中测量多线程处理时间?

由于我在(抢占式)多任务,多核环境中运行多线程程序的性能评估测试,因此可以定期更换该进程.我想计算延迟,即只计算进程处于活动状态的持续时间.这将允许我推断性能在非多任务环境中的表现,即,只有一个程序运行(大多数时间),或者在不同的工作负载上.

通常测量两种时间:

  • 挂钟时间(即从流程开始以来的时间),但这包括交换流程的时间.
  • 处理器时间(即所有线程使用的CPU时间总和),但这对计算进程的延迟没有用.

我相信我需要的是单个线程的完成时间,这可能与任何线程使用的最大CPU时间不同,这是由于线程之间的任务依赖性结构.例如,在具有2个线程的进程中,线程1在运行时的前三分之二(CPU时间t)中负载很重,而线程2在该进程的后三分之二中加载(同样,对于CPU时间t).在这种情况下:

  • 挂钟时间将返回3t/2 +上下文切换时间+其他进程在其间使用的时间,
  • 所有线程的最大CPU时间将返回接近t的值,并且
  • 总CPU时间接近2t.
  • 我希望收到的测量结果是完工时间,即3t/2.

此外,多线程本身带来了不确定性.这个问题可能需要多次运行测试并总结结果.

此外,延迟还取决于操作系统如何调度线程; 如果进程的某些线程等待CPU而其他线程运行,则事情会变得更复杂.但是让我们忘记这一点.

有没有一种有效的方法来计算/估计这个完工时间?要提供代码示例,请使用任何编程语言,但最好使用Linux上的C或C++.

PS:我理解这个makepan的定义与调度问题的定义不同.调度问题中使用的定义类似于挂钟时间.

language-agnostic multithreading multicore time-measurement

14
推荐指数
1
解决办法
2354
查看次数

如何在C/C++中获取磁盘驱动器序列号

这已经得到了回答,但它是一个C#解决方案.如何在C或C++中执行此操作?

c c++ windows serial-number hard-drive

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

如何在c#中测量线程的时间?

我想测量一下C#例程所需的时间.因为还有很多其他线程我只想计算这一个线程的时间.在Java中我可以使用getCurrentThreadCpuTime.

我该怎么做?

c# performance multithreading

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

如何衡量一段代码执行的时间?

假设我想测量某段代码所花费的时间.为此,我通常会这样做

clock_t startTime = clock();
//do stuff
//do stuff
//do stuff
//do stuff
float secsElapsed = (float)(clock() - startTime)/CLOCKS_PER_SEC;
Run Code Online (Sandbox Code Playgroud)

如果程序是多线程的并且在我想要测量的部分内发生了上下文切换,该怎么办?我如何衡量执行代码所花费的时间,排除在其他线程上花费的时间?即使有工具可以做到这一点,我也非常想知道他们是如何做到的.

c++ multithreading profiling time-measurement

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

如何在 Mac OSX 上获取每个线程的 CPU 使用率

我正在寻找 OS 级 API 来解释 OSX 中特定线程消耗的周期。

这类似于这个问题(和答案),但在 OSX 中。

c++ api macos multithreading cpu-usage

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

获取总CPU使用率的百分比

我试图获得总CPU使用率的百分比 label1.Caption

我搜索过并找到了这些:

在此输入图像描述

我相信有一种简单的方法就像我们使用RAM一样.

 GlobalMemoryStatus(RamStats);
 Label1.Caption := Format('RAM: %d %%', [RamStats.dwMemoryLoad]);
Run Code Online (Sandbox Code Playgroud)

delphi cpu performancecounter delphi-xe

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

c ++"GetThreadTimes"但具有更好的分辨率


是否有一个分辨率高于100us的方法可以让我得到一个线程工作的总时间(没有它正在睡觉或等待的时间).
谢谢 :)

c++ windows time

4
推荐指数
1
解决办法
1648
查看次数