后端
第一章 理解高性能程序 (9) 保持缓存的热度
保持缓存的热度
首先,别浪费缓存,因为主存很慢。这意味着无序地从内存中读取数据(被称为指针追逐pointer-chasing)并非明智。在现代处理器上,程序以预测的方式读取连续的内存块,可以受益于硬件级的预读取(prefetching)机制。一言以蔽之,即数据局部化(data locality)。
举个反面例子,唉,是我们古老而可靠的链表,遍历链表是一次实实在在的指
JNI库文件加载源码解析
下面我们结合源码详细探讨下JNI调用的库文件是如何加载的,为啥HelloWorld.so必须被命名成libHelloWorld.so,JNI_OnLoad方法是在什么时候回调的,返回的版本号有啥用?先看下总体的流程图
Java源码解析
System.loadLibrary和System.load方法
System.loadLibrary(String)方法用来加载动态链接库的,String参数是指
ArrayList 可以完全替代数组吗?
前言
大家好,我是小彭。
在前面的文章里,我们学习了很多数据结构与算法思想。在实际的业务开发中,往往不需要我们手写数据结构,而是直接使用标准库的数据结构 / 容器类。
在后续的文章里,我们将以 Java 语言为例,分析从 ArrayList 到 LinkedHashMap 等一系列标准库容器类,最后再有一篇总结回顾,请关注。
学习路线图:
1. 说一下 ArrayL
Lottie动画文件压缩
前言
项目中引入了“大量的”lottile动画文件以优化动画显示效果,稍微统计了下,共20多个,小的几十k,大的1.33M,总大小超过8M,apk包体积急速膨胀。
使用的lottie文件统计.png
解决方案
由于项目中显示动画的需要,引入了大量的Lottie动图,以优化显示效果导致包体积急速膨胀,目前可以想到的解决方案主要有如下2种:
方案1)远端方案
将lottie json文件放
架构设计——软件产品规划设计绕不过的坎
任何在 IT 公司工作的人,对于“架构”这个词应该都不陌生。但你去问“架构”这个词是什么意思,似乎又有点只可意会不可言传的意思。那么
“架构”这个词,它应该如何定义呢?
架构设计对于软件系统和软件开发而言起到的作用是什么呢?
软件系统或软件产品的架构应该用什么样的方式表达呢?
这篇文章,会尝试讨论一下上面这些问题。
如何定义架构设计?
我们先来看一个古老的的思想实验:
忒休斯之船(The S
Collection集合接口的介绍和使用
一.关于Collection接口的继承关系图
Collection接口有两个重要的子接口:List,Set。
List接口的三个重要的实现类:LinkedList,ArrayList,Vector
Set接口两个重要的实现类:HashSet,TreeSet
image.png
二.Collection接口的实现类的特点
1.Collection实现类,可以存放多个元素,每个元素可以是
MySQL性能调优(三):MySQL中的系统库(mysql系统库)
文章目录
MySQL性能调优
数据库设计优化
查询优化
配置参数调整
硬件优化
MySQL中的系统库
1.5.Mysql中mysql系统库
1.5.1.权限系统表
1.5.2.统计信息表
1.5.2.1.innodb_table_stats
1.5.2.2.innodb_index_stats
1.5.3.日志记录表
1.5.3.1. gen
