bitmap位图原理和实现】的更多相关文章

引子 首先通过一道题来理解什么是bitmap. 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 分析: 假设一个int占4个字节(32位),40个亿个整数就是160亿个字节,大概相当于16GB,假设一台计算机只有2GB内存,则16GB一次加载不完,需要分8次加载,从磁盘加载数据是磁盘io操作,是非常慢的(比内存中的操作要慢100倍),每次加载这么大的数据,并且要8次,那么查找的时间可以达到分钟甚至小时级. 还有一个办法是把数据分散在8台计算机上,然…
位图(Bitmap),即位(Bit)的集合,是一种数据结构,可用于记录大量的0-1状态,在很多地方都会用到,比如Linux内核(如inode,磁盘块).Bloom Filter算法等,其优势是可以在一个非常高的空间利用率下保存大量0-1状态. BitMap的原理 BitMap 的基本原理就是用一个bit 位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况.通常是用来判断某个数据存不存在的. 举例:在Java里面一个int类型占4个字节,假如要对于10亿个int数据进行处理呢?10亿*…
相关概念 基础类型 在java中: byte -> 8 bits -->1字节 char -> 16 bit -->2字节 short -> 16 bits -->2字节 int -> 32 bits -->4字节 float -> 32 bits -->4字节 long -> 64 bits -->8字节 位运算符 在java中,int数据底层以补码形式存储.int型变量使用32bit存储数据,其中最高位是符号位,0表示正数,1表示…
先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: by 菩提树下的杨过 http://yjmyzz.cnblogs.com/ ///将Bitmap位图转化为base64字符串 function BitmapToString(img:TBitmap):string ; var   ms:TMemoryStream;   ss:TStringStream;   s:string; begin     ms := TMemoryStream.Create;  …
uses EncdDecd; ///将Bitmap位图转化为base64字符串 function BitmapToString(img:TBitmap):string ; var ms:TMemoryStream; ss:TStringStream; s:string; begin ms := TMemoryStream.Create; img.SaveToStream(ms); ss := TStringStream.Create(''); ms.Position:=0; EncodeStre…
终于抽出时间来进行 BITTORRENT的学习了 BT想必大家都很熟悉了,是一种文件分发协议.每个下载者在下载的同时也在向其他下载者分享文件. 相对于FTP HTTP协议,BT并不是从某一个或者几个指定的点进行文件下载,而是用户之间进行交互,每个用户既是下载者也是上传者. BT并不会出现提供下载的服务点出现问题而无法下载的现象. 我尝试从BT文件开始下载的流程来分析下我们需要那些功能. 首先我们从某网站下载BT种子文件,文件很小,记录要下载的实际文件的一些信息. 那么我们就需要从该BT种子文件解…
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的“高昂代价”.位图索引会带来“位图段级锁”,实际使用过程一定要充分了解不同索引带来的锁代价情况. 1.为比较区别,创建两种索引类型的测试表1)在表t_bitmap上创建位图索引SEC@ora11g> create table t_bitmap (id number(10), name varchar2(10),sex varchar2(1)); Table created. SEC@ora11g> create bitmap…
转自: http://dongxicheng.org/structure/bitmap/ 1.  概述 位图(bitmap)是一种非常常用的结构,在索引,数据压缩等方面有广泛应用.本文介绍了位图的实现方法及其应用场景. 2. 位图实现 (1)自己实现 在位图中,每个元素为"0"或"1",表示其对应的元素不存在或者存在. #define INT_BITS sizeof(int) #define SHIFT 5 // 2^5=32 #define MASK 0x1f /…
在 WPF 中将一个现成的 Bitmap 位图转换成 ImageSource 用于显示一个麻烦的事儿,因为 WPF 并没有提供多少可以转过来的方法.不过产生 Bitmap 来源却非常多,比如屏幕截图.GDI 图.数组或其它非托管框架生成的图片. WPF 官方提供了一种方法,使用 System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap() 方法.官方解释称这是托管和非托管位图相互转换所用的方法.然而此方法有一个很严重的弊端——每次都…
测试于:MySQL 5.5.25 当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree.Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供. BTree索引 BTree(多路搜索树,并不是二叉的)是一种常见的数据结构.使用BTree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.按照翻译,B 通常认为是Balance的简称.这个数据结构一般用于数据库的索引,综合效率较高.——百度百科 不适合: 单列索引的…