是否可以将一个放在硬盘或固态硬盘中的数据地址保存在RAM中的容器中?
对于我的应用程序 (C++/visual studio 2008),我将在 SSD 驱动器上创建一个存储库(目录),在该存储库中将有数千个(比如说 100000 个文件,每个文件大小约为 3 MB)二进制文件(文件名是唯一标识)
某些应用程序必须使用名称 (Id) 对 tihs 目录执行搜索操作。
所以我想,如果我在 RAM 中创建一个类似 map 的容器,并将键列 ID(文件名)和值设置为文件的物理地址(在 SSD 中),然后让应用程序在此映射(在 RAM 中)中执行搜索,如果找到数据,使用地址检索数据(因为我们有物理地址)不会更快吗?
那么有没有可能做这样的事情呢?
最佳答案
有几个简单的选择:使用数据库,或内存映射一堆文件。在后一种情况下,您必须意识到表面上的内存操作实际上是磁盘 I/O,而且速度要慢得多。但是内存映射文件的结果仍然是指向其内容的相当普通的指针。这比您提议的“物理地址”更容易。
关于c++ - 保留硬盘中数据的物理地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21424688/