排序
“雪糕刺客”你听说过,Bitmap这个“内存刺客”你也要小心(上)~
写在前面 雪糕刺客是最近被网友们玩坏了的梗,指的是那些以平平无奇的外表混迹于众多平价雪糕之中的贵价雪糕。由于没有明确标明价格,通常要等到结账的时候才会发现,犹如一个潜藏于普通人群中...
分布式服务高可用实现:复制 | 京东物流技术团队
1. 为什么需要复制 我们可以考虑如下问题: 当数据量、读取或写入负载已经超过了当前服务器的处理能力,如何实现负载均衡? 希望在单台服务器出现故障时仍能继续工作,这该如何实现? 当服务的...
我只想使用will-change,又有什么错?
前言 will-change 一个既陌生又熟悉的属性,以前在使用这个属性的时候,单纯是因为要做性能优化,加上will-change会使得动画变得流畅一些,但是实际上到底是什么原因导致加上will-change就能使...
前端性能优化之虚拟列表
性能优化之虚拟列表 场景 尽管接口做了分页处理,但请求次数过多时,页面渲染的结构即长列表,会造成性能损耗。 描述 虚拟列表,就是让数据在固定个数的结构上渲染,结构不发生改变,而对应结构...
Native内存泄漏一步查
虚拟内存也会被耗尽 作为Android开发者的我们,一定经历过APP从32位从64位架构的切换。目前国内市场还是存在32架构的要求的,并没有全面禁止,32位架构有一个缺点是,可分配给用户空间的虚拟内...
Android平台下的cpu调频、线程绑核、cpu时间片分配控制实践
背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的资源使用、以及在多线程环境下如何提高关键线程的执行优先级做了技术调研。本文是对技术调研过程的阶段性总结,将分别介绍普通应用如...
iOS安装包大小优化笔记
一.前言 App安装包日益增大原因 随着技术飞速发展,功能不断迭代,APP不断更新和改版,越来越大、越来越全,因此造成了app安装包的不断膨胀。 新功能的增加:新的功能需要更多的代码和资源来实...
APM – iOS 卡顿监控 Hitch
简介 卡顿的定义有多种,按照卡住的程度排列的话,有这么几种,从ANR到Hitch,本文主要描述Hitch,Render Loop以及如何发现和修复Hitch。 Hitch hitch代表任何时候一帧比预期的晚出现在屏幕上,...
iOS项目运行时XCode内存暴涨、速度慢、卡的解决过程
XCode老罢工 从今年开始,项目中一个组件的主工程在开发过程中,运行编译时间耗时长,XCode是不是都会转菊花,平均每次编译的时间大概在5min左右,非常影响开发效率,今日刚好提测完,抽空仔细...
Android更新优化 – 增量更新是如何节省用户时间和流量的
增量更新和全量更新 我想玩过大型手游的人都知道,手游的安装包非常大,因为资源图片众多。而你每次更新都把所有文件都更新下来,是非常耗时的,对吧。耗时是一个方面,有些人在户外开的是移动...
性能优化|记一次线上OOM问题处理
概述 最近线上监控发现 OOM 涨幅较大,因此去尝试定位和修复这个问题,在修复了一些内存泄漏和大对象占用问题后, OOM 依旧未达到正常标准,在这些新上报的 hprof 文件中,发现几乎所有 case 中...
性能优化之详解各种指标
前言 上篇文章最后提到了我们可以通过performance的一些属性对性能做统计,我们会发现performance对象下有非常多的属性,远不止上篇文章提到的DOMContentLoaded与Load这两个事件。 或许你在浏览...
手把手教你完成前端性能建模
1. 性能工程几个定律 帕累托法则 常说的“二八法则”,很多时候,大约20%的因素操控80%的局面。 应用场景内容意义应用程序的使用80%的用户使用集中在大约20%的功能对常用的模块进行充分优化程序...
这么好的Android开发辅助工具App不白嫖可惜了
过年期间闲来没事,手撸了一个辅助Android开发调试的工具App,适合Android开发者和测试同学使用。 Github地址下载, Gitee地址下载(需要登录gitee) 或者去Google Play安装 功能概览 对我这样的懒...
【Linux性能】Linux cache占用大量内存,如何分析是哪些进程、文件导致?
一、问题由来 我们使用Linux时,时常发现,cache占用大量内存。 如下面的示例,通过free命令查询内存情况,buff/cache已经占用了2.1G。Linux 2.4 开始, 'buffer' 和 'cache' 已经被统一为页缓...
为什么我重新写了一个 "react-lodable" ?
简单来说是为了通过配置 webpack 插件及少量业务代码即可实现Code Splitting + 组件懒加载 + 预加载。 虽然react官方提供了一个 lazy API用于 react 组件的Code Splitting(代码拆分)及组件懒加...
大厂面试必问:如何设计一个扛高并发的系统?
前言 大家好,我是路由器没有路。 三年前,我曾前往字节跳动参加面试。在三面面试环节中,我遇到了一道场景设计题目:如何设计一个高并发系统? 当时我的回答比较简略,但最近我朋友在准备面试...
速度优化:CPU 优化(下)
上一章我们详细介绍了线程池,通过合理地使用线程池,能有效发挥 CPU 的利用率,提升应用速度。此外,我们还有很多方式可以用来提升 CPU 的利用率。这一章我们就接着来介绍两种方案:充分利用 C...
IO密集型服务提升性能的三种方法
大部分的业务系统其实都是IO密集型的系统,比如像我们面向B端提供摄像头服务,很多的接口其实就是将各种各样的数据汇总起来,展示给用户,我们的数据来源包括Redis、Mysql、Hbase、以及依赖...