Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;程序在脚本文件(Linux shell脚本)中启动时消耗CPU_C++_Linux_Shell - Fatal编程技术网

C++ C++;程序在脚本文件(Linux shell脚本)中启动时消耗CPU

C++ C++;程序在脚本文件(Linux shell脚本)中启动时消耗CPU,c++,linux,shell,C++,Linux,Shell,我有三个程序(dmon、dlog、emon)。如果我在终端中以后台进程(./dmon&./dlog&./emon&)的形式逐个运行它们,这些程序就会正常工作 但是,当我将这些程序放入脚本文件(runapps.sh)时,它们会消耗大量CPU(请参见此处的图片) 我需要在启动时自动启动这些程序(在嵌入式板中)。目前,我把它们放在rc.local文件中,它消耗的CPU如上所述。如何以更少的CPU消耗运行这些程序 [更新问题] 有关这些过程的更多详细信息: 每个进程都有几个线程(pthread)。这些

我有三个程序(dmon、dlog、emon)。如果我在终端中以后台进程(./dmon&./dlog&./emon&)的形式逐个运行它们,这些程序就会正常工作

但是,当我将这些程序放入脚本文件(runapps.sh)时,它们会消耗大量CPU(请参见此处的图片)

我需要在启动时自动启动这些程序(在嵌入式板中)。目前,我把它们放在rc.local文件中,它消耗的CPU如上所述。如何以更少的CPU消耗运行这些程序

[更新问题]

有关这些过程的更多详细信息: 每个进程都有几个线程(pthread)。这些线程通常在Unix套接字上休眠或等待:

static void sample_thread_func_0() {
    do_something();
    sleep(1);
}

static void sample_thread_func_1(){
    if (accept_unix_socket()) do_something();
}
do_something函数只执行一些常规任务,如检查存储设备(ioctl到eMMC设备)或轮询输入mqtt消息。我确信dou_something函数不会像top命令所显示的那样消耗太多CPU


我想知道将命令放入shell脚本文件会有什么影响。如果在终端中逐个启动这些程序,为什么CPU消耗较低?

附加调试器或探查器,或运行
perf top
,查看这些程序在所有CPU时间内都在做什么。根据您在程序中的具体操作,请使用调试器