阅读更多

8顶
0踩

互联网

原创新闻 12个优秀的Web设计网站

2008-06-25 09:34 by 见习记者 numenzq 评论(2) 有4539人浏览
Web
8
0
评论 共 2 条 请登录后发表评论
2 楼 halai 2008-06-26 11:01
呵呵..很不错的呀
1 楼 heyJoe 2008-06-26 09:09
看起来蛮有趣的……顶你一下~

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • windows进程间通讯--文件映射(FileMapping)

    多进程间通讯,是应用程序间常用的一种方式,今天简单的介绍的介绍一下利用文件映射进行进程间通讯。 一.原理介绍 每一个进程由两部分组成 1. 进程内核对象,2. 进程内存地址空间。不同的进程器地址空间相互隔离,无法相互访问,因此进程间通信变得十分困难。 FileMapping内核对象将将其与制定的一段内存映射到一起,在不同的进程打开FileMapping对象,获得其与其相关联的内存,可实现双方同

  • 用文件映射(File Mapping)实现进程间内存共享

        我们知道,在Windows中的每个进程都有自己独立的内存空间。该独立的内存空间包含了所有的可执行模块或DLL模块的代码和数据以及动态内存分配的空间。每个进程的内存空间只能被该进程访问,其他进程是不能访问的。    如果我们要想在进程间共享内存(也就是创建一块不同进程都能访问的内存),那就必须使用内核对象。因为内核对象由Windows系统内核所拥有,而不是由进程所拥有。    下面就用文件映

  • 操作系统 | 内存文件映射 —— 文件到内存的映射

    这么做是为了减少磁盘的IO操作,为了提高性能而考虑的,程序访问一般都带有局部性,局部性原理,在这里主要是指的空间局部性,即我们访问了文件的某一段数据,那么接下去很可能还会访问接下去的一段数据,由于磁盘IO操作的速度比直接访问内存慢了好几个数量级,所以OS根据局部性原理会在一次 read()系统调用过程中预读更多的文件数据缓存在内核IO缓冲区中,当继续访问的文件数据在缓冲区中时便直接拷贝数据到进程私有空间,避免了再次的低效率磁盘IO操作。(页表由页号和块号组成)进程看到的所有地址组成的空间,就是虚拟空间。

  • File Mapping析疑

        最初接触File Mapping是为了能够方便地处理一个几百兆的大文件,当时查了些资料大概了解了一下就匆匆动手了,因为知其然而不知其所以然,在使用过程中遇到了不少问题,今天在这里就是想把这些历史遗留问题解决掉。     问题一、Mapping有“映射”之意,那么在该语境中形成映射关系的双方是谁,也就是从哪里映射到哪里呢?     要回答这个问题,我们必须要对虚拟内存有所了解。现在操作系统...

  • 【IPC进程间通讯之三】内存映射文件Mapping File

    IPC进程间通信+共享内存Mapping                IPC(Inter-Process Communication,进程间通信)。         文件映射(Mapping)是一种将文件内容映射到内存地址的技术,通过对映射内存,读写文件如同读写内存一般简单。         多个进程映射同一个文件映射对象,也即多个进程映射到同一个物理存储页面,因此,当一个进程

  • C++ CreateFileMapping 内存映射实现快速读取文件

    共享内存的方式原理就是将一份物理内存映射到不同进程各自的虚拟地址空间上,这样每个进程都可以读取同一份数据,从而实现进程通信。因为是通过内存操作实现通信,因此是一种最高效的数据交换方法。本文主要讲述的使用内存映射文件的目的是访问磁盘上的数据文件。你可以不必对文件执行I / O操作,并且可以不必对文件内容进行缓存。1、CreateFileMapping// 创建一个内存映射文件的内核对象 2、MapViewOfFile // 将内存映射文件映射到进程的虚拟地址中 3、OpenFileMapping //

  • 通用FileMapping类

    #define FILEMAPPINGNAME L"xxx" template <typename _T> class CMemroySharePtr { public: CMemroySharePtr() :m_hMappingHdr(NULL) ,m_pMappingFile(NULL) { if ((m_hMappingHdr == NULL) ...

  • 内存映射文件的优势劣势体会

    现在才真正使用了一次mmap,之前是没有使用的需求。 优势体会: 1.内存映射文件虽然可以避免IO操作,性能更好,但是使用起来并不比fwrite,fread简单。 2.断电时正在写文件的话,该文件在开机之后就是空的了,内存映射可以避免这个问题,至少保证文件中是有数据的。 3.应该是可以用于IPC进程通信,目前还没有使用过这个。 劣势: 1.使用比较麻烦,还有一些细节要理解,字节对齐等等。 ...

  • CreateFileMapping在N个进程间共享一个HWND类型内存

    Windows高深啊,做点东西要查来查去,把人脑创造性转成机器服务 C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class CIPC { public:

  • 内存文件映射

    一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。   原理 首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中 一块大小

  • Windows文件内存映射的理解和应用

    首先我们想一个问题,为什么要用到文件内存?举个例子:如果你只是处理一个几KB 的txt文件,加载到内存里面。可能对系统的影响不大,那么试想,当你处理一个几个G的文件,难道你也要加载到内存么?所以内存映射对处理一些size比较庞大的文件,内存映射是一个不错的选择!先来讲解下我做文件内存映射的步骤吧:1.先用CreateFile()创建或者打开一个文件内核对象2.当创建件后指明了文件的路径,但是这个时...

  • 用内存映射文件读取大型文件

    引言 通常情况下,我们使用文件读写函数对文件进行处理,比如Win32 API 的CreateFile()、WriteFile()、ReadFile()等。 但是对于某些特殊应用领域,需要几十GB、几百GB的海量存储,常规处理方法显然行不通了,目前对于这种大文件的操作一般是以内存映射的方式来加以处理的。 CreateFile():用来创建一个读文件的句柄; CreateFileMapping

  • (理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝

      为了快速构建项目,使用高性能框架是我的职责,但若不去深究底层的细节会让我失去对技术的热爱。  探究的过程是痛苦并激动的,痛苦在于完全理解甚至要十天半月甚至没有机会去应用,激动在于技术的相同性,新的框架不再是我焦虑。  每一个底层细节的攻克,就越发觉得自己对计算机一无所知,这可能就是对知识的敬畏。 新IO和传统IO-intsmaze   新IO和传统IO都是用于进行输入/输出。   新IO采...

  • 内存共享函数OpenFileMapping,在release模式下返回NULL

    共享内存的步骤为:CreateFileMapping创建共享的内存空间;OpenFileMapping打开共享内存,返回HANDLE型句柄;MapViewOfFile获取内存映射到该程序的内存,可以进行读写操作。         在实验中遇到了意外的情况,具体应用情景为:win10环境下使用共享内存在两个不同程序之间传递数据。在release模式下第二个程序调用OpenFileMapping始终

  • 指针的访问方式

    <br />     文章还是由一个程序的来:注 sizeof(int)=4,小端模式<br />     1. int iArray【5】 = {1,2,3,4,5}<br />     2.int * piArray = iArray;<br />     3.unsigned char* pucArray = (unsigned char*) (piArray+2);<br />    4.printf(“%x,%x”,pucArray【0】,pucArray【2】);<br />结果输出3 0<br

  • 文件内存映射mmap解决大文件快速读写问题

    转自:http://blog.csdn.net/gulaizi/article/details/6325726 mmap函数主要用途有三个: 1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能; 2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间; 3、为无关联的进程提供共享内存空间,一般也是将一个

Global site tag (gtag.js) - Google Analytics