当前位置: 首页 > wzjs >正文

360浏览网页入口网站seo优化网站

360浏览网页入口,网站seo优化网站,广西做网站建设的公司,武汉有那些做网站设计的公司【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:相机Camera日志分析之二十三:高通相机Camx 基于预览1帧的process_capture_request二级日志分析详解 这一篇我们开始讲: 相…

【关注我,后续持续新增专题博文,谢谢!!!】

上一篇我们讲了相机Camera日志分析之二十三:高通相机Camx 基于预览1帧的process_capture_request二级日志分析详解

        这一篇我们开始讲 相机Camera日志分析之二十四:高通相机Camx 基于预览1帧的process_capture_request三级日志分析详解

目录

一、背景

二、:process_capture_request三级日志如下

三、:process_capture_request三级日志分析详解

四、:process_capture_request三级日志关键字

五、:总结


一、背景

1:【效率决定成长空间】无论什么开发,分析日志是解决问题的法宝。且是最有效最常用的调试工具,特别是在Android或Linux领域下,log分析是开发必备技能,然而log分析效率参差不齐,你分析一份日志要一天,别人分析只需要一个小时,作何感想?别人一年的学习成果可能是你几年才能学会。

2:【巨量日志降低了开发效率】接触过Android日志,就清楚日志量非常大。几十个进程几百个线程同时并行打印日志。而Camera领域日志量极大,因为预览一般是每秒30帧的日志量,录屏一般是每秒60帧的日志量,少则几万行日志,多则几十万行日志,更多则多个日志总量几百万行日志。

3:【日志梯度分级来提效】开发追求效率,如何快速有效挖掘出问题,并如何解决问题变得尤为重要。此专题将以梯度分级日志来分析日志,让日志流程变得简单化,提高解决问题的效率。

4:【举一反三】当前以高通CamX架构为例讲解Camera日志,方式通用,其他领域模块均可效仿借鉴。

5:【开发思维决定成长高度】当前讲述的是Camera领域log分析梯度分级讲解,讲究的是一种分析技巧,分析思维,一种感悟。技术路线的提升空间,需要更多开发技巧和开发学习能力去提升。技术大拿分析问题,可以从日志快速定位问题并解决问题,有充分的时间去学习更多知识,成长速度极快。同一起跑线,学习能力,开发效率等等都决定了程序员的成长提升空间。记得我毕业三年,同学之间的差距无限拉大,一些人还在几千块薪水,你已经是他的四五倍了,人与人的差距就是短短几年就拉开了。

二、:process_capture_request三级日志如下

PS:搜索类似【Start proc】中括号就有颜色体现了。

这里添加了【 关键字,过滤的是核心简化的核心流程日志过程,更加直观调用整个流程。

(由于request日志量太大,就不贴二级日志,单独贴三级日志了)

CamX    : [ERROR][SENSOR ] camxsensornode.cpp:3280 LoadSensorConfigCmds() 【Streamon configuration successful!】【sersor xml Streamon配置成功】
CamX    : [ERROR][SENSOR ] camxsensornode.cpp:3280 LoadSensorConfigCmds() 【Streamon configuration successful!】【sersor xml Streamon配置成功】
CamX    : [ERROR][CHI    ] camxchinodewrapper.cpp:2533 PrepareStreamOn() Node::ZSLPreviewRaw_ChiNodeWrapper0 Comp::com.qti.node.memcpy Prepare stream on
CHIUSECASE: [FULL   ] chxextensionmodule.cpp:2926 GetNumPCRsBeforeStreamOn() EarlyPCR: chiextensionModule 0
CamX    : [ERROR][HAL    ] camxchi.cpp:2342 ChiActivatePipeline() : 
CamX    : [ERROR][HAL    ] camxsession.cpp:1314 【StreamOn()】【传递到session去上电】 : 
CamX    : [ERROR][HAL    ] camxpipeline.cpp:500 StreamOn() : 
CamX    : [ERROR][CORE   ] camxpipeline.cpp:527 【StreamOn()】 【ZSLPreviewRaw_0】【传递到pipeline去上电】 【StreamingOn】 for pipeline: 0x74a97fe000
CamX    : [ERROR][CHI    ] camxchinodewrapper.cpp:2554 OnStreamOn() Node::ZSLPreviewRaw_ChiNodeWrapper0 Comp::com.qti.node.memcpy On stream on
CamX    : [ERROR][HAL    ] camxchi.cpp:2418 ChiSubmitPipelineRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 【SetupRequest()】【Request传递到node】 : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxchi.cpp:2418 ChiSubmitPipelineRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 SetupRequest() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 【DispatchReadyNodes()】 :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 【DeferredWorkerWrapper()】【该方法是m_hDeferredWorker线程的处理函数,主要用于处理需要下发request的Node,同时再次更新依赖项,最后会再次调用DispatchReadyNodes开始处理。】 : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 【DeferredWorkerWrapper()】【该方法是m_hDeferredWorker线程的处理函数,主要用于处理需要下发request的Node,同时再次更新依赖项,最后会再次调用DispatchReadyNodes开始处理。】 : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][CORE   ] camxdeferredrequestqueue.cpp:1083 DispatchReadyNodes() Post job for NodeName:【【AutoFocus:0】】, request 36
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxchi.cpp:2418 ChiSubmitPipelineRequest() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 DeferredWorkerWrapper() :

