问题标签 [perf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
795 浏览

linux - perf中的硬件事件和硬件缓存事件有什么区别?

当我输入perf list命令时,我发现有两种事件:Hardware eventHardware cache Event。两者有什么区别 ?

cache-misses和 和有什么不一样LLC-misses?缓存未命中是否包括 LLC-misses ?

perf当我测试程序时,工具会降低总体性能吗?

0 投票
2 回答
3162 浏览

c++ - 如何提出高缓存未命中率示例?

我正在尝试提出一个具有高缓存未命中率的示例程序。我想我可以尝试像这样逐列访问矩阵:

当我用-O0标志编译它并使用它运行时,perf stat -r 5 -B -e cache-references,cache-misses ./a.out它给了我:

这对我的目的来说已经足够好了。但是,如果我继续并将矩阵大小更改为2000x2000它给出:

如果我进一步增加它,3000x3000我会得到:

这很奇怪,因为随着大小的增加,我希望获得更多的缓存未命中率。我需要尽可能独立于平台的东西。计算机体系结构课很久以前,所以任何见解都会受到欢迎。

笔记

我说我需要一些相对独立于平台的东西,但这些仍然是我的规格:

  • 英特尔® 酷睿™ i5-2467M
  • 4 GiB 内存
  • 64 位 Ubuntu 12.04
0 投票
3 回答
32485 浏览

linux - 为什么 perf 不报告缓存未命中?

根据perf tutorialsperf stat应该使用硬件计数器报告缓存未命中。但是,在我的系统(最新的 Arch Linux)上,它没有:

我错过了什么?我已经搜索了手册页和网络,但没有发现任何明显的东西。

编辑:如果重要的话,我的 CPU 是 Intel i5 2300K。

0 投票
1 回答
2006 浏览

c - 如何使用 perf 分析 C 项目代码?

如何使用 perf 检查哪些部分代码运行缓慢?我遇到了这些 链接,但我仍然无法理解生成的数据是这样的!那么我如何理解 perf 的报告和 perf annotate 生成的数据?图片

0 投票
2 回答
2065 浏览

linux - 记录导致主要页面错误的内存访问

有谁知道如何获取导致页面错误的内存访问(指针)?我主要对主要的页面错误感兴趣。

关于我想要实现的目标的一些背景知识。我有一个内存占用很大的应用程序(数据库),我想将分页与对大型数据结构(例如使用 mmap() 分配的表、索引)的访问相关联。进程的映射很容易从 /proc//maps 中检索。现在,如果我有导致页面错误的内存访问,我可以跟踪在访问每个数据结构时导致了多少页面错误。

我认为 perf 或 systemtap 可以完成这项工作。有任何想法吗?

0 投票
2 回答
7372 浏览

android - Android Systrace 跟踪文件格式

Android systrace工具,通过 ADB调用atrace工具。但是,我不太了解跟踪文件的格式。显然它与 linux ftrace工具非常相似,但有一些区别。主要区别在于它不使用System.Map文件,但它将所有信息包含在跟踪文件中。此外,还有特定于 android 的新 B|E 条目。

在 Android 源代码中有一些关于这种格式的信息:http ://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js

但是,在该文档中,我们可以看到该格式属于 Linux Perf Tool。我不这么认为,linux perf 作为输出提供了一种非常不同的格式...(除非某些特殊配置处于活动状态...)

我的问题是:有人知道我在哪里可以找到关于使用adb 的atrace工具生成的 android 跟踪文件的官方文档吗?

这种格式你熟悉吗?

提前致谢 !

0 投票
0 回答
689 浏览

linux - 使用“perf”获取每个线程的 CPU 使用率(任务时钟)

全部

我正在运行多线程应用程序并想测量每个线程的 CPU 使用率。例如,我想看看

线程 0 17696.260293 任务时钟

线程 1 244112.601727 任务时钟

...

谁能让我知道如何使用“perf”或其他一些性能监控工具获取此类信息?

谢谢!

0 投票
3 回答
86 浏览

c# - 当索引不包含在另一个列表中时,按索引从列表中删除

有没有办法让这段代码更有效率?

这就是我所做的,aList 包含对象而不是整数,因此需要列表中对象的索引。不确定 includeRows.Remove() 是否会降低或提高效率,includeRows 刚刚更改为 HashSet。

0 投票
3 回答
6350 浏览

linux - 使用 perf 监控原始事件计数器

我正在尝试在具有多个(物理)处理器的(Intel Xeon)机器上测量某些硬件事件。具体来说,我想知道为读取“非核心”数据发出了多少请求。

我在 Intels 文档中找到了 OFFCORE_REQUESTS硬件事件,它给出了事件描述符 0xB0 和数据需求,附加掩码 0x01。

那么告诉 perf 记录事件 0xB1 (即0xB0 | 0x01)并将其称为:

或者这是不正确的?因为perf report这样输入的事件没有显示输出。

perf 文档在这方面相当稀疏,除了一个教程条目没有说明它是哪个事件(尽管这个对我有用),或者它是如何编码的......

任何帮助是极大的赞赏。

0 投票
2 回答
1653 浏览

c# - 确定字符串是否为合法 XML 元素名称的有效方法

我做了一个符合 W3 规范的简单实现。在这里,我只是简单地持有不同的合法字符集(合法的起始字符与后面的字符不同)并使用 string.Contains。但是合法字符的集合非常大(无论如何对我来说),并且只在候选字符串的时间检查一个字符变得有点昂贵。

目前这不是一个真正的问题,因为我需要在每次执行批处理(需要几秒钟、几分钟甚至几小时)时验证几个字符串一次(需要几毫秒),但我很想知道其他人会建议什么.

这是我的简单实现:

虽然我没有费心构建它,但我认为在类型初始化程序中创建一个排序列表,然后对列表进行二进制搜索(而不是使用 string.Contains 进行线性搜索)以检查每个字符会在空间、时间上取得良好的平衡和复杂性。但也许你有其他(更好!)的想法?