shared-memory相关内容

在 C++ 中寻找基于 Windows RAM 的共享内存解决方案

我面临一种情况,我需要将数百兆字节的内存从一个进程传递到另一个进程.现在我是通过文件来做的,它太慢了.我想为了让它更快,这些文件应该直接写入 RAM 并可以从另一个进程访问.不需要花哨的同步.一个进程将创建共享内存对象并用数据填充它们.另一个进程将读取并删除它们.但是,我进行了快速研究,似乎您无法在 Windows 的 RAM 中共享内存 - 共享内存由文件或分页文件支持.boost::inter ..
发布时间:2021-07-23 20:22:42 C/C++开发

在 Linux 中使用 ipcrm 删除共享内存

我正在使用共享内存应用程序,并使用以下命令删除段: ipcrm -M 0x0000162e(这是关键) 但我不知道我是否在做正确的事情,因为当我运行 ipcs 时,我看到了相同的段,但键是 0x0000000.那么内存段真的被删除了吗?当我多次运行我的应用程序时,我看到了不同的内存段,键为 0x000000,如下所示: key shmid owner perms bytes nattch ..
发布时间:2021-07-23 20:22:39 其他开发

Windows:调整共享内存的大小

当我在 Windows 上创建共享内存段时(如 CreateFileMapping(INVALID_HANDLE_VALUE, ...)),除了创建更大的段并复制数据之外,还有什么方法可以调整它的大小? 我在 MSDN 中读到文件映射具有固定大小,但是否有可能在同一内存上创建新映射?就像在 Linux 中一样,您可以在其中使用 shm_open(),然后再次使用 ftruncate() 和 ..
发布时间:2021-07-23 20:22:36 其他开发

将共享 GPU 内存与 TensorFlow 一起使用?

所以我在装有 GeForce GTX 980 显卡的 Windows 10 机器上安装了 GPU 版本的 TensorFlow. 诚然,我对显卡知之甚少,但据 dxdiag 称它确实有: 4060MB 专用内存 (VRAM) 和; 8163MB 共享内存 总共约 12224MB. 不过,我注意到的是,这个“共享"内存似乎毫无用处.当我开始训练模型时,VRAM 将填满, ..
发布时间:2021-07-23 20:22:35 其他开发

在 Windows 中查看共享内存的程序?

我正在寻找一个程序来查看和浏览 Windows x32/x64 中的(本地)共享内存. 我知道它存在,因为我以前见过它的实际应用.出于某种原因,Google 和 MSDN 在这一点上让我失望. 解决方案 我认为 Accesschk 可以做到这一点. 从命令行:accesschk.exe -osv >对象.txt 搜索:“类型:部分" ..
发布时间:2021-07-23 20:16:09 其他开发

PHP 和请求之间共享资源

我正在寻找一种在请求之间共享 PHP 资源的方法.首先,我想分享解析的XML.我有一些以只读模式使用的大型 XML,目前我必须为每个 HTTP 请求加载和解析它. 我读过这个:http://php.net/manual/en/function.shm-put-var.php 和其他共享内存 API 文档,我知道没有直接的方法将资源存储在共享内存中.这就是我在这里问的原因. 所以,我有 ..
发布时间:2021-07-09 18:44:51 PHP

Python 3.8 shared_memory resource_tracker 在应用程序关闭时产生意外警告

我正在使用 multiprocessing.Pool,它在 1 个或多个子进程中调用一个函数来生成大量数据. 工作进程创建一个 multiprocessing.shared_memory.SharedMemory 对象并使用由 shared_memory 分配的默认名称. worker 将 SharedMemory 对象的字符串名称返回给主进程. 在主进程中,SharedMemory 对象被 ..
发布时间:2021-06-28 19:10:33 Python

如何正确清理和重用 SysV 共享内存段?

