Linux &引用;“性能顶级”;排序不';看起来一点也不像

Linux &引用;“性能顶级”;排序不';看起来一点也不像,linux,profiling,perf,Linux,Profiling,Perf,我想检查缓冲队列的一些指标,并根据在任何给定跟踪点在缓冲区中排队的项目数对perf top显示的条目进行排序 但是,当我将number of items字段指定为主排序键时,它根本没有根据该键进行排序。例如,我使用net:net\u dev\u xmit静态跟踪点和以下命令 perf top-e net:net\u dev\u xmit-s len,开销 使用web浏览器几秒钟后的输出如下 可以看出,它不再按照我的请求按照开销进行排序。但是它也没有按照len进行排序!至少输出中没有明显的总顺序

我想检查缓冲队列的一些指标,并根据在任何给定跟踪点在缓冲区中排队的项目数对
perf top
显示的条目进行排序

但是,当我将number of items字段指定为主排序键时,它根本没有根据该键进行排序。例如,我使用
net:net\u dev\u xmit
静态跟踪点和以下命令

perf top-e net:net\u dev\u xmit-s len,开销

使用web浏览器几秒钟后的输出如下

可以看出,它不再按照我的请求按照开销进行排序。但是它也没有按照
len
进行排序!至少输出中没有明显的总顺序

在某种程度上,我怀疑它可能使用字母数字降序,但事实并非如此,因为1432是在152之前打印的,但字母数字降序排序会将前缀
14
排序在前缀
15
之后


这是怎么回事

我认为你不能按
len
排序。请尝试
perf top-e net:net\u dev\u xmit-s开销
@Hadi,但为什么可以将其指定为排序键呢?排序开关仅适用于
perf
具有内置知识的键。这包括开销键,但不包括len。我认为如果指定一个不受支持的键,
perf
将忽略它,或者它似乎忽略了整个排序开关。实际上,您可以尝试
perf top-e net:net\u dev\u xmit-s开销,len
?也就是说,切换
len
开销
。“我希望这只会按开销排序。”哈迪布雷斯:谢谢,我明白了。有趣的是,不能在
--fields
上指定键,这与我在这种情况下所期望的正好相反(接受--fields,拒绝--sort)。关于切换:是的,这是默认行为,但这不是我想要的,因为它不会按len排序,而是按开销排序。
Samples: 208  of event 'net:net_dev_xmit', Event count (approx.): 155
Overhead         len
0,65%            232
0,65%            214
0,65%            192
0,65%            183
5,16%           1432
0,65%            152