前一段时间2014北京PyCon大会吐槽颇多,所以我就到InfoQ上找了找2013的大会视频,对网络射击手游High Noon 2基于Python的服务器架构的视频挺感兴趣,尤其是游戏服务器中的0 downtime,原理他们底层不是原生的socket,而是基于ZeroMq的socket,由于ZeroMq的短线自动重连可以满足游戏服务器的热启动,不需要代码层面的热启动,热更新,当更新代码完成后直接重...
分类:
编程语言 时间:
2014-12-09 01:55:32
阅读次数:
314
参考:Android-Universal-Image-Loader
private final Map mLastUsageDates = Collections.synchronizedMap(new HashMap());
private final AtomicInteger mCacheSize;
private final int SIZE_LIMIT = 10 * 1024 * 10...
分类:
编程语言 时间:
2014-12-03 17:14:41
阅读次数:
193
Memcached 是一个高性能的分布式内存对象缓存系统,Memcached的高性能源于两阶段哈希(two-stage hash)结构,Memcached基于一个存储键/值对的HashMap,减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。当内存容量达到指定设定的值时,LRU算法自动删除不使用的缓存。...
分类:
系统相关 时间:
2014-11-24 13:35:09
阅读次数:
321
在之前的文章中简单描述了一下如何通过LRU结合多层缓存机制实现高命中的缓存,这一章节里的主要内容是深入地了解其原理的实现.LRU算法什么是LRU算法? LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的.通过这种算法可以把最近使用的数据迁移到数据...
分类:
其他好文 时间:
2014-11-22 15:58:08
阅读次数:
198
一道LeetCode OJ上的题目,要求设计一个LRU(Least Recently Used)算法,题目描述如下:Design and implement a data structure for Least Recently Used (LRU) cache. It should support...
分类:
编程语言 时间:
2014-11-19 13:51:25
阅读次数:
222
原题链接:https://oj.leetcode.com/problems/lru-cache/
题目大意:设计操作系统中资源管理算法所使用的一种数据结构,即LRU算法。是一道偏向于综合的题。
方法:一个哈希表+一个双端链表
思路:一方面LRU Cache算法要求可以快速访问结点,所以我们很容易想到使用哈希表或者数组。另一方面,该算法要求在达到容量上限时,删除最久未访问的数据结点。这要求所设...
分类:
系统相关 时间:
2014-11-16 17:24:44
阅读次数:
182
/*请求页式存储管理的页面置换算法
一.实验目的
通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
二.实验属性
设计
三.实验内容
1.通过随机数产生一个指令序列
2.将指令序列变换成为页地址流
设页面大小为1K;用户内存容量为4页到32页;用户虚存容量为32K。
在用户虚存中,按每K存放10条指令排列...
分类:
编程语言 时间:
2014-10-16 17:31:15
阅读次数:
298
在实现LRU算法的时候lru_list 开始用的是deque 但是因为害怕其在插入删除上的迭代器失效情况的诡异情况。遂用list代替之。
在数据量比较大的时候性能不是很好。性能优化分析的时候决定用deque替换回来。于是对deque迭代器失效的情况好好研究了一下:
c++ primer如此写道:
1.在deque容器首部或者尾部插入元素不会使得任何迭代器失效。
2.在其首部或尾部...
分类:
其他好文 时间:
2014-10-14 18:24:32
阅读次数:
220
起因:我的同事需要一个固定大小的cache,如果记录在cache中,直接从cache中读取,否则从数据库中读取。python的dict 是一个非常简单的cache,但是由于数据量很大,内存很可能增长的过大,因此需要限定记录数,并用LRU算法丢弃旧记录。key 是整型,value是10KB左右的python对象...
分类:
其他好文 时间:
2014-09-26 02:08:28
阅读次数:
267
Buffer cache的原理一、1·)当一个服务器进程需要读数据到buffer cache中时,首先必须判断该数据在buffer中是否存在,如果存在且可用,则获取该数据,根据lru算法在lru list上移动该block;如果buffer中不存在该数据,则需要从数据文件上获取2)在读取数据之前,s...
分类:
数据库 时间:
2014-09-10 19:16:00
阅读次数:
311