草庐IT

malloc_info

全部标签

Python 3.5 setup.py egg_info 失败,错误代码为 1 [Linux]

我和一个friend正在尝试通过DigitalOcean设置一个discord机器人。但是,当我们运行命令“sudo-Hpip3.5install--upgrade-rrequirements.txt”或类似的命令时,它总是以相同的错误结束。我们已经尝试安装python,它已经是最新的。这是日志。Youmayneedtousesudotoinstalldependencies.root@discord-bot:~/RadioOP#sudo-Hpip3.5install--upgrade-rrequirements.txt征集https://github.com/Rapptz/disco

c - Linux 堆结构和 malloc() 和 free() 的行为

我有一个带有Linux2.6内核的D​​ebian,我试图通过malloc()和free()了解堆的工作/行为方式。我试图搜索malloc()和free()算法和堆结构,但找不到任何有用的信息。不幸的是,我对Linux和内存的工作原理知之甚少,无法理解free()和malloc()的源代码。这是一个示例代码:intmain(intargc,char**argv){char*a,*b,*c;a=malloc(32);b=malloc(32);c=malloc(32);strcpy(a,argv[1]);strcpy(b,argv[2]);strcpy(c,argv[3]);free(c)

c - Malloc 内存问题

首先,我注意到当我malloc内存与calloc时,内存占用是不同的。我正在处理几GB的数据集。此数据可以是随机的。我希望我可以malloc大量内存并读取其中的任何随机数据并将其转换为float。然而,查看进程查看器中的内存占用空间显然没有被声明(与我看到大占用空间的calloc相比)。我运行了一个循环将数据写入内存,然后我看到内存占用量攀升。我所说的内存在我初始化之前实际上并没有被声明是否正确?最后,在我传递了1024*1024*128字节(进程查看器中为1024MB)之后,我开始出现段错误。然而,Calloc似乎将全部内存初始化为1GB。为什么在使用malloc的for循环中初始化

c - linux下的malloc,隐式限制

很抱歉,如果标题没有达到应有的描述性,这个问题很难用几句话来表达。我试图通过malloc'ing找出我有多少内存可用,如果可行,则写入该段。在某些系统(x86_64上的所有linux)上,我在写入第2049个mib时看到段错误。代码是:#include#include#include#include#includeintmain(intargc,char**argv){void*addr;intmegasize=2100///allocatethememoryviammapsameresult//addr=mmap((void*)0,(size_t)megasize它在某些系统上可靠地

c - Ubuntu 16.04 - malloc 实现。指向下一个 block 的指针在哪里?

我想了解glibc中的malloc实现是如何工作的。根据malloc的源代码(glibc2.23中的malloc.c),空闲内存块具有以下结构。chunk->+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Sizeofpreviouschunk|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+`head:'|Sizeofchunk,inbytes|P|mem->+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

linux - 在 Tegra TK1 上使用 malloc() 与 cudaHostAlloc() 分配的数据的 CPU 内存访问延迟

我正在执行一个简单的测试,比较主机(CPU正在执行访问)使用malloc()分配的数据和使用cudaHostAlloc()分配的数据的访问延迟。我注意到在JetsonTk1上访问使用cudaHostAlloc()分配的数据比访问使用malloc()分配的数据慢得多。独立GPU并非如此,似乎仅适用于TK1。经过一些调查,我发现用cudaHostAlloc()分配的数据被内存映射(mmap)到进程地址空间的/dev/nvmap区域。对于映射到进程堆上的普通malloc数据,情况并非如此。我知道此映射可能是允许GPU访问数据所必需的,因为cudaHostAlloc的数据必须从主机和设备可见。

c - Linux 中的 malloc() - "there is no guarantee that the memory really is available"?

我正在制作一款游戏,其中世界被分成描述世界的数据block。我将block保存在一个动态分配的数组中,因此在初始化世界数据结构时我必须使用malloc()。阅读malloc()manpage,有注释如下:Bydefault,Linuxfollowsanoptimisticmemoryallocationstrategy.Thismeansthatwhenmalloc()returnsnon-NULLthereisnoguaranteethatthememoryreallyisavailable.Incaseitturnsoutthatthesystemisoutofmemory,one

c - 强制 free() 将 malloc 内存返回给操作系统

似乎即使在我为malloc()分配的Linux进程释放了所有内存之后,内存仍保留给进程,不会返回给操作系统。默认运行valgrindmassif工具显示没有泄漏。使用--pages-as-heap=yes运行valgrind揭示了这一点:->13.77%(7,655,424B)0x35FEEEB069:brk(brk.c:31)->13.77%(7,655,424B)0x35FEEEB113:sbrk(sbrk.c:53)->13.77%(7,655,424B)0x35FEE82717:__default_morecore(morecore.c:48)->13.77%(7,655,42

c++ - realloc和calloc是否调用malloc?

这可能是一个简单的问题,但我找不到答案。malloc是在realloc内部调用还是在calloc内部调用?因为我以某种方式计算了malloc调用,所以这对我来说很有趣。谢谢 最佳答案 您不应尝试依赖系统、库或编译器依赖机制。即使您知道realloc在一个系统/编译器/库上调用malloc,您也不能确定它会在其他系统上以相同的方式处理。此时的问题是,您要实现的目标是什么。如果您需要跟踪内存使用情况,C++中有更好的方法,例如为operatorsnew和delete安装全局替换。在某些版本的Linux中,您还可以向malloc添加Hoo

c - 从 pthread 退出会释放 malloced 内存吗?

假设我已经使用pthread_create()启动了新线程,然后使用pthread_detach()将其分离。现在,在线程上下文的内,我使用malloc()分配了一些内存。当线程退出时,malloc'ed内存会自动释放吗? 最佳答案 线程共享内存资源(至少是POSIX)。malloc()/realloc()/free()内存管理实际上并不知道线程(至少到现在为止)。因此您应该将malloc()的结果视为简单的“资源”。它不是线程链接的。所以现在答案应该很明显了,分配的任何内存都没有链接到线程,所以它在线程退出时不是free()'d。