启动查看工具总结

启动目标:2s内优秀,2-5s普通,之后的都需要优化,热启动则是1.5s-2s内

1 看下大致串联启动流程:


 App 进程在 Fork 之后,需要首先执行 bindApplication 
Application 的环境创建好之后,就开始activity的启动

Activity 的生命周期函数会在 Activity 组件创建的时候执行,包括 onStart、onCreate、onResume ,然后还要经过一次 Choreographer.doFrame 的执行(包括 measure、layout、draw,animation,input)以及 RenderThread 的初始化和第一帧任务的绘制,
再加上 SurfaceFlinger 一个 Vsync 周期的合成,应用第一帧才会真正显示

2 使用技巧:

  首先抓取systrace 查看进程是否占用率过高,过高的话,就看下线程是不是太多了,不多的话,就是系统的原因了。再看下uithread线程哪里耗时比较大的,可以考虑下面方案:

要按顺序执行,影响依次降低。

1 是否可以放到子线程

2 是否可以延时加载

3 代码里优化主线程耗时部分

4 代码里优化子线程耗时部分(cpu占用高的话,尤其明显)

5 优化内存(内存大了,影响cpu调度)

到此就结束了。

代码里优化具体比如:
循环体里面尽量不要用临时局部变量,能用局部变量的不用成员变量
尽量减少一次性初始化N多大数据量,容易造成GC,并且卡顿
采用SurfaceView在子线程刷新UI, 避免手势的处理和绘制在同一UI线程
使用增强for循环
如:Set<Object> set = new HashSet<Object>();
移位操作替代乘法

慎用shareprefercnce,因为对于同一个sp,会将整个xml文件载入内存

protobuf可以比xml省30%内存

数据库字段尽量精简,只读取所需字段

有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右

慎用第三方库,会引入一些不必要的代码

模糊,动画这些都是比较耗内存的操作,Material Design这种设置为纯色背景风格往往可以节省不少内存

一些后台缓存的页面(view,fragemnt等能占用内存用户又无法感觉到的)可以保留数据,将页面对应的图片数据,动画资源进行释放,下次再来的时候,从新加载

耗内存的放到native里面

工具现在一个android profile就可以了,再加adb 命令吧
具体android profile 都有替代了,可以完全用一个工具来搞一切
我就不一一总结了,详细记录见:https://blog.csdn.net/qq_20451879/article/details/121426183
但使用方式,我会稍后写出来,暂时觉得,systemtrace, prof文件对单纯app不实用,直接抓取 java 的method trace 或java的新增对象内存更好一些。

如下图:

卡顿我是没有经验的,平时用不着啊,卡的狠了,就anr了,不狠就不用管 。这里只能浅显的记录下,不过我开始技术储备一下了

3 systrace使用技巧:


1 通过在时间间隔周围绘制一个矩形来选择所需的时间间隔。
2 使用标尺工具标记或突出显示问题区域。
3 依次点击 View Options > Highlight VSync,以显示每项显示屏刷新操作。
4 如果觉得页面中的信息太多了,想要筛选,可以点击Processes菜单,在弹出列表中进行筛选
Systrace 报告列出了渲染界面帧的每个进程,并指明了沿时间轴渲染的每个帧
点击某个帧圆圈可将其突出显示,并提供有关系统为渲染该帧所做工作的其他信息,包括提醒。
此报告还会显示系统在渲染该帧时执行的方法。您可以调查这些方法以确定界面卡顿的可能原因

### 回答1: 要查看ClickHouse的启动状态,可以执行以下命令: ``` sudo systemctl status clickhouse-server ``` 该命令将显示ClickHouse服务器的启动状态。如果服务器正在运行,它将显示“active”状态。如果服务器已停止,它将显示“inactive”状态。如果出现错误,则会显示相关的错误消息。 ### 回答2: 要查看Clickhouse的启动状态,可以按照以下步骤进行操作: 1. 首先,确保已经在服务器上安装并配置了Clickhouse。启动Clickhouse服务之前,需要在配置文件中进行相应设置,如指定数据存储位置、监听端口等。 2. 打开终端或命令提示符,登录到Clickhouse所在的服务器上。 3. 输入以下命令来启动Clickhouse服务: ``` sudo systemctl start clickhouse-server ``` 这会使用系统的启动管理工具(如systemd)来启动Clickhouse服务。 4. 等待一段时间,以确保Clickhouse服务已经完全启动启动时间可能会因为不同硬件和配置而有所差异。 5. 输入以下命令来查看Clickhouse的启动状态: ``` sudo systemctl status clickhouse-server ``` 这会显示Clickhouse服务的详细信息,包括运行状态、进程ID以及最后的几行日志。 通过查看服务状态,您可以确认Clickhouse是否正在运行,并且可以检查任何可能的错误或警告消息。如果服务处于活动状态并且没有任何错误或警告,说明Clickhouse已经成功启动。 请注意,如果您使用的是不同的操作系统或Clickhouse的不同发行版本,上述命令可能会有所不同。在使用时请参考相关文档或操作指南,以确保正确查看Clickhouse的启动状态。 ### 回答3: 要查看Clickhouse的启动状态,可以按照以下步骤进行操作: 1. 首先,确保Clickhouse已经成功安装和启动。可以通过终端输入以下命令来检查Clickhouse的启动状态: ``` sudo service clickhouse-server status ``` 2. 如果服务正在运行,则会显示“正在运行”,如果服务未运行,则会显示“未运行”。如果服务未运行,可以使用以下命令启动Clickhouse服务: ``` sudo service clickhouse-server start ``` 3. 如果需要进一步查看Clickhouse的详细启动状态信息,可以通过以下命令查看系统日志: ``` tail -f /var/log/clickhouse-server/clickhouse-server.log ``` 4. 这将显示Clickhouse的启动日志,您可以根据需要检查任何错误信息或查看成功启动的日志信息。 总结:要查看Clickhouse的启动状态,可以通过检查Clickhouse服务的运行状态以及查看系统日志来确定服务是否成功启动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值