jiyong3998

导航

 

一、进程优先级

https://gityuan.com/2015/10/01/process-priority/

进程可划分为普通进程和实时进程,那么优先级与nice值的关系图:

nice_prio

优先级值越小表示进程优先级越高,3个进程优先级的概念:

  • 静态优先级: 不会时间而改变,内核也不会修改,只能通过系统调用改变nice值的方法区修改。优先级映射公式: static_prio = MAX_RT_PRIO + nice + 20,其中MAX_RT_PRIO = 100,那么取值区间为[100, 139];对应普通进程;

  • 实时优先级:只对实时进程有意义,取值区间为[0, MAX_RT_PRIO -1],其中MAX_RT_PRIO = 100,那么取值区间为[0, 99];对应实时进程;

  • 动态优先级: 调度程序通过增加或减少进程静态优先级的值,来达到奖励IO消耗型或惩罚cpu消耗型的进程,调整后的进程称为动态优先级。区间范围[0, MX_PRIO-1],其中MX_PRIO = 140,那么取值区间为[0,139]

nice值

nice∈[-20, 19],可通过adb直接修改某个进程的nice值: renice prio pid

  • 查看进程子进程信息:
pstree -tnlap PID
  • 修改进程的nice值,【-20,19】,越小优先级越高
adb shell renice -n  -10 7386(pid 号)
  • 看进程运行在那个核上:
ps -eo pid,args,psr

二、chrt修改线程优先级

usage: chrt [-Rmofrbi] {-p PID [PRIORITY] | [PRIORITY COMMAND...]} 

Get/set a process' real-time scheduling policy and priority. 
-p Set/query given pid (instead of running COMMAND) 
-R Set SCHED_RESET_ON_FORK 
-m Show min/max priorities available

Set policy (default -r): 对应调度策略 
-o SCHED_OTHER -f SCHED_FIFO -r SCHED_RR 
-b SCHED_BATCH -i SCHED_IDLE

 查看进(线)程信息

# 查看对应实时进程的调度策略及优先级 
chrt -p pid

修改非实时线程为实时线程

# 配置线程3715:调度策略为SCHED_RR,优先级为50 
chrt -r -p 3715 50

 

三、Gstreamer命令

gst-launch-1.0 -e v4l2src ! queue ! x264enc ! h264parse ! queue ! qtmux0. alsasrc ! 'audio/x-raw,rate=44100,depth=16' ! audioconvert ! audioresample ! voaacenc ! aacparse ! qtmux ! filesink location=test.mp4


gst-launch-1.0 boscamsrc num-buffers=100 ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2convert disable-passthrough=true output-io-mode=dmabuf-import capture-io-mode=dmabuf ! video/x-raw,format=NV12,width=1920,height=1080,colorimetry=bt601 ! v4l2h265enc output-io-mode=dmabuf-import capture-io-mode=mmap extra-controls="cid,sequence_header_mode=1,video_gop_size=30" ! h265parse ! mp4mux ! filesink location=/data/output%d.mp4


gst-launch-1.0 -e alsasrc device=Capture_DVR_mic ! audioconvert ! lamemp3enc ! filesink location=/data/output.mp3


gst-launch-1.0 boscamsrc num-buffers=100 ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2convert disable-passthrough=true output-io-mode=dmabuf-import capture-io-mode=dmabuf ! video/x-raw,format=NV12,width=1920,height=1080,colorimetry=bt601 ! v4l2h265enc output-io-mode=dmabuf-import capture-io-mode=mmap extra-controls="cid,sequence_header_mode=1,video_gop_size=30" ! h265parse ! mux. alsasrc device=Capture_DVR_mic ! audioconvert ! lamemp3enc ! mux. mp4mux name=mux ! filesink location=/data/output%d.mp4

 

 

 

 

十、Android Studio问题解决

posted on 2023-11-14 19:43  jiyong3998  阅读(25)  评论(0编辑  收藏  举报