我用perf record ./application用perf生成了一个perf文件。perf report向我展示了关于它的各种东西。如何显示运行应用程序所用的总时间,以及运行特定“符号”/function的总时间?perf似乎经常显示百分比,但我想要原始时间,它想要“包容性”时间,即包括孩子。 Ubuntu Linux 18.04上的perf v4.15.18
我希望有人能向我解释为什么下面的函数在linux和windows上会产生令人难以置信的不同结果。 如果我有一小段代码: var elapsed = Stopwatch.GetTimestamp() / TimeSpan.TicksPerMillisecond;
Thread.Sleep(1001); // lets sleep for one second
var ts = Stopwatch.GetTimestamp() / TimeSpan.TicksPerMillisecond;
var result = ts - elapsed > 10000L // roughly
我使用time命令在Linux中运行一个jar文件。下面是执行后的输出。
15454.58s real 123464.61s user 6455.55s system
下面是执行的命令。
time java -jar -Xmx7168m Batch.jar
但实际执行该进程所需的时间是9270秒。
为什么实际时间(挂钟时间)和实时时间不同?
有人能解释这个吗?它运行在多核机器(32核)上。
我编写了一个代码,以确保while(1)循环的每个循环占用特定的时间(在本例中,为10000 S,等于0.01秒)。问题是,这段代码一开始运行得很好,但在不到一分钟之后就停止了。似乎访问linux的时间是有限的。现在,我正在初始化一个布尔变量,使这个时间计算只运行一次而不是无限次。由于性能随时间而变化,所以最好计算每个循环的计算时间。还有其他方法可以做到这一点吗?
void some_function(){
struct timeval tstart,tend;
while (1){
gettimeofday (&tstart, NULL);
...
Some com