首页   注册   登录
 rikka 最近的时间轴更新
rikka

rikka

V2EX 第 50936 号会员,加入于 2013-11-30 12:16:28 +08:00
今日活跃度排名 6933
rikka 最近回复了
@xz410236056 #8 没反,我表达的意思是:k 这个前缀按 1000 算,Ki 这个前缀按 1024 算~~
@Osk #3 查了下,才知道原来 k = 1000 Ki =1024 啊
正在写个 vscode 扩展,涉及到文件大小计算,这才发现这个问题,我一直以为计算机世界里就应该按 1024 来
@zifangsky #37 看了,基本都差不多~~
@wangritian #33 我也差不多想到这了,感觉很行啊

需要增加一个双向链表,按时间顺序放入数据
当需要删除的时候,首先到这个链表取第一个数据,看看有没有过期,过期就删这个数据,没有就继续走 LRU 的逻辑

等我抽空来实现~~
@saberlong #32 能明白,不过暂时不考虑这种方式
@saberlong #29
@shellus #30

你说“定时”什么的,这不就得依赖系统时钟,增加额外的线程。当然实际项目完全可以这么干,有了“定时”,事情也就变得很简单了

而我其实是希望用纯数据结构纯算法来完成这个事,给自己增加点挑战~~
@stardust21 #27 删除肯定是满了才进行删除的,遍历也不太行,极端情况存了 10 万个数据,准备删除,难道先遍历看看谁过期了在删除?好吧,那万一要是全都没过期,那就很尴尬白忙活,只能乖乖按照 LRU 删最后一个
@xiaoming1992 #24
@zifangsky #25

其实都可以,目前我用 LRU 实现出来了



然后发现 LRU 实现出来有点问题,我的要求之一是数据有个有效期,而 LRU 只会删除队列最后一个

这样存在一种情况,队列最后一个数据没过期,但是倒数第二个是过期了,LRU 把最后这个没过期的删掉了,但是实际上倒数第二个更加应该被删除才对
@kamal #19 这思路感觉有点行啊,这么搞,如果一个数据(没过期)频繁被读取就会一直保持在队列前面,需要删除的时候就不容易被删,那些没怎么被读取的就会随着队列调整落在队尾,随时准备被删除~~
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3110 人在线   最高记录 5168   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 11:48 · PVG 19:48 · LAX 04:48 · JFK 07:48
♥ Do have faith in what you're doing.