三、:process_capture_request三级日志分析详解

CamX    : [ERROR][SENSOR ] camxsensornode.cpp:3280 LoadSensorConfigCmds() 【Streamon configuration successful!】【sersor xml Streamon配置成功】
CamX    : [ERROR][HAL    ] camxsession.cpp:1314 【StreamOn()】【传递到session去上电】 : 
CamX    : [ERROR][CORE   ] camxpipeline.cpp:527 【StreamOn()】 【ZSLPreviewRaw_0】【传递到pipeline去上电】 【StreamingOn】 for pipeline: 0x74a97fe000
CamX    : [ERROR][HAL    ] camxnode.cpp:1442 【SetupRequest()】【Request传递到node】 : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 【DispatchReadyNodes()】 :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 【DeferredWorkerWrapper()】【该方法是m_hDeferredWorker线程的处理函数,主要用于处理需要下发request的Node,同时再次更新依赖项,最后会再次调用DispatchReadyNodes开始处理。】 : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:356 【DeferredWorkerWrapper()】【该方法是m_hDeferredWorker线程的处理函数,主要用于处理需要下发request的Node,同时再次更新依赖项,最后会再次调用DispatchReadyNodes开始处理。】 : 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][CORE   ] camxdeferredrequestqueue.cpp:1083 DispatchReadyNodes() Post job for NodeName:【【AutoFocus:0】】, request 36
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:662 AddDeferredNode() : 【增加延期的node,mark当前camxnode和requestId绑定在一起】
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
CamX    : [ERROR][HAL    ] camxdeferredrequestqueue.cpp:1010 DispatchReadyNodes() :【派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 

四、:process_capture_request三级日志关键字

IsPipelineActive|ChiActivatePipeline|StreamOn|SubmitPipeline|SetupRequest\(\)|AddDeferredNode|DispatchReadyNodes|PostJob|DeferredWorkerWrapper

五、:总结

当前日志为process_capture_request的node核心过程,涉及:

  1. 激活pipeline后需要StreamOn
  2. 然后SetupRequest到node
  3. 在node里的处理主要由DRQ来管理,核心两个函数是:
    1. DispatchReadyNodes派发准备node处理,每个请求都会访问所有节点,也可以忽略某些请求不需要的节点】 
    2.  【DeferredWorkerWrapper该方法是m_hDeferredWorker线程的处理函数,主要用于处理需要下发request的Node,同时再次更新依赖项,最后会再次调用DispatchReadyNodes开始处理。

【关注我,后续持续新增专题博文,谢谢!!!】

下一篇讲解:

http://www.dtcms.com/wzjs/15130.html

相关文章:

  • 广东东远建设工程管理有限公司网站什么是seo优化推广
  • 西安网站开发工程师招聘惠州seo计费
  • 网站商城建设合同免费下载优化生育政策
  • 手机网站seo教程互联网广告管理暂行办法
  • 改进网站建设广告主资源哪里找
  • 龙岩做网站开发哪家公司好温州seo外包公司
  • 广东哪家网站建设网页设计服务学网络营销好就业吗
  • wdcp网站迁移seo成创网络
  • 互联网网站开发有哪些职位网店运营与管理
  • 网站模板psd深圳seo优化公司
  • 做网站合肥哪家公司好优化营商环境发言材料
  • wordpress theme check平台seo
  • wordpress图文播放免费手机优化大师下载安装
  • 上海网站开发哪家好宁波网络推广公司有哪些
  • 营销智库网站百度搜索引擎优化的方法
  • 企业官方网站建设运营方案天津seo公司
  • 网站做代理服务器seo技术最新黑帽
  • 如何免费做网站江苏短视频seo搜索
  • 用sql2000做网站培训心得简短200字
  • 做国外的网站有什么不用钱的企业品牌推广
  • 怎么做能让网站尽快收录营业推广是一种什么样的促销方式
  • 怎样可以提升自己的网站seo研究中心好客站
  • 汽车配件网站建设淘宝关键词优化怎么弄
  • 网站开发过程中遇到的问题百度收录入口在哪里
  • 公安网站 模板热门搜索排行榜
  • 爱做网站免费app推广方案
  • 做网页设计网站有哪些第三方营销平台有哪些
  • 自己搭建vps上外网北京seo服务行者
  • 网站首页客服qq做超链接自媒体账号申请
  • 浙江网站制作公司水果店推广营销方案