ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际
存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元
素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由
于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,而
LinkedList 使用双向链表实现存储,按序号索引数据需...
分类:
其他好文 时间:
2015-06-09 17:31:45
阅读次数:
116
wrapper.c
#include
#include
#include
#include
int my_shm_open(char* filename, int open_flag){
int shm_id;
key_t key;
key = ftok(filename, 0x03);
if(key == -1){
return ...
分类:
编程语言 时间:
2015-06-09 09:55:53
阅读次数:
152
声明:本文章转自麻袋爸爸 一,TimesTen应用场景 在谈论TimesTen内存数据库应用场景之前,我们先来介绍一下什么是内存数据库,及其工作原理吧。内存数据库,顾名思义就是将数据存放在内存中,并通过内存操作直接完成数据库相关操作。与磁盘相比,数据在内存中的读写速度要高出几个数量级,能够极大地提高...
分类:
其他好文 时间:
2015-06-02 23:21:51
阅读次数:
145
目前,MongoDB使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。MongoDB并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟缓存管理器去处理,这样的好处...
分类:
数据库 时间:
2015-05-29 17:23:47
阅读次数:
161
redis原理 redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。 不过,因为一般的内存操作都是简单存取操作,线程占用时间相对较短,主要问题在io上,因此,redis这种模型是...
分类:
编程语言 时间:
2015-05-03 12:08:22
阅读次数:
257
java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他的线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序,volatile变量 不会被缓存在寄存器或者对处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值。访问volatile变量不会执行加锁操作,因此也...
分类:
编程语言 时间:
2015-04-28 22:54:20
阅读次数:
235
1.什么叫分配内存,什么叫释放内存
分配内存:操作系统把某一块内存空间的使用权力分配给该程序
内存释放:操作系统把分配给该程序的内存空间的使用权力收回,
该程序就不能使用这块内存空间
附注:释放内存不是把该内存的数据清零
2.变量为什么必须初始化
不初始化,变量通常是垃圾值,很可能是上次程序结束遗留下来的数据。
3.详细说明系统如何执行:int i = 5...
分类:
其他好文 时间:
2015-04-25 13:42:13
阅读次数:
193
IOS开发语言Swift入门连载—闭包闭包是自包含的函数代码块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的 lambdas 函数比较相似。
闭包可以捕获和存储其所在上下文中任意常量和变量的引用。 这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。Swift 会为您管理在捕获过程中涉及到的所有内存操作。...
分类:
移动开发 时间:
2015-04-24 10:43:35
阅读次数:
181
源自最近遇到一个的问题,先介绍一下背景。项目中混用了C与C++编程范式,鉴于项目成员背景不一,每个模块的负责人可以自行2选1。同时为了提高效率,C范式的模块被允许使用STL库的部分容器(其实也就仅仅大量使用了vector而已)。开发环境是visual studio 2005 wiht sp1。那么问...
分类:
编程语言 时间:
2015-04-19 14:22:16
阅读次数:
187