前言 本篇用来记录下阅读YYKit中YYCache的一些理解和收获,着重解决两个问题: 1.YYCache在内存和磁盘各自存取方式。 2.YYCache使用怎样的数据结构来进行数据的存储。怎样确保多线程下的数据操作的安全性。 首先我们来看一下YYCache包含的文件。在本篇中我们并不像之前那样每个属 ...
分类:
系统相关 时间:
2018-12-13 19:32:24
阅读次数:
385
Linux内核内存回收逻辑和算法(LRU) LRU 链表 在 Linux 中,操作系统对 LRU 的实现主要是基于一对双向链表:active 链表和 inactive 链表,这两个链表是 Linux 操作系统进行页面回收所依赖的关键数据结构,每个内存区域都存在一对这样的链表。顾名思义,那些经常被访问 ...
分类:
编程语言 时间:
2018-12-12 18:56:24
阅读次数:
302
[TOC] BitMap 思路: 构造函数:取商作为长度,如果有余,则长度+1 set和get思路都是先取参数在bitmap中的index和offset,注意转化为int,然后进行相应的操作。 数据范围从0开始 最小栈 思路: 新建两个栈 push和pop中,s1照常执行。s2判断其顶部元素是否大于 ...
分类:
其他好文 时间:
2018-12-11 11:23:31
阅读次数:
272
【原谅我标题党了】 当然不可能有哪一个SQL语句会这么出名,以至于大家叫它“老鼠屎”;但是有一些SQL语句确实主是做着这样的事;由于程序的 局部性原理,数据库会把常用的数据缓存到内存中,对于这种场景通常是使用LRU算法。 【原生的LRU算法有空子】 这里不是说LRU算法有BUG、只是说它在数据库这个 ...
分类:
数据库 时间:
2018-12-04 17:06:37
阅读次数:
201
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) - Get the ...
分类:
系统相关 时间:
2018-12-01 11:10:21
阅读次数:
205
本文介绍了虚拟内存的相关理论知识,本文主要包含以下内容:内存管理按需调页基本概念按需调页的性能写时复制页面置换基本页面置换FIFO页面置换最优置换LRU置换近似LRU页置换基于计数的页置换页缓冲算法帧分配分配算法全局分配和局部分配由于作者不习惯该编辑器,现将本文详细的链接地址分享出来:https://www.yuque.com/docs/share/84e6144d-824c-42ed-9822-
分类:
其他好文 时间:
2018-11-28 23:47:51
阅读次数:
194
一. LruCache基本原理 LRU全称为Least Recently Used,即最近最少使用。由于缓存容量是有限的,当有新的数据需要加入缓存,但缓存的空闲空间不足的时候,如何移除原有的部分数据从而释放空间用来存放新的数据。 LRU算法就是当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删 ...
分类:
系统相关 时间:
2018-11-28 22:24:23
阅读次数:
275
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1. 新数据插入到链表头部; 2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 3. 当链表满的时候,将链表尾部的 ...
分类:
其他好文 时间:
2018-11-25 11:46:01
阅读次数:
88
最近学习操作系统时,实验要求实现常见的三种页面置换算法,博主按照书上要求试着编写,实现了案例,并记录在博客随记中,以便后续自己复习并也给需要的同学分享参考一下!水平有限,若有错,请悄悄告诉博主!博主好立即改正。 最佳置换算法(optimal replacement,OPT)是从内存中选择今后不再访问 ...
分类:
编程语言 时间:
2018-11-24 23:57:35
阅读次数:
451
LinkedHashMap特别有意思,它不仅仅是在HashMap上增加Entry的双向链接,它更能借助此特性实现保证Iterator迭代按照插入顺序(以insert模式创建LinkedHashMap)或者实现LRU(Least Recently Used最近最少算法,以access模式创建Linke ...
分类:
编程语言 时间:
2018-11-21 16:11:08
阅读次数:
221