利用指针来进行数据的交换;2014-08-01函数的设计如下:void swap(void *ap,void *bp,int size){ char *buffer=(char *)malloc(size); memcpy(buffer,ap,size); memcpy(ap,bp,size); m...
分类:
其他好文 时间:
2014-08-05 18:21:19
阅读次数:
251
导读J2SE1.4以上版本号中公布了全新的I/O类库。本文将通过一些实例来简介NIO库提供的一些新特性:非堵塞I/O,字符转换,缓冲以及通道。一. 介绍NIONIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。1. Buffer:它是包括数据且用于读...
分类:
编程语言 时间:
2014-08-05 13:59:49
阅读次数:
270
在PHP中,当运行echo,print的时候,输出并没有马上通过tcp传给client浏览器显示, 而是将数据写入php buffer。php output_buffering机制,意味在tcp buffer之前,建立了一新的队列,数据必须经过该队列。当一个php buffer写满的时候,脚本进程会...
分类:
Web程序 时间:
2014-08-05 13:46:29
阅读次数:
373
##############缓冲区:e(:open) 打开新缓冲区:ls (:buffers) 列出列表内所有缓冲区/bs /bv /be(BurExplore快捷键):buffer 2 切换缓冲区:bnext/bn (Ctrl 6) 下一缓冲区:bprevious/bp 上衣缓冲区:bfi...
分类:
其他好文 时间:
2014-08-04 20:44:17
阅读次数:
272
缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:
使用缓冲区有这么两个好处:
1、减少实际的物理读写次数
2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数
举个简单的例子,比如A地有1w块砖要搬到B地
由于没有工具(缓冲区),我们一次只能搬一本,那么就要搬1w次(...
分类:
其他好文 时间:
2014-08-04 02:04:46
阅读次数:
265
Cache BuffersLRU Chain闩锁竞争与解决
当用户进程需要读数据到Buffer Cache时或Cache Buffer根据LRU算法进行管理等,就不可避免的要扫描LRU List获取可用Buffer或更改Buffer状态,我们知道,Oracle的Buffer Cache是共享内存,可以为众多并发进程并发访问,所以在搜索的过程中必须获取Latch(Latch是Oracle的一种串行锁机制,用于保护共享内存结构),锁定内存结构,防止并发访问损坏内存中的数据(我们必须认识到对于数据的访问、Bu...
分类:
其他好文 时间:
2014-08-02 15:36:23
阅读次数:
393
1.2 shared pool原理
Shared Pool是Oracle SGA设置中最复杂也是最重要的一部分内容,Oracle通过Shared Pool来实现SQL共享、减少代码硬解析等,从而提高数据库的性能。在某些版本中,如果设置不当,Shared Pool可能会极大影响数据库的正常运行。
在Oracle 7之前,Shared Pool并不存在,每个Oracle连接都有一个独立的Server进程与之相关联,Server进程负责解析和优化所有SQL和PL/SQL代码。典型的,在OLTP环境中,很多代...
分类:
其他好文 时间:
2014-08-02 15:36:03
阅读次数:
354
X$KSMSP视图
Shared Pool 的空间分配和使用情况,可以通过一个内部视图来观察,这个视图就是X$KSMSP。
X$KSMSP的名称含义为: [K]ernal [S]torage [M]emory Management [S]GA Hea[P]其中每一行都代表着Shared Pool中的一个Chunk。以下是x$ksmsp的结构:
12:03:45 sys@felix SQL>desc x$ksmsp
Name Null? Type...
分类:
其他好文 时间:
2014-08-02 15:35:13
阅读次数:
274
诊断和解决ORA-04031 错误
Shared Pool的主要问题在根本上只有一个,就是碎片过多带来的性能影响。
1.2.7.1 什么是ORA-04031错误
当尝试在共享池分配大块的连续内存失败(很多时候是由于碎片过多,而并非真是内存不足)时,Oracle首先清除共享池中当前没使用的所有对象,使空闲内存块合并。如果仍然没有足够大的单块内存可以满足需要,就会产生ORA-04031错误。
如下一段伪代码来描述04031错误的产生:
Scan free lists --扫描Free...
分类:
其他好文 时间:
2014-08-02 15:34:23
阅读次数:
317
【Camera’s Depth Texture】 In Unity a Camera can generate a depth or depth+normals texture. This is a minimalistic G-buffer texture that can be used fo....
分类:
其他好文 时间:
2014-08-02 15:05:33
阅读次数:
202