Android 加载图片占用内存分析
不同android版本,对一张图片的内存处理方式是不一样的,使用不正确会导致OOM的发生,这篇文章带你梳理内存占用情况,选择适合你的图片加载模式,解决OOM问题
Tomcat 9.0.26 高并发场景下DeadLock问题排查与修复
本文主要针对deadlock问题进行分析以及通过使用Apache提供的新patch进行验证。
浅谈移动端过长文本溢出显示省略号的实现方案
本文通过图文并茂的方式,由浅入深地讲述了多种文本过长场景下显示省略号的背景和解决方案。
OpenTSDB 数据存储详解
OpenTSDB使用范围越来越广,那么OpenTSDB是如何保存这些时序数据的呢,让我们一探究竟。
前端质量提升利器-马可代码覆盖率平台
马可平台是前端集成代码覆盖率平台,支持实时报告,增量报告,支持一键无侵入接入,并和Git、消息集成打通,实时渲染报告大屏。为业务提供一站式代码覆盖率管理服务,打造独有的沉浸式代码覆盖率体验平台。
2D+1D | vivo官网Web 3D应用开发与实战
文章介绍了vivo官网在3D数据可视化方面的探索和实战,通过阅读本文,读者可以了解并掌握Web3D应用开发的基本原理和实战经验。
Java ConcurrentHashMap 高并发安全实现原理解析
深挖JavaConcurrentHashMap高性能和线程安全的底层支撑,运用并发和线程安全的基本理论验证其为何这么设计,以及如何保证安全。
图解 Promise 实现原理(三)—— Promise 原型方法实现
本系列文章由浅入深逐步实现Promise,并结合流程图、实例以及动画进行演示,达到深刻理解Promise用法的目的。
搜索和其他机器学习问题有什么不同?
机器学习排序(Learningtorank)将搜索转化为机器学习问题,在本文中,我想找出搜索与其他机器学习问题不同的原因,如何将搜索排名作为机器学习或者是分类和回归问题?我们将通过两种方法,对机器学习排序方法的评估有个直观的认识。
反应式编程 RxJava 设计原理解析
本篇文章主要聚焦对RxJava中几种主要的设计模式的理解,通过梳理Observable的相关类图以及讲解这些类之间的关系,让大家能够更清晰的理解RxJava中事件驱动的工作原理。
【大数据】SparkSql连接查询中的谓词下推处理(一)
SparkSql是架构在Spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂查询处理,提供的DSL可以直接使用scala语言完成Sql查询,同时也使用thriftserver提供服务化的Sql查询功能。
深入浅出负载均衡
负载均衡是高并发、高可用系统必不可少的关键组件,目标是尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性。本文先介绍负载均衡的作用以及技术分类,接下来详细介绍负载均衡的常见算法特性及具体实现。通过这些内容,能够帮助读者对负载均衡的特性及原理有一个较为全面的认知。
深入理解netty---从偶现宕机看netty流量控制
Netty是一款高性能网络IO框架,本文结合线上长连接真实案例,深入讲述Netty的流量控制原理以及问题解决的思路和步骤。
vivo 微服务 API 网关架构实践
基于Zuul2进行定制化改造,打造一个功能齐全的业务网关。
Sentinel 是如何做限流的
本文主要介绍了阿里巴巴提供的Sentinel的限流功能。通过源码阅读,探究Sentinel限流功能的底层实现原理,讲解了Sentinel的责任链模式及滑动窗口限流算法。通过本文的学习,可以了解Sentinel限流功能的具体实现原理,指导我们对Sentinel的使用,通过Sentinel提供的限流能力
vivo 全球商城:架构演进之路
讲述vivo官方商城从单体应用到具备综合能力电商平台的演进,系统架构往服务化、中台化变迁历程。
如何编写高质量的 JS 函数(2) -- 命名/注释/鲁棒篇
此篇将会从函数的命名、注释和鲁棒性方面,阐述如何编写高质量的JS函数。
Android 原生 SQLite 数据库的一次封装实践
本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。
2021年vivo互联网技术最受欢迎文章TOP25
岁月流转,时光飞逝,转眼2021年已经画上句号。过去一年,vivo互联网技术共推送了107篇文章,涉及服务器、前端、数据库等技术。
源码深度解析 Handler 机制及应用
以源码分析+实际应用的形式,详细讲解了Handler机制的原理,以及在开发中的使用场景和要注意的地方。