Stella981 Stella981
3年前
Android so注入(inject)和Hook技术学习(一)
  以前对Androidso的注入只是通过现有的框架,并没有去研究so注入原理,趁现在有时间正好拿出来研究一下。  首先来看注入流程。Androidso的注入流程如下:_attach到远程进程保存寄存器环境获取目标程序的mmap,dlopen,dlsym,dlclose地址远程调用mmap函数申请内存空间用来保存参
Stella981 Stella981
3年前
SonarQube 数据清理,从100G 到9G
背景描述SonarQube自去年使用开始,已运行一年有余它上面的Project数量已超过1000因为每个应用的每个git分支的每次push事件都会触发Sonar分析任务这样会有很多的数据都存储下来,从而导致数据量很大目前Mysql数据库占用磁盘空间达到100G并且随着时间推移会继续增加
Wesley13 Wesley13
3年前
Unity的对象复用
对象复用是用空间换时间的一种典型的做法,对于Unity来说虽然引擎内部有GameObject的对象池,但是这只是Native层的,到了Managed层还是可以继续优化的。通过Profiler能够发现实例化GameObject还是比较消耗CPU的。Unity中对象池主要有3种,1.普通的Cclass的对象池2.GameObject的对
Wesley13 Wesley13
3年前
Oracle Undo 查询表中历史数据
Undo表空间用于存放Undo数据。当执行DML操作时,Oracle会将这些操作的旧数据写入Undo段.用于对数据库一致读,事务回滚之类的操作.换而言之,在特殊情况下,我们可以用它来找回被错误操作的数据.例如:SELECT t.fid  FROM ct_bas_province AS OF TIMESTAMP to_dat
Stella981 Stella981
3年前
MyBatis入门(三)
映射文件是所有SQL语句放置的地方,写好SQL语句映射文件后,需要在配置文件的mappers标签中引用。映射文件和与它具有相同功能的JDBC代码相比省掉了大部分的代码,而且对SQL的构建比普通方法还要好,这就是MyBatis的强大之处。映射文件包含的顶级元素:cache:给定命名空间的缓存配置。cacher
Stella981 Stella981
3年前
Linux内核学习笔记(3)
一、进程创建:  Unix下的进程创建很特别,与许多其他操作系统不同,它分两步操作来创建和执行进程:fork()和exec()。首先,fork()通过拷贝当前进程创建一个子进程;然后,exec()函数负责读取可执行文件并将其载入地址空间开始运行。1、fork():kernel/fork.c  在Linux系统中,
Stella981 Stella981
3年前
Grid布局和Flex布局
Flex布局(弹性布局)Flex是弹性布局,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为Flex布局。行内元素也可以使用Flex布局。采用Flex布局的元素,称为Flex容器。flexitem项目是Flex布局的元素,简称项目。容器:水平的主轴(mainaxis)和垂直的交叉轴(crossaxis),单个项目占据的主轴空间叫做m
京东云开发者 京东云开发者
10个月前
从keys命令出发-浅谈redis的字典和字典迭代器
1.keys命令keys命令相信大家应该都用过,该命令会遍历整个redis的字典空间,对要查找的key进行匹配并返回。就像官方文档所说:在生产环境使用该方法的过程中要非常小心,因为redis服务器在执行该命令的时候其他客户端读写命令都会被阻塞。使用方法:K
linbojue linbojue
9个月前
【C++】vector容器初步模拟
今天我我来进行vector的模拟实现,先简单的实现一下初步功能,使其对内置类型可以适配。(大部分与string很类似)1认识vector开始了解vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着
京东云开发者 京东云开发者
4个月前
mysql磁盘碎片整理
背景数据结转过程中经常进行delete操作,产生空白空间,如果进行新的插入操作,MySQL将尝试利用这些留空的区域,但仍然无法将其彻底占用,于是造成了数据的存储位置不连续,以及物理存储顺序与理论上的排序顺序不同,久而久之就产生了碎片。碎片治理思路根据线上处