ChinaUnix.net
相关文章推荐:

bitmap算法

最近在用C做一个UID排重的程序,在尝试bitmap(位图)存储与比较。 先把源UID存到内存中,和需要对比的UID进行对比。 效率挺高的,可是内存利用率太低了。 比如申请了(unsigned int)(~0)字节的内存=4294967295*4*8bit,如果源uid有4亿个,利用率也只是接近1/42 请教各位大神有没有位图的压缩算法或者其他更好的处理方式? 先谢过啦

by burt2007 - C/C++ - 2013-01-13 14:53:48 阅读(3658) 回复(5)

相关讨论

bitmap优化 直接使用ImageView显示bitmap会占用较多资源,特别是图片较大的时候,可能导致崩溃。 使用bitmapFactory.Options设置inSampleSize, 这样做可以减少对系统资源的要求。 属性值inSampleSize表示缩略图大小为原始图片大小的几分之一,即如果这个值为2,则取出的缩略图的宽和高都是原始图片的1/2,图片大小就为原始大小的1/4。 Options中有个属性inJustDecodeBounds,SDK中是这么说的 If set to true, the decoder w...

安卓

by 凝望长空 - 移动操作系统 - 2011-08-18 12:23:48 阅读(1711) 回复(0)

Last Updated 4/03/06While time consuming, bitmap fonts can be useful if you can't afford a fonting program. They're also used when premade font engines (like SDL_ttf) are simply not flexible enough. This tutorial will teach you to make a common style bitmap font. A bitmap font is simply a sprite sheet. If we wanted to make "HELLO" show on the screen we would do this: We would take the "H" sprit...

by whtonline - Linux文档专区 - 2006-05-26 11:45:49 阅读(780) 回复(0)

android bitmap学习总结 bitmap类: public void recycle()——回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() ——判断位图内存是否已释放 public final int getWidth()——获取位图的宽度 public final int getHeight()——获取位图的高度 public final boolean isMutable()——图片是否可修改 public int getScaledWidth(Canvas canvas)——获取指定密度转换后的图像的宽度 publ...

by 三里屯摇滚 - Java - 2012-08-26 08:15:59 阅读(9638) 回复(3)

/* * linux/fs/bitmap.c * * (C) 1991 Linus Torvalds */ /* bitmap.c contains the code that handles the inode and block bitmaps */ #include string.h> #include linux/sched.h> #include linux/kernel.h> #define clear_block(addr) \ __asm__("cld\n\t" \ "rep\n\t" \ "stosl" \ ::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")//将指定地址(addr)处的一块1024字节内存清零 #define set_bit...

by jhluroom - Linux文档专区 - 2009-08-14 16:39:35 阅读(766) 回复(0)

在前面描述的设置流程中,涵盖了全部的bitmap用户能够看到的流程,这些流程中只有bit的设置,但没有bit的清除。对于可以清除的bit,最多只是设置了所在的filemap页CLEAN属性,没有实际的清除filemap中的bit和写入磁盘。 bitmap的bit清除工作是在bitmap_daemon_work函数中进行的,这个函数又在md_check_recovery中被调用,而md_check_recovery是在磁阵的守护进程中首先被调用的,所以实际上守护进程每次运行时,都要调用到bitmap_da...

by qincp- - Linux文档专区 - 2009-08-10 16:12:24 阅读(778) 回复(0)

bitmap在磁阵处理写访问请求时,调用bitmap_startwrite设置bitmap内存的信息,包括内存中的bitmap结构,以及内存中bitmap磁盘文件的映射filemap;在磁阵实际将写请求实际提交给子设备前,调用bitmap_unplug将bitmap信息写入磁盘。 除这两个函数外,bitmap_start_sync,bitmap_end_sync,bitmap_endwrite等函数也和bitmap的一些标志设置有关。 bitmap_startwrite 该函数在磁阵处理访问请求时(make_request)调用。函数主要完成: 1...

by qincp- - Linux文档专区 - 2009-08-10 16:11:32 阅读(823) 回复(0)

bitmap_create完成bitmap的初始化,该函数在磁阵启动时或者用户设置bitmap文件时被调用,主要完成bitmap从磁盘到内存的加载: 1. 前面说过,bitmap文件在磁盘上可能有两个位置,分别以文件指针或者与超级块之间的偏移来指定。 2. 读入超级块,注意bitmap是以小尾格式存在磁盘上的。在读入过程中,判断bitmap是否过期(超级块的event和MD的event是否相同),并根据判断设置bitmap过期状态。 3. ...

by qincp- - Linux文档专区 - 2009-08-10 16:10:42 阅读(809) 回复(0)

bitmap原理很明了,按照这个原理直接进行实施也是可以的,但直接这样实施的话,由于一次数据块的写入多了两次磁盘访问(bitmap的设置和清除),写入效率会受到较大影响,所以还需要考虑一些优化。 优化主要是两方面的:bitmap的设置后批量写入;bitmap的延时清除。这两方面的优化原理上和磁盘缓存差不多,需要在内存中构建和磁盘bitmap文件对应的数据结构,bitmap操作首先在缓存中进行,必要时才进行真正的磁盘操作。 下面来看看bi...

by qincp- - Linux文档专区 - 2009-08-10 16:00:48 阅读(1655) 回复(0)

本帖最后由 linuxchyu 于 2013-08-28 14:01 编辑 位图通常用来判断一个元素是否包含在一个集合中,但是,我们也可以换一种用法,比如寻找一个不包含在集合中的一个元素。现一个有1e6以上或1e9级别bit的位图,有什么高效的方法查找第一个为0或为1的位(不要遍历)? 目前有一个想法,就是分层的方法,为bitmap再制作一上层bitmap,如果下层的bitmap的一个字节或4个字节中含有0(或1),则其上层bitmap对应的位就置为0(或1)如果...

by linuxchyu - C/C++ - 2013-09-02 14:13:55 阅读(4376) 回复(17)

最近改bug时遇到了一个问题,一款游戏在被别的程序中断后再返回时会被意外终止,通过看log发现是由于图片编解码是申请内存失败的原因,接下来google了一下,发现android中这样的问题比较多,最后找到一个方法,将android dalvik的heapsize由原来默认的16M提高到32M,解决了这个问题,下面是参考的文章。

转自bitmap%E...

by robert_jiao - 移动操作系统 - 2011-12-21 08:41:39 阅读(700) 回复(0)