问题标签 [memory-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Mem-map 在矩阵深处时会变慢
所以我有一个非常大的矩阵(120000 x 120000),我在整个矩阵上运行一个脚本,将一个元素与其他所有元素进行比较。因为我无法将整个内容保存在内存中,所以我使用 memmap。我还定期刷新矩阵,以确保如果计算机崩溃或发生什么我不会丢失所有数据。但是,我注意到我进入矩阵的“更深”,可以说,刷新数据所需的时间增加了。最终,保存我的结果最多需要五分钟。Woudl有人知道它为什么这样做吗?有没有更好的方法可以做到这一点?我会发布一些代码,但我相当肯定我没有做任何“错误”的事情。
c - 如何访问由C(Windows)中的父进程创建的内存映射文件
我创建了映射文件并从父进程的视图中读取。但是,我无法让子进程访问内存映射文件。你能检查下面的代码并帮我弄清楚吗?
这是我的子进程代码:
这是父代码:
linux - 如何从内核访问用户空间缓冲区
我正在开发一个 linux 设备驱动程序,我需要了解如何访问用户分配的内存区域。详细来说,对于一个 32 字节的缓冲区,用户调用:
现在,在内核模块 ioctl 中,我需要 phys 地址将其传递给 pci 设备以进行 DMA 操作。我目前正在做的是(此示例仅适用于 1 页,以了解它是否正确):
代码工作正常,但我的问题是:
- 谁在“固定”页面?或者我必须明确调用 SetPageReserved(pages_list[0])?
- 当我完成使用缓冲区时,它如何用于发布?pci_unmap 仅此而已?即使我调用了 SetPageReserved?
- 一般来说,在用户空间地址上调用 virt_to_phys 是否安全(如果页面被固定)?(或 virt_to_bus 在 DMA 的情况下)
- 这是访问用户空间缓冲区的“最佳实践”吗?
memory - 谁在启动期间加载 BIOS 和内存映射
对于 BIOS,维基百科指出:
BIOS 内存的地址位于计算机首次启动时将执行的位置。然后跳转指令指示处理器开始执行 BIOS 中的代码。
我知道 BIOS 存在于非易失性存储器中。但它必须加载到 RAM 中才能执行。那么谁将 BIOS 加载到 RAM 中呢?
我还读到在启动时加载了内存映射。BIOS 是否加载此内存映射?存储在哪里?
linux - 为什么 proc/ID/maps 有多个共享库条目
我正在查看嵌入式 Linux 下的 proc/ID/maps,我注意到一些共享库在进程的内存映射中出现了几次,为什么会这样?
windows - 将物理内存地址映射到 Windows 中的用户空间应用程序
是否可以将物理内存地址映射到 Windows 用户空间应用程序虚拟地址以进行读/写?
编辑:我有一个实时操作系统与 Windows 并行运行的系统。客户操作系统(RTOS)能够通过将物理地址映射到其虚拟内存空间来读取/写入内存映射的 PCIe 从属外围设备。
我想做的是能够从 Windows 用户空间应用程序直接与 PCIe 从设备通信,但这需要我将该物理内存地址映射到用户空间虚拟内存空间。
提前致谢。
c++ - C++结构序列化
我正在实现一个数据缓冲区,它从一个应用程序接收带有过程调用的音频数据包(没有网络协议,只有两个应用程序在同一台机器上运行),并将其放入 Struct 并写入映射文件。
所以编写器应用程序可能会调用我的应用程序的程序,这将是void writeData (DataItem data, Timestamp ts)
每秒大约 15 次,每个数据项大小为 2MB。
我的应用程序应将数据存储到类似的结构中
并将其写入文件以供将来阅读。
因此,由于很难将结构按原样保存到文件中,因此我认为(?)我需要将其编写为二进制文件。所以我不确定我是否需要使用任何类型的序列化boost serialization
?
而且我不知道如何为内存映射文件对齐这些数据,以及如何重新构造数据以从文件中读取。
我在互联网上搜索,但找不到太多代码示例。示例代码将非常受欢迎。
顺便说一句,我使用的是嵌入式 Windows 7 x64 和 Visual Studio 2008。
谢谢...
java - 如何为嵌入式 neo4j 2.0.1 配置内存映射设置?
Neo4j 手册将属性称为:
我猜这些映射到以下 Java API:
有人可以确认吗?
java - 如何将堆转储的本机内存使用统计信息映射到 JVM 内存映射图
我有以下信息:
本机内存使用
类型、使用的内存(字节)、对象计数
ByteCode, 3015540, 28000
Const Pool, 1978128, 3412
UTF8 Strings, 6089367, 89281
UTF16 Strings, 1934, 8
Offscreen Images, 0, 0
Static Data, 52624, 1393 Bitmaps
, 0, 0
CWT, 288172, 579
VTables2964,
CVTables, 469712, 3629
ITables, 273504, 2814
Class Meta, 59484, 2835
GCTables, 64940, 2052
GCStaticTables, 31864, 1372
Method Blocks, 1575440, 3392 (num methods : 32821)
Field Blocks, 345888 CV
VM 块数据 TYPE_MMPOINTER, 0, 0
VM 块数据 TYPE_OBJECTREF, 12292, 1
VM 块数据 TYPE_PURGEPROCPTR, 0, 0
VM 块数据 TYPE_FORWARDREF, 0, 0
VM 块数据 TYPE_MONITORCACHE, 6422724, 49
VM 块数据 TYPE_PROFTHREADINFO, 0, 0
VM 块数据 TYPE_CODEFIXUP, 0, 0
VM 块数据 TYPE_WIDGET, 8196, 1
VM 块数据 TYPE_MEMTRACKER, 0, 0
VM 块数据 TYPE_GRAPHICSCONTEXT, 0, 0
VM 哈希, 17432, 2
生成代码, 0, 0
JAR 文件名表, 4424, 7
JAR 文件表, 6720, 7
未指定, 3201427, 9318
但我想知道如何将其映射到 JVM 内存映射,以便更清楚地理解这一点。
我在互联网上进行了搜索,但无法找到与其中所有内容相似的正确地图。
欢迎所有指针。
linux - ARM系统内存映射
我正在通过 ARM 信息中心了解 ARM 架构的系统内存映射。
在下面的链接中,他们说 ARM 内存映射是固定的,外部 RAM 映射到
0x60000000 - 0x9FFFFFFF。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0179b/CHDDBAEC.html
而在此链接中,他们说 RAM 可以通过 AHB 解码器重新映射到任何位置。 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0226a/ch04s03s02.html
这些内存映射是否相同,请解释差异。