boost-interprocess

    1热度

    1回答

    我正在训练基于单个数据库的多个网络。 所以为了加快速度并减少磁盘读数,我使用了由boost提供的shared_memory_object类。由于实验室工作站目前无法使用,因此我将代码迁移到个人电脑。 在实验室工作站上,主机程序成功将所有数据读取到内存中。但在我的电脑上,奇怪的是它会在系统驱动器上创建一个文件,而不是将数据存储在内存中。整个数据库大约3.7 GB;该实验室工作站具有32 GB内存并运

    0热度

    2回答

    我的平台是Visual Studio 2012,我需要在32位和64位进程之间实现IPC。我有所有二进制文件的源代码,但由于几个原因,一个进程应该保持32位。我已经研究了boost手册,看起来Boost.Interprocess拥有我需要的一切 - STL就像结构和同步对象。但是在32位和64位进程之间找不到有关IPC的文档。 谢谢。

    9热度

    2回答

    我有下面的“一次机会异常”消息,它来自我写的一个DLL,它运行在我没有写入的可执行文件中。也就是说,DLL是一个插件。这个异常第一次触发时,尝试打开共享内存映射文件失败。如果我忽略第一次机会异常并运行,应用程序最终会冻结或崩溃。 First-chance exception at 0x76a7c41f in notmyexe.exe: Microsoft C++ exception: boost:

    5热度

    1回答

    首先我将概述带源代码的域。 namespace bip=boost::interprocess; typedef bip::allocator<int, bip::managed_mapped_file::segment_manager> allocator; typedef bip::vector<int, allocator> vector; bip::managed_mapped_

    1热度

    2回答

    我有2个进程共享一个由互斥锁和条件同步的队列。我在我的一个进程中有以下代码。 named_mutex mutex(open_only, "MyMutex"); int main() { while(1) { scoped_lock <named_mutex> lock(mutex) //do some processing } }

    0热度

    1回答

    我有2个进程(生产者和消费者)在共享内存中共享一个int deque,我让生产者进程在deque中放置2个数字,然后进入等待状态,失去它的互斥锁锁。然后让消费者的流程去掉数字并打印出来。然后它会通知制片人正在等待的情况。消费者然后继续等待第二个条件。在这种情况下,制片人不会醒来。我在进程之间使用相同的互斥量。请在下面找到所有代码。 包含文件shared_memory.h: #ifndef Shar

    0热度

    1回答

    我做了一些测试与提升进程和ptree结构,我有段错误,当我尝试阅读发送的消息(或当我尝试解析它在json中)。 我在debian linux上使用boost1.49。 我正在序列化它在json中以备后用,并且因为我没有找到任何好的文档来直接序列化boost属性三。 这是我使用的测试代码(commed说得清的段错误的): recv.cc #include <boost/property_tree/p

    1热度

    2回答

    我正在使用boost :: interprocess :: message_queue在两个进程之间进行进程间通信。 这是我第一次使用它,所以这个异常对我来说并不清楚,因为我找不到任何文档。 我有类的设置如下: struct Pos{float X,Y,Z;}; struct Quat{float W,X,Y,Z;}; typedef unsigned char Byte; struct N

    3热度

    1回答

    我需要使用一个旧的C++项目,其中每个进程都将相同的数据加载到内存中。这是只读的,每个进程都有完全相同的数据副本。最近服务已经开始颠簸它运行的系统。 我正在评估可以对此进行更改的方式,我认为boost interprocess库非常适合我的用例。我考虑的另一件事是使用外部数据存储,但由于延迟,我不太愿意使用它。 我看了一下boost apis,他们似乎要求我们指定共享内存区域的大小。在我的情况下,

    1热度

    1回答

    我想在共享内存中保留大量的(经常重复的)字符串,所以我使用了Boost的轻量级和进程间basic_string功能。为了确保字符串实际存储在共享内存中,我需要在flyweight使用的hashed_factory中提供一个自定义分配器。 但是,当我将自定义分配器指定为hashed_factory时,无法编译(g ++ 4.2.1)...可能是因为它需要额外的参数来指定段管理器。什么是语法来得到这个