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

博物馆网站建设方案报价2022网络热词30个

博物馆网站建设方案报价,2022网络热词30个,常州手机网站开发,wordpress图片500SurfaceFlinger及Android应用RenderThread角度观察Jank丢帧卡顿 CPU、GPU、Display 三个部分:CPU 负责计算帧数据,把计算好的数据交给 GPU,GPU 会对图形数据进行渲染,渲染好后放到 buffer (图像缓冲区)存起…

SurfaceFlinger及Android应用RenderThread角度观察Jank丢帧卡顿


CPU、GPU、Display 三个部分:CPU 负责计算帧数据,把计算好的数据交给 GPU,GPU 会对图形数据进行渲染,渲染好后放到 buffer (图像缓冲区)存起来,然后 Display (屏幕或显示器)把 Buffer呈现到屏幕。
Google 在 Android 4.1 系统中对 Android Display 系统进行了重构,引入了 Project Butter(黄油计划):在系统收到 Vsync 信号后,上层 CPU 和 GPU 马上进行下一帧画面数据的处理,完成后及时将数据写入到 Buffer 中,Google 称之为 Drawing with Vsync。
在ViewRootImpl中完成对界面的measure、layout和draw等绘制流程后,用户依然还是看不到内容,因为Android系统的显示流程除了UI 线程的绘制外,还需要经过RenderThread线程的渲染处理,渲染完成后,还需要通过Binder调用“上帧”交给surfaceflinger进程进行合成后才能最终显示到屏幕上。
Android应用渲染流程中,应用扮演的是生产者角色,SurfaceFlinger扮演的是消费者,工作的流程如下:
应用在开始绘制渲染之前,需要通过调用dequeueBuffer从SurfaceFlinger管理的BufferQueue 申请一处于free状态的可用Buffer,如果此时没有可用Buffer则阻塞等待;
应用拿到可用的Buffer后,使用GPU绘制渲染,渲染完成后再通过Binder调用queueBuffer将数据返回给应用进程对应的BufferQueue,如果是 GPU 渲染的话,这里还有个 GPU处理的过程,所以这个 Buffer 不会马上可用,需要等 GPU 渲染完成的Fence信号,并申请sf的Vsync-sf唤醒消费者SurfaceFlinger进行消费;
SurfaceFlinger 收到 Vsync-sf 信号之后,开始准备合成,使用 acquireBuffer获取应用对应的 BufferQueue 中的 Buffer 并进行合成操作;
合成结束后,SurfaceFlinger 调用 releaseBuffer将 Buffer 置为可用的free状态,返回到应用对应的 BufferQueue中。
从 SurfaceFlinger 角度来说,在 App 连续的动画或者手指滑动列表时(关键是连续),如果有一个 Vsync 到来时候 ,App 没有可以用来合成的 Buffer,那么这个 Vsync 周期 SurfaceFlinger 就不会走合成逻辑(或者是去合成其他的 Layer),那么这一帧就会显示 App 的上一帧的画面,这里发生了卡顿;
从App的角度来看,如果渲染线程在一个 Vsync 周期内没有 queueBuffer 到 SurfaceFlinger 中 App 对应的 BufferQueue 中,那么我们认为这里发生了卡顿。
如果线程Running时长过长导致运行变慢,最终出现上帧超时而掉帧,就需要结合具体tag信息查看到底在执行什么逻辑,然后结合自身的代码实现看是否可以优化。或者看看当前JIT线程任务是否繁忙,判断是否是因为应用没有被及时编译成机器码而导致运行时长过长。
出于功耗节能的原因,VSYNC-sf与VSYNC-app并不一定会固定不停触发。如果app或sf并没有刷新画面的需求,那么触发信号进行绘制和合成是不必要的(功耗)。触发VSYNC-sf和VSYNC-app的两个EventThread会在requestNextVsync调用后才会将下一个VSYNC-sf或VSYNC-app发出。因此,当(各自EventThread)requestNextVsync没有调用时,VSYNC-app和VSYNC-sf也就出现异常。BufferQueueLayer::onFrameAvailable会在应用提交后调用,该方法通过调用SF的signalLayerUpdate触发产生下一个VSYNC-sf。

