当前位置: 首页 > news >正文

大理网站制作公司无锡网站制作有哪些

大理网站制作公司,无锡网站制作有哪些,制作网站的软件有那个免费,html制作简单的网页ucGUI内存管理分析 1. 概述 ucGUI为了提高在不同硬件与软件平台的可移植性#xff0c;它的内存分配没有用到像molloc和free这样的与平台相关的函数。它有自己的一套机制来管理内存。以下详细描述其内存管理机制。 2. ucGUI需要管理的内存 a) 窗体#x…ucGUI内存管理分析 1.      概述 ucGUI为了提高在不同硬件与软件平台的可移植性它的内存分配没有用到像molloc和free这样的与平台相关的函数。它有自己的一套机制来管理内存。以下详细描述其内存管理机制。 2.      ucGUI需要管理的内存 a)        窗体 在ucGUI里所有的控件(control)对话框(Dialog)框架窗体(Frame)实际都是由一个或多个窗体组成这些窗体对应用的层的表现形式为句柄(Handle)关于这个句柄的含义在下面讲解。在ucGUI窗体管理机制里每种不同的窗体都有其不同的结构体。因此这些结构体的实例均需要纳入ucGUI的内存管理。 b)        字符串: 几乎所有的窗体上都有多个字符串这些字符串对应用层的表现形式也为句柄。在ucGUI内部实际是一个普通的字符串也需要纳入ucGUI的内存管理。 3.      ucGUI内存管理分析 a)        ucGUI定义了一个全局联合体变量来存放他所需要的内存。定义如下 typedef union { int aintHeap[GUI_ALLOC_SIZE / 4];   U8 abHeap[GUI_ALLOC_SIZE]; } GUI_HEAP; 之所以这样定义是为单字节或四字节访问的便利性。实际的大小即为宏定义GUI_ALLOC_SIZE的大小这个宏定义可根据用户实际使用情况来调节。实际上就是跟应用的复杂度相关。换句话说就是实际应用中创建的窗体越多界面上需要显示的字符串越多需要占用的内存就越多。 b)        ucGUI定义了一个全局的结构体内存块数组来管理这块内存。定义如下 typedef struct { GUI_ALLOC_DATATYPE Off;         /*Offset of memory area          */ GUI_ALLOC_DATATYPE Size;         /*usable size of allocated block */ HANDLE Next;                               /*next handle in linked list     */ HANDLE Prev; } tBlock; static tBlock aBlock[GUI_MAXBLOCKS]; 前面已经描述了ucGUI里需要纳入内存管理的主要是窗体与字符串两部分。每一个窗体与字符串都需要单独的内存块(Block)来管理他们在应用层的句柄(Handle)即为内存块数组aBlock的索引值。 关于内存块结构体的描述根据其定义即可看出Off为其在GUI_HEAP里偏移Size为其大小Next为下一个内存块的句柄Prev为前一个内存块的句柄。可以看出ucGUI将所有的内存块做成的一个双向链表。 内存块的最大个数由GUI_MAXBLOCKS来定义。定义如下: #define GUI_MAXBLOCKS (2 GUI_ALLOC_SIZE / 32) 即用GUI_ALLOC_SIZE通过计算得出。 下面我们来分析一下内存块结构体tBlock的大小。先看一个GUI_ALLOC_DATATYPE和HANDLE的定义。 #ifGUI_ALLOC_SIZE 32767 #define GUI_ALLOC_DATATYPE   I16 #define GUI_ALLOC_DATATYPE_U U16 #else #define GUI_ALLOC_DATATYPE   I32 #define GUI_ALLOC_DATATYPE_U U32 #endif #ifGUI_MAXBLOCKS 256 #define HANDLE U16 #else #define HANDLE U8 #endif 当GUI_ALLOC_SIZE小于32kb时GUI_ALLOC_DATATYPE为两个字节否则为4个字节。当GUI_MAXBLOCKS大于等于256时HANDLE为两个字节否则为1个字节。 所以tBlock的大小最小为4字节最大为12字节实际上都和GUI_ALLOC_SIZE的大小相关。 4.      ucGUI内存管理的实现 对这部分不作过多的描述因为和对内存的使用的多少没有太多关系。 需要说明的ucGUI内存管理主要是由上述的结构体来管理。实现了在aBlock这块内存中动态分配和释放碎片整理等机制。经过大量的实践可靠性与效率上还是有一定的保证。 5.      总结 综上所述。ucGUI需要的内存大小主要由上面描述的GUI_HEAP和 tBlock决定。 举个例子当我们GUI_ALLOC_SIZE将定于为1MB的大小。 ucGUI需要的内存实际大小为 GUI_ALLOC_SIZE sizeof(tBlock) * GUI_MAXBLOCKS  1mb 12 * (2 1mb/32) 1.375mb
http://wiki.neutronadmin.com/news/377337/

相关文章:

  • 网站session关键词站长工具
  • Wordpress增加QQ分享沈阳优化网站公司
  • 响应式网站和传统网站异同小语种外贸网站建设
  • 长沙网站建设外贸做营销型网站 推广的好处
  • 网站建设公司好发信息网淘宝网官方网站电脑版
  • 做网站工作职责python基础教程文档
  • 湖南网站开发企业地图截选做分析图的网站
  • 湖北网站备案需要多久室内设计手绘图
  • 影楼招聘seo技术培训茂名
  • 商标设计网站主要提供哪些服务软件技术毕业设计题目
  • 金华集团网站建设网站地址栏图标文字
  • 湘潭网站seo磐石网络商标设计在线生成器
  • 网站扁平化布局总部在深圳的大企业
  • 网站维护的内容有哪些wordpress手机pc
  • 博物馆网站建设情况说明设计素材图片大全 psd素材
  • 在线捏脸网站需要多少钱wordpress付费附件下载
  • 织梦校园招生网站源码wordpress nas
  • 电子商务网站类型北京有几个区几个县
  • 购物网站服务器价格网站价格表
  • 网站解析不了自己建设网站步骤
  • 游戏秒玩网站做网站每月收入
  • 网页设计师需要学什么技能佛山公司推广优化
  • 大理 网站建设站群系统哪个好用
  • 商丘企业网站建设团队ppt模板大师
  • 天津网站建设基本流程图网站租空间多少钱一年
  • 信用建设网站动态信息报送制度vultr服务器建wordpress
  • 网站代理违法吗hyper cache wordpress
  • 背景 网站建设高档网站模板
  • 建网站 做淘宝客个人做哪方面网站
  • 网站设计优缺点中信建设有限责任公司陶扬