`
sunny.yang
  • 浏览: 31019 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论
文章列表
本节分析在某个大型应用程序实际应用到的一个内存池实现,并详细讲解其使用方法与工作原理。这是一个应用于单线程环境且分配单元大小固定的内存池,一般用来为执行时会动态频繁地创建且可能会被多次创建的类对象或者结构体分配内存。 本节首先讲解该内存池的数据结构声明及图示,接着描述其原理及行为特征。然后逐一讲解实现细节,最后介绍如何在实际程序中应用此内存池,并与使用普通内存函数申请内存的程序性能作比较。 内存池类MemoryPool的声明如下:   MemoryBlock为内存池中附着在真正用来为内存请求分配内存的内存块头部的结构体,它描述了与之联系的内存块的使用信息:
经典的内存池(mempool)技术,是一种用于分配大量大小相同的小对象的技术。通过该技术可以极大加快内存分配/释放过程。 内存池只涉及两个静态常量:Block_Size(mempool的容量大小)、Item_Size(小对象的大小,但不能小于指针的大小,在32位平台也就是不能小于4字节),以及两个指针变量BlockNodeHead、FreeItemNodeHead。开始,这两个指针均为空。 其中指针变量BlockNodeHead是把所有申请的内存块(Block_Node)串成一个链表,以便通过它可以释放所有申请的内存。FreeItemNodeHead变量则是把所有自由内存结点(Item_ ...
首先避免使用in ,not in,<>,<,<=,>,>=,is null,is not null 主要搜索字段建立索引   1.WHERE子句中的连接顺序 sql解析器采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以 ...
  Java 6 JVM 参数选项大全(中文版)   作者: Ken Wu Email: ken.wug@gmail.com 转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm !   本文 是基于最新的 SUN官方 文档 Java SE 6 Hotspot VM Options   编写的译文。主要介绍JVM 中的非稳态选项及其使用说明。 为了让读者明白每个选项的含义,作者在原文基础上补充了大量的 ...
首先让我们来看一下 TCP 的报文头部主要字段:     序列号(Sequence number)字段用来标识TCP 源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP 用序列号对每个字节进行计数。序列号是一个32bits 的数。     TCP 的流量控制由连接的每一端通过声明的窗口大小(windows size)来提供。窗口大小用数据包来表示,例如Windows size=3, 表示一次可以发送三个数据包。窗口大小起始于确认字段指明的值,是一个16bits 字段。窗口大小可以调节。     最常见的可选字段是 MSS ...
1.显式游标 ----对应于静态select语句 2.参数游标 ----对应于静态select语句 3.游标变量 REF  cursor----对应于动态select 语句 4.游标表达式 CURSOR(subquery)  --用于在plsql块中处理更加复杂的基于多张表的关联数据。为了在PL/SQL块中取得嵌套游标的数据,需要使用嵌套循环。       package里面不能定义游标。     记录类型  select * from dept; declare  dept_record dept%rowtype; begin  dept_record.deptno:=6 ...
1、创建表的同时创建主键约束(1)无命名create table student (studentid int primary key not null,studentname varchar(8),age int);(2)有命名create table students (studentid int ,studentname varchar(8),age int,constraint yy primary key(studentid)); 2、删除表中已有的主键约束(1)无命名可用 SELECT * from user_cons_columns;查找表中主键名称得student表中的主键名为 ...
Oracle Connect By用法oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:select ... from <TableName> where <Conditional-1>start with <Conditional-2>connect by <Conditional-3>;<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。<Conditional-2>:查询结果重起 ...
以前对HttpServletRequest的getParameter()方法内的参数没太注意,这次确定一下,这个参数就是jsp中所定义的name的值,比如常常在login.jsp中,<input type="text" name="username"> <input type="password" name="password">索引号引起来的"username"和password"就是getParameter()的参数, getParameter(" ...
很多初学者,在接触Oracle数据库后,都会很疑惑Oracle聚簇索引是什么,如何使用Oracle聚簇索引,Oracle散列聚簇又与Oracle聚簇索引有什么关系。本文针对这3个问题结合相关资料,给出了点看法。 1. 什么是聚簇 聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的。Oracle聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。一个表最多只能有一个聚簇索引。 2. 使用 Oracle聚簇索引 聚簇是一种存储表的方法,这些表密切相关并经常一起连接进磁盘的同一区 ...
1、语法create bitmap index index_name on 表名(字段);2、举个例子你就能明白了:如有表 test(id,name,address)数据(1,张三,大连)(2,李四,天津)(3,王五,北京)(4,赵六,大连)....类似这样的数据,如果查询的时候用到 【where address='大连'】,因为数据库中有很多这样的数据,所以一般的索引起不到查询加速的作用,而建立位图索引后会产生如下位图效果:假设有4条数据(就如上所示)大连 天津  北京 1    0     0 0    1     0 0    0     1 1    0     0这样当查询:selec ...
pctfree:用于指定BLOCK中必需保留的最小空间的比例。pctused:为一个百分比数值,当BLOCK中已经使用的空间降低到该数值以下时,该BLOCK才是可用的,达到或是超过这个数值的BLOCK是不可用的。一般在控制具有独立segment结构的对象时,使用这两个参数来控制BLOCK的存储管理。initrans:指定可以并发操作该表的事务的数目。   用CREATE 命令的PCTUSED、PCTFREE、INITTRANS、MAXTRANS、FREELIST GROUPS 和FREELISTS参数来控制表、索引或簇的数据块中的空间使用。可使用PCTFREE和PCTUSED参数控制数据 ...
B树、B-树、B+树、B*树都是什么   B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键­
引用一,servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器 先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test /aaa.html,我的应用上下文是test,容器会将http://local ...
oracle 数据库 any 和all 的区别: All:所有的如>all则需要大于所有的,<all则需小于所有的Any:任何一个如>any则需要大于其中任何一个,<any则小于其中任何一个。
Global site tag (gtag.js) - Google Analytics