共享内存
共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内...
分类:
系统相关 时间:
2014-10-12 23:16:18
阅读次数:
410
首先简单说一下标准库中malloc实现原理:
标准库内部通过一个双向链表,管理在堆中动态分配的内存。
malloc函数分配内存时会附加若干(通常是12个)字节,存放控制信息。
该信息一旦被意外损坏,可能在后续操作中引发异常。
mmap/munmap 底层不维护任何东西,只是返回一个首地址,所分配内存位于堆中。
brk/sbrk 底层维护一个...
分类:
其他好文 时间:
2014-10-12 15:23:58
阅读次数:
224
java的安全性编程其实也是略带了点防御性编程的意思在里面,其实java作为一门编程语言,相对C,c++,本身算比较安全的,跟C,C++这种偏底层的编程语言比,java少了显示的指针调用,少了程序上的内存释放,回收,这些统统都交给了JVM,而且在内存分配的也做了一些检测,诸如越界检测ArrayIndexOutOf,还有空指针保存NullPointerException,这一切的不同使得java的使...
分类:
编程语言 时间:
2014-10-12 12:24:04
阅读次数:
216
class X{};class Y:public virtual X{};class Z:public virtual X{};class A:public Y,public Z{};使用sizeof在vs210上计算上面类的大小,计算结果如下 可以看到empty virtual base cla....
分类:
其他好文 时间:
2014-10-11 19:14:16
阅读次数:
284
#include #define maxsize 5000char buf[maxsize];char *head = buf;char *new(int size){ //分配元素字长 //可用内存分配完毕 if (maxsize - (buf - head) < size) return ...
分类:
其他好文 时间:
2014-10-09 22:14:27
阅读次数:
173
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为下面几个部分 1、栈区(stack)— 由编译器自己主动分配释放 ,存放函数的參数值,局部变量的值等。其 操作方式相似于数据结构中的栈。 2、堆区(heap) — 一般由程序猿分配释放, 若程序猿不释放,程序结束时可能由O...
分类:
其他好文 时间:
2014-10-09 21:40:17
阅读次数:
215
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的...
分类:
编程语言 时间:
2014-10-09 16:21:48
阅读次数:
304
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为下面几个部分 1、栈区(stack)— 由编译器自己主动分配释放 ,存放函数的參数值,局部变量的值等。其 操作方式相似于数据结构中的栈。 2、堆区(heap) — 一般由程序猿分配释放, 若程序猿不释放,程序结束时可能由O...
分类:
其他好文 时间:
2014-10-09 01:16:57
阅读次数:
207
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况,主要测试以下几种:(1).cpu性能(2).磁盘io性能(3).调度程序性能(4).内存分配及传输速度(5).POSIX线程性能(6).数据库性能(OLTP基准测试)1.下载和安装sysbench工具[root..
分类:
数据库 时间:
2014-10-08 15:36:06
阅读次数:
256
先看看头文件里的定义,定义了一些出错信息,几个内存管理接口,和宏。 几个宏的定义也是用到了内存分配的几个接口。newvector 在之前的词法分析里已经出现了。 几个接口,看函数名字比较容易看出来它的作用。下面...
分类:
其他好文 时间:
2014-10-08 00:06:14
阅读次数:
302