抖音卡顿原因性能分析案例

最近刷抖音,发现刷的时间久一点就能感觉到明显卡顿,严重影响使用,需要强杀APP才行。偶尔一次还好,次数多了,一方面影响了使用体验,一方面出于安卓开发的职业,手机性能也不低,跑的也是大厂APP,为什么会有这么明显的卡顿呢。比较好奇到底是什么原因导致的,本文就来分析一下,当做性能优化的练习题。   因为我用的是小米手机,使用的澎湃系统。 因为是新系统,一开始怀疑是系统方面有BUG。首先手机配置不算低,料想CPU没问题,看了下16内存还有7G剩余也是足够,1T空间还有一半没用,也不会是IO瓶颈。那只能是CPU调度上有问题,之前也看过一个关于小米手机的性能优化案例,因为CPU对进程调度以及系统刷新优化方面缺陷,会导致APP卡顿。具体来说就是将应用主线程调度到小核上了,小核的频率也没有以最高频率问题,也就是摆核问题。然后就想开启小米手机的性能模式,这...

docker镜像源可用性在线检测

介绍 docker镜像源国内目前很多都失效了。网上也有各种替代方法,有的比较麻烦,最方便的还是替换可用的镜像源。 但是网上找的镜像源不知道什么时候就失效了,需要反复尝试。 针对上面问题,开发了一个网站,用来在线检测docker镜像源的可用性。 测试可用再配置,这样就不怕了,可以说是目前最方便的解决docker镜像下载问题的方法。     具体使用 https://docker.jhjy.pw/ 访问检测网站 将镜像源url每行一个填入下面,点击检查 就会将可用的镜像源显示出来了     有可用的镜像源可以在公众号留言 docker镜像源可用性在线监测     结语   另外我建了一些程序员交流群,感兴趣可以加我微信好友: weichenAndroid 给我留言进入相应的交流群...

窗口拆分可拖动布局组件splitpanes

介绍 官网和文档 https://github.com/antoniandre/splitpanes https://antoniandre.github.io/splitpanes/ 这个组件能实现上面效果,窗口任意拆分,拆分完还可以拖动来改变每个布局的大小。 还是响应式的 类似android中的weight布局方式,甚至更好用一些 安装 npm i splitpanes import { Splitpanes, Pane } from 'splitpanes' import 'splitpanes/dist/splitpanes.css' 使用 安装好之后就可以直接import使用了 <template> <splitpanes class="defaul...

Vue3增删改查demo源码

介绍 一个vue纯前端的增删改查的demo源码 用来学习vue的一些组件和功能非常不错,实现的功能也是很实用的 毕竟UI仔最常见的操作就是增删改查 项目教程来自B站,原本也配套了源码。 https://space.bilibili.com/94560450/channel/collectiondetail?sid=582261&spm_id_from=333.788.0.0 https://github.com/yanmiao99/vue3-go-crud-project 不过源码实际跑的时候发现after源码又增加了后端的go接口的代码不能直接运行了 before的源码没有go接口,但是也有一些bug跑不起来。 我将源码改了改,纯前端,clone之后直接npm install,npm run dev就可以运行了 项目具体介绍 支持增加item,删...

vue3开箱即用的demo源码

介绍 本文分享自用的vue3项目开箱即用的源代码 常用的依赖已经安装好了, 包括element-plus,route,axios的get,post,stream接口 pinia,pinia持久化,tailwindcss 一个左右布局的vue组件 启动以后类似如下 源码地址 https://gitcode.com/atandroid/vue3BaseDemo/overview git提交记录 ...

pinia与cookie的同步工具类

介绍 有时候pinia的store状态需要与cookie同步,比如用户信息 这里提供一个方便的工具类 使用 cookie.js工具类 //设置cookie,增加到vue实例方便全局调用 //vue全局调用的理由是,有些组件所用到的接口可能需要session验证,session从cookie获取 //当然,如果session保存到vuex的话除外 //全局引入vue var cookie={ setCookie (c_name, value, expiredays){ var exdate = new Date(); exdate.setTime(exdate.getTime()+expiredays); exdate.setDate(exdate....

Vue的路由组件Router的基本使用

安装和注册 官方文档 https://router.vuejs.org/zh/introduction.html npm i vue-router "vue-router": "^4.3.0" main.js中注册 import router from './router' 定义路由 import { createRouter, createWebHistory } from 'vue-router' import HomeView from '../components/HomeView.vue' import AboutView from '../components/AboutView.vue' ...

vue接口请求库axios,fetch的使用

介绍 本文介绍一下axios的安装,配置,get,post和stream用法(封装方式),拦截器用法 安装 npm install axios "axios": "^1.6.8", request封装 request.js主要是对axios进行基本配置 import axios from 'axios' export const API_BASE_URL = "http://192.168.68.92:16603"; const service = axios.create({ //url = base url + reqeust url baseURL : API_BASE_URL, //配置请求超时时间 ...

element-plus的Menu菜单

介绍 Menu菜单用来做标题头还是蛮方便的。 https://element-plus.org/zh-CN/component/menu.html 本文介绍一下基本使用 基本使用 <template> <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" :router="true" > <el-menu-item index="/">Home</el-menu-item> <...

wxPython开发桌面应用简介(源码)

安装 本文简单介绍一下wxpython开发桌面应用 pip install wxPython pillow==10.3.0 six==1.16.0 wxPython==4.2.1 开发 # 简单的弹窗应用 import wx class MyFrame(wx.Frame): def __init__(self): super().__init__(None, title="Hello wxPython", size=(300, 200)) panel = wx.Panel(self) btn = wx.Button(panel, label="Click Me!", pos=(100, 50)) btn.Bind(wx....

登录

忘记密码 ?

切换登录

注册