Android trace presentFence屏幕显示的帧-CSDN博客文章浏览阅读807次,点赞20次,收藏21次。在Android系统中,presentFence是屏幕显示帧的关键信号,当帧成功显示时,presentFence会发出信号。FrameMissed、GpuFrameMissed和HwcFrameMissed表示上一次合成的结果,SurfaceFlinger在每次被Vsync-sf唤醒时会检查上一次合成的presentFence是否已发出信号,若未发出则认为是帧丢失。BufferTx在queueBuffer后增加,在SurfaceFlinger合成时减少,其内有可用Buffer时,SurfaceFlinger https://blog.csdn.net/zhangphil/article/details/148099387


文章转载自:

http://SXhlRiUz.yrmgh.cn
http://PVhJXbNQ.yrmgh.cn
http://nAMf8RoB.yrmgh.cn
http://uVGBcYM1.yrmgh.cn
http://fL3wWsu8.yrmgh.cn
http://lT2ul0CP.yrmgh.cn
http://2lqohQdB.yrmgh.cn
http://10AEy92p.yrmgh.cn
http://2x2vVuHV.yrmgh.cn
http://0N05BjA3.yrmgh.cn
http://5oD7itwG.yrmgh.cn
http://IlLIMRoT.yrmgh.cn
http://Lmh1DhxG.yrmgh.cn
http://2evpRgVo.yrmgh.cn
http://l1wN2R7l.yrmgh.cn
http://5tcubXFp.yrmgh.cn
http://3pucQ0bk.yrmgh.cn
http://ubo79HFN.yrmgh.cn
http://oriahgcE.yrmgh.cn
http://UKk5jcAw.yrmgh.cn
http://5SiHUIIN.yrmgh.cn
http://RjoODSAM.yrmgh.cn
http://qTVNTrCL.yrmgh.cn
http://zw1Ux50m.yrmgh.cn
http://Y0bkddkj.yrmgh.cn
http://4EKEb1Cu.yrmgh.cn
http://ASk5ZRSW.yrmgh.cn
http://6koO7SNh.yrmgh.cn
http://kTpDaeZm.yrmgh.cn
http://brAqzo5s.yrmgh.cn
http://www.dtcms.com/wzjs/616083.html

相关文章:

  • 哈尔滨网站开发电话word做网站
  • h5网站和传统网站优化排名软件
  • 国外html5网站模版低代码开发平台免费
  • 《网页设计与网站建设》A卷答案wordpress伪静态不收录
  • 西安网站建设推广专家苏州工业园区公共资源交易中心
  • 网站的作用和意义资中做网站多少钱
  • 南宁企业建站泌阳专业网站建设
  • 哈尔滨微网站建设手机上如何做网站
  • 让iis做跳转网站更改各网站企业信息怎么做
  • 郓城做网站网络公司网站建设模版
  • 免费网站建设社区网业协同是什么意思
  • 龙江网站设计雷州网站建设
  • 做外语网站的公司王也的配音员是谁
  • 烟台网站制作开发怎样开通微信公众号平台
  • 网站空间名词解释百度小说排行榜2019
  • 购物网站备案镇江百度优化
  • 做课件用这15大网站深圳网站建设前十名
  • 温州网站域名注册服务公司潍坊英文网站建设
  • 免费的购物网站源码网站设计流程的步骤
  • 长沙市网站制作哪家好wordpress mip手机主题
  • 唐山网站优化软件网站的服务器
  • 上海市城乡建设网站万网网站备份
  • 贸易公司做网站有优势吗企业咨询公司取名
  • 网站建设自身优势的分析南昌地宝网app
  • 哪个网站名片做的号怎么做捐款网站
  • 高大上的自助建站网站如何建设企业的网站
  • 手机建公司网站网站该怎么做
  • 江苏省住房保障建设厅网站织梦m网站伪静态
  • 自己做服务器和网站山东一建建设有限公司网站
  • 谷歌怎么做公司网站对网站进行seo优化