07 2021 档案
摘要:1 概述 在允许一定误判率的大数据量下的查找是否存在问题上可以使用布隆过滤器,详情上篇文章。布隆过滤器在工程应用方面已经比较成熟了,上一篇文章中,谈到了布隆过滤器的一些缺点,比如不支持删除操作、查询效率弱,因为多个随机哈希函数探测的是bit数组中多个不同的点,所以会导致低CPU缓存命中率。 针对此2
阅读全文
摘要:1 概述 在操作系统的页面管理中,内存会维护一部分数据以备进程使用,但是由于内存的大小必然是远远小于硬盘的,当某些进程访问到内存中没有的数据时,必然需要从硬盘中读进内存,所以迫于内存容量的压力下迫使操作系统将一些页换出,或者说踢出,而决定将哪些(个)页面踢出就是内存替换策略。 我们考虑内存中的页实际
阅读全文
摘要:1 位图(BitMap) 在讨论布隆过滤器之前,先看一下位图是什么。 首先考虑一个问题场景 假如需要过滤某些不安全网页,现有100亿个黑名单页面,每个网页的URL最多占用64字节。现要设计一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上。 最直观的想法必然是使用一个集合或者说数据结构来
阅读全文
摘要:1 概述 单模式匹配是处理字符串的经典问题,指在给定字符串中寻找是否含有某一给定的字串。比较形象的是CPP中的strStr()函数,Java的String类下的indexOf()函数都实现了这个功能,本文讨论几种实现单模式匹配的方法,包括暴力匹配方法、KMP方法、以及Rabin-Karp方法(虽然R
阅读全文
摘要:1 概述 本篇文章来谈一下经常用到的key-value形式的集合类HashMap,它最早出现于JDK1.2中,底层是基于散列表算法实现,HashMap允许key和value值为空。它是非线程安全的类,如果需要线程安全的HashMap,可以使用ConcurrentHashMap,关于这个在以后的文章中
阅读全文