随着JVM虚拟机和JIT即时编译技术的发展,对象的分配和回收是个非常轻量级的工作。但是对于缓冲区Buffer,情况却稍有不同,特别是对于堆外直接内存的分配和回收,是一件耗时的操作。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。性能测试表明,采用内存池的ByteBuf相比于朝生夕灭的ByteBuf,性能高23倍左右(性能数据与使用场景强相关)。
在4.x版本中,UnpooledB...
分类:
Web程序 时间:
2014-09-23 20:56:15
阅读次数:
425
IP路由选择IP协议提供了一种不可靠、无连接的数据传输服务:1、不可靠(unreliable):不能保证IP数据报能成功到达目的地;如果发生某种错误,比如路由器的缓冲区已满,会直接丢弃该数据报,然后发送ICMP消息给信源端;2、无连接(connectionless):每个数据报的处理是相互独立的,I...
分类:
其他好文 时间:
2014-09-23 17:18:24
阅读次数:
233
1.什么是游标?答:游标是系统给用户开设的一个数据缓冲区,存放SQL语句的执行结果, 每个游标都有一个一个名字,用户可以用SQL语句从游标中提取数据,然后赋给变量。2.游标分类 答:游标分为隐式游标(游标属性)、显示游标(游标技巧)和REF游标(游标变量);3.隐式游标如何使用? 答:使用DM...
分类:
数据库 时间:
2014-09-22 20:59:33
阅读次数:
271
Netty的ByteBuf缓冲区实现地比Java本身的ByteBuffer更加灵活,方便。它的类结构也比较复杂,这里只说ByteBuf核心的几个要点。
1. 最重要的是要理解为什么要ByteBuf这个组件。主要还是因为基于select / poll / epoll这种IO多路复用技术的NIO是非阻塞同步IO的模型,由于是同步IO,需要用户线程自己来处理IO的读写,由于是非阻塞的,每次调用...
分类:
Web程序 时间:
2014-09-22 19:06:32
阅读次数:
626
数据库体系结构:结构组件汇总:
内存结构:
系统全局区 (SGA):数据库缓冲区高速缓存、重做缓冲区以及各种池
程序全局区 (PGA)
进程结构:
用户进程和服务器进程
后台进程:SMON、PMON、reco、DBWn、CKPT、LGWR、ARCn 等
存储结构:
逻辑:数据库、方案、表空间、段、区和 Oracle 块
物理: 数据文件、控制文件和重做日志文件...
分类:
数据库 时间:
2014-09-21 03:56:29
阅读次数:
323
C语言中的零长度数组用法详解
在C语言中允许在结构体和联合体中定义零长度的数组,写法可以是以下两种:
char p[]或者char p[0],这个数组定义在结构体或者联合体中,不占用空间大小。
这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势:
1.不需要初始化,数组名直接就是所在的偏移;
2.不占任何空间,指针需要占用int长度空间,空数组不占...
分类:
编程语言 时间:
2014-09-21 03:12:19
阅读次数:
240
??
1进程间通信
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不
到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用
户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程
间通信(IPC,InterProcess
Communication)。
2pipe管...
分类:
其他好文 时间:
2014-09-21 03:11:39
阅读次数:
390
在多线程开发中,最经典的一个模型就是生产者消费者模型,他们有一个缓冲区,缓冲区有最大限制,当缓冲区满
的时候,生产者是不能将产品放入到缓冲区里面的,当然,当缓冲区是空的时候,消费者也不能从中拿出来产品,这就
涉及到了在多线程中的条件判断,java为了实现这些功能,提供了wait和notify方法,他们可以在线程不满足要求的时候
让线程让出来资源等待,当有资源的时候再notify他们让他们继续...
分类:
编程语言 时间:
2014-09-18 23:49:14
阅读次数:
243
编写代码,移除未排序链表中的重复结点。进阶如果不得使用临时缓冲区,该怎么解决?分析:使用set记录已访问过的值。时间复杂度O(n*logn),若使用unordered_set或者hash_set,则时间复杂度为O(n)。 1 #include 2 #include 3 #include 4 #...
分类:
其他好文 时间:
2014-09-18 22:10:24
阅读次数:
254
1:cin , cout不是语句,而是iostream类的对象而已,这些都是属于控制平台流;流写入缓冲区,缓冲区刷新到设备上显示。 2:endl特殊字符,表示换行且刷新缓冲区 3:换行和空格一样,除了在头文件上以及字符串字面值。 4:对于结束字符是 换行+ctrl+z+换行 5:while和for区...
分类:
其他好文 时间:
2014-09-18 22:04:34
阅读次数:
139