草庐IT

mmap_alloc

全部标签

c - mmap 物理连续内存

我在这里可能有一些误解,请耐心等待。我编写了一个从相机捕捉图像的程序。正如我在V4L2documentation中找到的那样,我正在使用mmap在相机和我的应用程序之间共享内存。.这很好用。现在我的处理器(它是TI的DM3730)也有一个DSP。我想使用DSP,但它需要物理连续内存。TI提供驱动程序来分配内存。我的问题是,现在我浪费了很多时间来将映射的内存复制到物理连续内存中。有没有办法告诉mmap它不应该自己分配内存,而是告诉mmap使用我分配的内存。为了让您了解我在做什么(当然缺少很多代码,但我非常接近V4L2文档。我希望这足以理解我的问题)://reservephysicalco

升级到 Lollipop 后,Android NDK mmap 调用在 32 位设备上中断

我正在尝试获取784MiB的内存。是的,我知道这对于32位手机来说很多,但以下调用在Android5.0之前有效:mmap(0,0x31000000,PROT_NONE,MAP_ANON|MAP_SHARED,-1,0);但是,在来自不同制造商的三款不同设备上,升级到Android5.0打破了这一点。我认为这是5.0中内存分配功能的一些变化;也许需要传入不同的标志?这是logcat中返回的错误消息:E/libc﹕mmapfail(pid9994,tid10125,size822083584,flags0x21,errno12(Outofmemory)) 最佳

Python 内存错误 : cannot allocate array memory

我需要读取一个250MB的CSV文件,其中包含~7000行和~9000列。每一行代表一个图像,每一列是一个像素(灰度值0-255)我从一个简单的np.loadtxt("data/training_nohead.csv",delimiter=",")开始,但这给了我一个内存错误。我觉得这很奇怪,因为我正在运行64位Python并安装了8GB内存,但它在仅使用大约512MB后就死了。此后我尝试了其他几种策略,包括:importfileinput并一次读取一行,将它们附加到数组中np.fromstring读入整个文件后np.genfromtext手动解析文件(因为所有数据都是整数,这很容易编

arrays - Fortran 中没有 Allocate() 的可变大小数组

有没有办法在Fortran中创建可变大小的数组在堆栈上?Allocate()对我不起作用,因为它将数组放在堆上。这可能会导致并行化问题(请参阅我的另一个问题:OpenMP:poorperformanceofheaparrays(stackarraysworkfine))。当然,一些智能内存管理可以解决这个问题,但是Fortran中的内存管理听起来很傻。基本上,我正在寻找与C语言中以下内容的Fortran等效项:scanf("%d",N);intmyarray[N];重申:我不想Integer,PARAMETER::N=100Integer,Dimension(N)::myarray因为

android.database.CursorWindowAllocationException : Cursor window allocation of 2048 kb failed even after closing cursor

关于CursorWindowAllocatoinException的SO有很多问题:SQLiteAndroidDatabaseCursorwindowallocationof2048kbfailedCouldnotallocateCursorWindowOutofMemorywhenallocatingcursorsAndroidSQLiteCursorWindowAllocationExceptioncrash他们都建议游标在使用后必须关闭。但这并没有解决我的问题。这是我的代码:Stringquery="selectserialfromtbl1unionselectserialfro

Python os.fork OSError : [Errno 12] Cannot allocate memory (but memory not the issue)

我有类似的问题:Pythonsubprocess.Popen"OSError:[Errno12]Cannotallocatememory"我有一个守护进程可以正常运行几分钟,然后无法通过popen2.Popen3()运行shell程序。它产生20个线程。内存似乎不是问题。这是机器上唯一运行的程序,它有2G的RAM,它使用的内存不到400M。我一直在记录ru_maxrss,这只有50M(在引发OSError之前和之后)。ulimit-a:corefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedschedulingpriority(-e

c - zlib,放气 : How much memory to allocate?

我正在使用zlib压缩文本数据流。文本数据以block的形式出现,对于每个block,deflate()被调用,flush设置为Z_NO_FLUSH.检索到所有block后,deflate()调用flush设置为Z_FINISH.当然,deflate()不会在每次调用时产生压缩输出。它在内部累积数据以实现高压缩率。没关系!每次deflate()生成压缩输出,该输出被附加到数据库字段-一个缓慢的过程。但是,一旦deflate()生成压缩数据,该数据可能不适合提供的输出缓冲区,deflate_out.因此多次调用deflate()是必须的。这就是我想要避免的:Isthereawaytoma

linux - mmap 和内存使用情况

我正在编写一个程序,它从网络接收大量数据(大小不同),处理它们并将它们写入内存。由于某些数据可能非常大,我目前的方法是限制使用的缓冲区大小。如果一block大于最大缓冲区大小,我将数据写入一个临时文件,然后以block的形式读取该文件以进行处理和永久存储。我想知道这是否可以改进。我一直在阅读有关mmap的文章,但我不能百分百确定它是否可以帮助我。我的想法是使用mmap来读取临时文件。这有什么帮助吗?我主要担心的是,偶尔的大块数据不应该填满我的主内存,导致其他所有内容都被换出。另外,您认为使用临时文件的方法有用吗?我应该这样做,还是应该相信linux内存管理器为我完成这项工作?还是我应该

Java JNI : Memory allocation/partitioning

在使用JNI时,JNI二进制文件是使用自己的内存,还是使用分配给JVM的部分内存?详情当您将-Xmx1024m指定为JVM选项时,JVM是否将所有1024mb内存分配给Java对象?它是否将其中的一部分用于Java对象而将部分用于JNI二进制文件,或者JNI二进制文件是否必须使用除此数量之外的内存?在这种情况下,JVM是如何分配/分区/管理内存使用的?相关问题:Javamemoryallocationlimit 最佳答案 当我们在一些JNI代码中发生内存泄漏时,我第一手发现,JNI二进制文件在任何JVM堆空间之外的JVM进程中使用它

Git 克隆因内存不足错误而失败 - "fatal: out of memory, malloc failed (tried to allocate 905574791 bytes)/fatal: index-pack failed"

我正在尝试将大型(1.4GB)Git存储库克隆到具有384MBRAM的32位DebianVM。我正在使用Git1.7.2.5,并使用SSH协议(protocol)进行克隆('gitcloneuser@host.com:/my/repo')克隆失败并显示以下消息:remote:Countingobjects:18797,done.remote:warning:subobtimalpack-outofmemoryremote:Compressingobjects:100%(10363/10363),done.fatal:outofmemory,mallocfailed(triedtoall