2014年的时候就研究过SurfaceFlinger 阅读源码多次 也没有搞得很清楚,这次帖到博客里面 做个记录.SurfaceFlingerAndroid系统里面最复杂的模块,算是个框架. 今天主要把握运行流程,从ActivtyThread.java 运行Activity 然后到Activity setContentView 的执行路线.当我们打开一个应用程序时 是通过ActivityMan
转载 2024-07-01 22:05:31
268阅读
我们需要比Tick更快的时钟,比如Tick周期时1ms,我们可以使用另一个定时器,让它发生中断的周期时0.1ms甚至更短。在FreeRTOS中,我们也可以查看任务使用CPU的情况、使用栈的情况,然后针对性地进行优化。很不精确,因为有更高优先级的任务就绪时,当前任务还没运行一个完整的Tick就被抢占了。对于同优先级的任务,它们按照时间片轮流运行:你执行一个Tick,我执行一个Tick。原理是:从栈底往栈顶逐个字节地判断,它们的值持续是0xa5就表示它是空闲的。这就是查看"任务的统计"信息。
软件安装:装机软件必备包关于电脑装机必须的软件,比如windows office系列办公软件、网页浏览器、杀毒软件、安全防护软件、刻录软件、压缩软件、下载工具、多媒体播放软件、多媒体编辑软件、输入法、图片查看和处理软件、聊天沟通工具、系统工具与驱动补丁工具等。是一款非常好用的电脑手游模拟器,不过有很多小伙伴表示在玩手游的时候会出现卡顿的情况,下面通过这篇文章给大家讲讲解决方法。类别:模拟器类 &n
先上个优化之后的fps图,丝滑流畅;具体实现请看最终优化后的app 背景:一个通讯录app(开源地址),每次登陆时,针对每个用户,如果头像图片不在本地,则生成一个异步下载任务(AsyncTask)。 tips:判断图片是否在本地,咱使用的方法:根据该图片的url,比如 截取com之后的字符串,则本地的地址是:app的包名/files/blog2015/339868/2
1. 性能优化是什么?1.1 性能优化就是发挥机器本来的性能1.2 性能瓶颈在哪里,木桶效应。 CPU占用过高1、现象重现CPU占用过高一般情况是代码中出现了循环调用,最容易出现的情况有几种:a)递归调用,退出机制设计的不够合理;b)定时器启动过频繁;c)代码出现死循环 GC频繁也可能导致CPU占用过高我用最简单的死循环来举例:while (true){ ...
转载 2023-07-21 19:04:42
335阅读
为什么要研究这个东西:在upload前先把Mat通过registerPageLocked锁定至显存中,能显著加快程序的速度。例如:先运行src_regist.create(cvSize(8192,8192),CV_16UC1); cv::gpu::registerPageLocked(src_regist);再运行 gpusrc.upload(src_regist);耗时为2ms; 但把第1步去掉
转载 2024-03-29 14:24:34
227阅读
OpenCV提供了一套高效的内存管理方案,提升了内存申请速率,减少了内存碎片,能够很好的提升程序的稳定性,同时支持线程同步。下面是对OpenCV内存管理源码中alloc.cpp的主要函数fastMalloc()和fastFree()的解读研究。1、启用内存池分配内存 OpenCV3.1中(包括之前的版本),默认是不启用内存池分配的。我的办法是对源码修改后重新编译。步骤如下: 在alloc
一、 CV_SSE系列指令集的预编译符号定义在opencv2/core/internal.hpp这个头文件中,如果你不包含这个头文件的话,把源码拷贝到自己的函数中,CV_SSE是不被定义的 下面是harrisCorner中的一部分代码 /*该函数的主要作用是利用给定的梯度协矩阵计算每一个点上的harris角点响应强度矩阵*/ static void calcHarris( const
好吧,我承认这个话题是老生常谈,我自己也在2009年刚接触性能测试时就已经开始关注并略知一二;然而,对于CPU使用率和系统负载Load的确切含义以及它们之间的关系,我相信不是每个人都说得清楚的(包括我自己)。也时常被了解性能测试的新手问道CPU使用率和Load方面的基本慨念,所以我决定还是自己写篇文章吧,让自己也梳理得更加清晰一点。   Linux系统的CPU使用率的概念是比
虚拟机给每个线程分配的内存(栈空间)是由虚拟机参数-Xss来指定的,在不同平台上对应的默认大小可以 在oracle的官方文档上查询到:-X Command-line Options 其中,Linux64位默认Xss值为256K,并非1M或10M,因为windows本身的一些限制导致,在4G的windows上线程最多也就开到300多。一个Java进程可以启动的线程数可以通过如下公式计算: (系统剩余
         优化性能一般从渲染,运算与内存,电量三个方面进行,今天开始说聊一聊Android的渲染机制,我们要知道Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,即每一帧只能停留16ms,渲染机制说完之后,然后在说如何去优化UI。 1.知识储备 CPU:
转载 2023-09-19 15:44:36
136阅读
本文涉及的源代码基于 Android-7.1.1r。一、Android GUI 框架SurfaceFlingerAndroid GUI 的核心,但是从 OpenGL_ES 的角度来看,它也只是个“应用程序”。Android 的显示系统大致框架图下图所示:GUI_STRUCT.png下面就“由下向上”来逐一分析该框架。(1) 显示驱动Linux 内核提供了统一的 framebuffer 显示驱
转载 2023-10-20 10:34:35
0阅读
Surface Manager是用户空间中framework下libraries中负责显示相关的一个模块,当系统同时执行多个应用程序时,SurfaceManager会负责管理显示与存取操作间的互动,另外也负责将2D绘图与3D绘图进行显示上的合成。1、Surface manager架构分析Android中的图形系统采用Client/Server架构,如下:Client端:应用程序相关部分。代码分为两
# Python 性能优化CPU 占用 Python 是一种简单易用的编程语言,但它的性能在某些情况下可能成为瓶颈,特别是在 CPU 占用较高的场景。为了优化 Python 程序的性能,我们可以采取多种措施。本文将探讨几种常见的性能优化方式,并附上代码示例。 ## 1. 使用合适的数据结构 选择适当的数据结构能显著提高程序的性能。例如,使用集合(set)进行查找操作要比使用列表(list
原创 10月前
72阅读
3、在存到Redis之前先把你的数据压缩下redis为每种数据类型都提供了两种内部编码方式,在不同的情况下redis会自动调整合适的编码方式。4、设置key有效期我们应该尽可能的利用key有效期。比如一些临时数据(短信校验码),过了有效期Redis就会自动为你清除!5、选择回收策略(maxmemory-policy)当Redis的实例空间被填满了之后,将会尝试回收一部分key。根据你的使用方式,强
今天tanb测试时发现192.168.1.205上MySQL经常CPU很高,占到差不多100%。期间曾多次手动重起服务恢复。 在并非存在大量外部请求的情况下,CPU过高通常是持续时间比较长的任务造成的,甚至只一个未被正确设计的任务。 用SHOW PROCESSLIST命令检查发现正在执行下面的SQL操作. 用KILL命令杀死对应进程后,CPU使用率降下来.
/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。 从proc文件中可以获取系统、进程、线程的cpu时间片使用情况,所
转载 2023-09-11 21:02:13
296阅读
最新用ffmpeg+x264编码视频,之前使用老版本的ffmpeg编码视频文件没有问题,但是换了最新的版本之后(ffmpeg版本号2.8.2),出现了编码出来的视频帧率特别大的问题。找了很久,终于解决了,在这里记录一下探索过程。首先,我设置的视频的帧率是25帧/s,但是编码出来的视频帧率则是几千,如下图所示可以看到上图的帧率和码率都是非法的值,这个是为什么呢?下面是解决过程。首先,先知道这个帧率是
转载 2024-07-19 11:36:25
113阅读
最近开始做行人检测,因此开始接触faster-rcnn,这里贴上配置教程(亲测可行),不过是基于cpu的,蓝瘦。。。参考博客:http://www.tuicool.com/articles/nYJrYra(opencv配置)              (faster-rcnn配置)环境:ubuntu16.04一、首先要
转载 2024-08-22 11:40:26
177阅读
文当我们cpu使用率高的情况下会出现什么情况?我们访问程序的速度比较慢,运行时间长。系统崩溃,无法访问程序。什么情况会导致Java应用程序的CPU使用率飙升?解决这个问题之前我们先了解几个知识点:1.如何计算CPU使用率?CPU%= 1 - idleTime / sysTime * 100idleTime:CPU空闲的时间sysTime:CPU处于用户模式和内核模式的时间总和2.与CPU使用率有关
转载 2024-08-30 13:53:28
309阅读
  • 1
  • 2
  • 3
  • 4
  • 5