【问题标题】:create a queue in a specific location on the disk c++在磁盘上的特定位置创建队列 c++
【发布时间】:2012-10-23 17:49:18
【问题描述】:

如何在 C++ 中创建将分配到特定路径的队列?

我将 ramfs 安装在 /mnt/ram/ 上,这是一个 RAM 文件夹而不是磁盘,并且希望队列在那里,因此性能会比在磁盘上分配队列更好。

队列是c++的队列库,即:

#include <queue>
queue<string> requestsqueue;

谢谢

【问题讨论】:

  • 你在说什么类型的队列?因为std::deque 在内存中,而不是在任何地方的FS 上。如果您担心性能,为什么要在 FS 上放任何东西?
  • 你需要接受更多的人来帮助你的答案。
  • 假装我们是白痴。 “队列”是什么意思?它的文档在哪里?创建它的一个命令是什么?
  • 我很好奇——是什么书、网页或个人对话让您相信文件系统中存在std::queue

标签: c++ linux queue ram alloc


【解决方案1】:

如何在 C++ 中创建将分配到特定路径的队列?

你不能。

队列是c++的队列库,即:

#include <queue>
queue<string> requestsqueue;

标准队列数据结构std::queue 仅存在于内存中。它与任何磁盘文件以及文件系统中的任何路径都没有特殊关系。

【讨论】:

    【解决方案2】:

    您可以在 /mnt/ram 中创建文件,就像在其他任何地方创建文件一样。不同之处在于 ramfs 的内容会在系统重启时被删除。

    您可能还想考虑使用 tmpfs,因为它的大小可能会受到限制,因此您不会用完所有内存,并且有交换空间支持,因此如果一段时间不使用它可以被分页。

    Here's a bit more info.

    【讨论】:

    • 这个答案具有误导性——std::queue 不会进入磁盘,因此关于操作任何挂载点的讨论并没有真正的帮助
    • @pm100 这回答了所提出的问题。 std::queue 在我回答时不是问题的一部分。他没有具体说明队列使用的数据结构,而是专门询问了存储在 ram 磁盘中与分配在物理磁盘上的区别。
    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多