【发布时间】:2014-02-20 21:05:17
【问题描述】:
是否可以将放置在硬盘或固态磁盘中的数据地址保存在 RAM 中的容器中?
对于我的应用程序(C++/visual studio 2008),我将在 SSD 驱动器上创建一个存储库(目录),在该存储库中将有数千个(比如说 100000 个文件,每个文件大小为 3 MB)二进制文件(文件名是唯一ID)
某些应用程序必须对带有名称(Id's)的 tihs 目录执行搜索操作。
所以我想,如果我在 RAM 中创建一个类似地图的容器,并将键列 ID(文件名)和值设置为文件的物理地址(在 SSD 中),然后让应用程序在此映射中(在 RAM 中)执行搜索,如果找到数据,用地址检索数据(因为我们有物理地址)不会更快吗?
那么有可能做这样的事情吗?
【问题讨论】:
-
在硬盘驱动器上(尤其是在用户空间程序中)没有“物理”地址,更不用说在块可以四处移动的现代 SSD 上。
-
为了能够在一个包含数千个文件的目录中执行搜索,我们必须一一查看所有项目名称?不能进行任何类型的索引或其他操作以使搜索更快?
-
@JoachimPileborg:现代数据库确实可以,而且它们是相当普通的用户空间程序。 SSD的东西无关紧要,即使是HDD也可以进行块重映射。重要的是没有文件 system 正在重新映射地址。
标签: c++ performance file filesystems hard-drive