- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要证明,当进程运行时,我删除了这个进程的 ELF 文件,文件系统中的空闲 block 和节点数不会增加,而在我终止进程后,它们会增加。我还需要显示此过程的整个生命周期中的延迟,因此我正在使用 perf shed record ./Prog
,但它会创建一个文件并在其中保存记录结果,这会破坏我任务的第一部分.当我尝试(以 root 身份登录)使用时:
perf sched record -i /mnt/disk1 ./Prog &
我明白了
Workload failed: permission denied
谁能告诉我如何更改其他文件系统中文件的输入文件?
最佳答案
根据手册页 http://man7.org/linux/man-pages/man1/perf-sched.1.html
perf sched record
没有更改输出文件的选项(-i
用于输入文件 而不是目录)
-i, --input=<file>
Input file name. (default: perf.data unless stdin is a fifo)
和实现: http://elixir.free-electrons.com/linux/v4.8/source/tools/perf/builtin-sched.c#L1896
tools/perf/builtin-sched.c
static int __cmd_record(int argc, const char **argv)
{
unsigned int rec_argc, i, j;
const char **rec_argv;
const char * const record_args[] = {
"record",
"-a",
"-R",
"-m", "1024",
"-c", "1",
"-e", "sched:sched_switch",
"-e", "sched:sched_stat_wait",
"-e", "sched:sched_stat_sleep",
"-e", "sched:sched_stat_iowait",
"-e", "sched:sched_stat_runtime",
"-e", "sched:sched_process_fork",
"-e", "sched:sched_wakeup",
"-e", "sched:sched_wakeup_new",
"-e", "sched:sched_migrate_task",
};
...
return cmd_record(i, rec_argv, NULL);
}
int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
{
const struct option sched_options[] = {
OPT_STRING('i', "input", &input_name, "file",
"input file name"),
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"),
OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
"dump raw trace in ASCII"),
OPT_END()
};
....
static int perf_sched__read_events(struct perf_sched *sched)
{
...
struct perf_data_file file = {
.path = input_name,
.mode = PERF_DATA_MODE_READ,
.force = sched->force,
};
但是! builtin-sched.c 的 __cmd_record
调用 builtin_record.c 默认的 cmd_record
有 -o
选项指定输出文件:http://elixir.free-electrons.com/linux/v4.8/source/tools/perf/builtin-record.c#L1380
OPT_STRING('o', "output", &record.file.path, "file",
"output file name"),
因此,您可以通过更改当前目录来更改 perf sched record
的目标路径,或者您可以尝试 perf sched record -o/mnt/disk1/perf.data ./Prog &
。不要将目录名称用作 -i
(报告输入)/-o
(记录输出)性能选项的参数。
关于linux - 如何更改 perf sched 记录中的输入文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823954/
我使用 perf sched record 来记录一些东西。 我从 perf sched script 得到了一些context switch 事件 filebench 2646 [000] 211
当我执行 ls/usr/src/linux-headers-4.10.0-38-generic/include/linux/sched 时,我得到以下结果: deadline.h jobctl.h
我已经在 Windows 中使用 python 创建了在后台运行的调度程序的数量。谁能告诉我任何命令来检查 Windows 上运行的调度程序数量以及如何删除它们? 最佳答案 如果您使用sched.sc
我对 mongodb 很陌生。通过以下方式安装后:brew intall mongodb 然后在终端中键入 mongod,错误抛出:kern.sched unavailable。 我使用的是 mac
我最近开始学习 Python,我正在制作的简单应用程序的一部分包括一个在其自己的线程中运行的带有 hh:mm:ss 显示的计时器。 环顾网络,我发现了两种实现方法: 使用 sched.schedule
我正在编写一个需要在两个给定时间之间运行的 python 脚本。我需要使用 sched 模块中的构建,因为此脚本需要能够直接在任何具有 python 2.7 的机器上运行,以减少配置时间。 (所以 C
tl;dr:在 emacs 组织模式议程 View 中,我不明白为什么我的一些待办事项告诉我他们比预定日期多天数,而其他人则没有。 在 emacs 组织模式下,如果我输入 C-c a a我看到了我今天
我一直在尝试分析 perf sched record 的输出但我不明白我用什么引用系来理解“20624.983302 秒”。现在肯定不是 Unix 时间,那是什么?我将如何将其转换为 Unix 时间?
我需要证明,当进程运行时,我删除了这个进程的 ELF 文件,文件系统中的空闲 block 和节点数不会增加,而在我终止进程后,它们会增加。我还需要显示此过程的整个生命周期中的延迟,因此我正在使用 pe
Linux3.2.0 鉴于以下来源: #include #include int main(void) { printf("%i \n", CLONE_PTRACE);
我正在尝试将列表添加到 linux 内核 (2.4.14-18) 的 sched.h 中的任务结构。 我已经添加了成员 list_t waitList 在task_struct中,添加 waitL
我正在我的 Ubuntu 服务器上寻找 ached.h 文件,但我找不到它。在线它说它在 include/linux/sched.h 但我没有包含文件/不知道它在哪里。有人可以在这里指出我正确的方向吗
我想研究如何将线程手动分配给多核计算机上的特定核心。我发现 include/sched.h 定义了一些可以帮助解决此问题的宏和函数(sched_setaffinity 等)。然而,这些函数是外部的,我
在sched.h ,task_struct 有以下 2 个字段:thread_group 和 thread_node。他们保留了列表的第一个元素,但我找不到它们包含哪种类型的变量。 1511 stru
我正在尝试对 Linux 内核的 sched.h 进行一些更改。默认代码有 struct rq *rq ,它是事件运行队列列表,我需要为每个进程 p 迭代运行队列列表 rq 。有什么办法可以做到吗?
我要把linux程序移植到windows中。但我不知道Windows中的sched.h头相当于什么。任何人都可以帮忙吗? 最佳答案 libpthread是 Windows 的 POSIX 线程的实现。
import sched, time s = sched.scheduler(time.time, time.sleep) def do_something(sc): print("Doing
我正在研究 linux 内核。我修改了 sched.c 以指定我自己的调度策略。但是重新编译成我的自定义内核需要 50 多分钟。为什么我必须编译未修改的源代码?有没有办法只编译sched.c? 我键入
我有一个golang代码示例如下(xx.go): package main import "runtime" func main() { c2 := make(chan int) g
我想改变 Linux 内核,以便每次当前 PID 发生变化时——即,切换到一个新进程——执行一些诊断代码(下面有详细解释,如果好奇的话)。我做了一些挖掘,似乎每次调度程序选择一个新进程时,函数 con
我是一名优秀的程序员,十分优秀!