我一直在为使用 Linux SysV SHM 接口的 API 编写一些粗糙的测试代码.即 ftok(), shmget(), shmctl(), shmat() 不幸的是,我不能随意更改此界面(例如使用 shm_open() 代替 或从轨道上将其炸毁). 我通过集成测试发现了一个错误,它使用共享内存生成两个不相关的进程,因为它没有使用 shmdt() 清理共享内存段.我进一步发现约定要 ..
发布时间:2021-06-18 20:20:08 服务器开发

从共享内存 C++ POSIX 读取字符串

在我的另一个问题中,一位用户帮助我通过共享内存发送字符串.但是当我尝试接收这个数据时,程序说Core dumped.我试试这个代码: key_t lineKey = ftok("/tmp", '1');int sharedLine = shmget(lineKey, sizeof(std::string), IPC_CREAT | 0666);std::string *line = (std:: ..
发布时间:2021-06-18 20:20:05 C/C++开发

opencv矩阵进入共享内存

我想在两个 linux 进程之间共享一个 CvMat 对象(OpenCV 库中的一个矩阵),为此我使用共享内存.一个进程(服务器)将从网络摄像头捕获一帧(矩阵),将其转换为灰度,使用共享内存进行共享并在屏幕上显示该帧.另一个进程(客户端)将读取共享帧并执行一些操作.请参阅下面的代码. 问题似乎是客户端没有读取信息,因为 'rows' 和 'cols' 为零(或者服务器没有写入共享内存).无论 ..
发布时间:2021-06-12 19:51:09 其他开发

Java 线程 - 内存一致性错误

我正在阅读 Sun 的并发教程. 但我不明白什么是内存一致性错误?我在谷歌上搜索过,但没有找到任何有用的教程或文章. 我知道这个问题是一个主观问题,因此您可以向我提供有关上述主题的文章的链接. 如果能用简单的例子来解释就好了. 解决方案 您可以阅读有关 写后读 (RAW)、写后写 (WAW) 和读后写 (WAR) 危害 以了解有关此主题的更多信息.这些危害指的是流水线进程 ..
发布时间:2021-06-04 20:07:38 Java开发

使用Python共享内存的分段错误

函数 store_in_shm 将numpy数组写入共享内存,而第二个函数 read_from_shm 使用相同共享内存空间中的数据创建numpy数组并返回numpy数组 但是,在Python 3.8中运行代码会产生以下分段错误: zsh:分段错误python foo.py 为什么从函数 read_from_shm 内部访问numpy数组没有问题,但是在函数外部再次访问numpy ..
发布时间:2021-05-31 18:48:58 Python

Linux上共享内存的寿命是多少

我正在使用ftok/shmget/shmat/shmdt函数在Linux的共享段上进行创建,写入和读取操作. 如果我在一个程序中写入该段然后退出,随后又从另一个程序中读取该段,那么我很惊讶地发现数据仍然存在. 我希望当共享段的最后一个进程执行shmdt时,该段将被释放. 我可以依靠这种行为吗?还是类似于在free()之后继续使用指针? 解决方案 共享内存区域将一直保留,直 ..
发布时间:2021-05-29 23:18:32 服务器开发

从shm_open()+ mmap()更改为共享内存的可见性

假设我使用的是CentOS 7 x86_64 + GCC 7. 我想在共享内存中创建一个环形缓冲区. 如果我有两个过程Producer和Consumer,并且它们都共享一个命名的共享内存,则该共享内存是通过shm_open()+ mmap()创建/访问的. 如果Producer编写如下内容: struct数据{uint64_t长度;字符数据[100];} 随机访问共享内存 ..
发布时间:2021-05-29 23:07:55 服务器开发

原子比较,多处理器,C/C ++(Linux)

我在多处理器系统上的共享内存x中有一个变量. void MyFunction(volatile int * x){如果 (*x != 0) {//做一点事}} 其他进程(可能在不同的处理器上)将使用gcc内置的原子操作(例如__sync_bool_compare_and_swap等)写入x. 我认为我遇到了一些缓存并发问题,有时x最终用新值更新之前需要花费一些时间. 如果存在这 ..
发布时间:2021-05-29 22:48:54 服务器开发