相关疑难解决方法(0)

程序部分的perf stat

是否可以通过perf收集硬件计数器统计信息,仅用于程序执行的一部分?如果是这样,怎么样?

likwid提供了能够定义命名区域的功能,但如果只在安装了perf的系统上实现这一点,那将会很棒.

以前的一些问题已经返回相关答案,但仍有一些缺点:

  • 使用探针我得到相同的错误,我使用的是稍微更新的内核(3.13).这些修补程序是否在较新版本中可用?
  • 使用perf_event_open我想保持在命令行上定义事件的灵活性.我还看了一下perf stat 本身的代码,但似乎没有通过调用perf_event_open进行设置.

linux perf likwid

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

Linux中的getrusage是否被破坏(2.6.30)

这段代码

 void print_usage(char * msg)
{
    struct rusage usage;
    getrusage(RUSAGE_SELF, &usage);
    printf("Limits: %s\n", msg);
    printf("  %s, %li\n",  " maximum resident set size "    , usage.ru_maxrss  );
    printf("  %s, %li\n",  " integral shared memory size "  , usage.ru_ixrss   );
    printf("  %s, %li\n",  " integral unshared data size "  , usage.ru_idrss   );
    printf("  %s, %li\n",  " integral unshared stack size " , usage.ru_isrss   );
    printf("  %s, %li\n",  " page reclaims "                , usage.ru_minflt  );
    printf("  %s, %li\n",  " page faults "                  , …
Run Code Online (Sandbox Code Playgroud)

c linux linux-kernel getrusage

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

read()系统调用页面错误不依赖于文件大小

我正在使用read()in 阅读不同大小的文件(1KB - 1GB)C.但每次我检查page-faults使用时perf-stat,它总是给我相同(几乎)的值.

我的机器:( 虚拟机上的fedora 18,RAM - 1GB,磁盘空间 - 20 GB)

uname -a
Linux localhost.localdomain 3.10.13-101.fc18.x86_64 #1 SMP Fri Sep 27 20:22:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

mount | grep "^/dev"
/dev/mapper/fedora-root on / type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
Run Code Online (Sandbox Code Playgroud)

我的代码:

 10 #define BLOCK_SIZE 1024
. . . 
 19         char text[BLOCK_SIZE];
 21         int total_bytes_read=0;
. . .

 81         while((bytes_read=read(d_ifp,text,BLOCK_SIZE))>0)
 82         {
 83                 write(d_ofp, text, bytes_read); // writing …
Run Code Online (Sandbox Code Playgroud)

c linux page-fault perf

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

标签 统计

linux ×3

c ×2

perf ×2

getrusage ×1

likwid ×1

linux-kernel ×1

page-fault ×1