草庐IT

reallocate

全部标签

python - 在常见的实现中,realloc 实际上会缩小缓冲区吗?

在Linux/Glibc、Windows/MSVC和BSD/MacOSX等常见实现中,将void*p=malloc(N+M);//assumethisdoesn'tfailp=realloc(p,N);//northis对于N,M>0,在realloc调用中,实际上收缩了malloc返回的缓冲区,从某种意义上说,最多M字节可能会返回到空闲列表?更重要的是,它是否有可能重新分配缓冲区?我想知道,因为我刚刚在numpy.ndarray之上实现了动态数组,并且我正在执行resize,它调用realloc,以获得正确的最终尺寸。我可以跳过最后的resize作为优化(以永久过度分配为代价),我想

iphone - 设置对象 nil 与 release+realloc

这不是垃圾收集环境我有一个类实例变量,在我运行时的某个时刻,我需要使用不同于最初构造的数据集重新初始化。假设地说,如果我有一个NSMutableArray或一个NSMutableDictionary,做一些事情会更有效吗,例如:[myArrrelease];myArr=[[NSMutableArrayalloc]init....];或者只是,myArr=nil;myArr会释放对象并让我没有指向内存中存储的指针以便我可以重新使用myArr吗? 最佳答案 如果您单独执行myArr=nil;,那么您将丢失可以将release消息发送到的

iphone - 设置对象 nil 与 release+realloc

这不是垃圾收集环境我有一个类实例变量,在我运行时的某个时刻,我需要使用不同于最初构造的数据集重新初始化。假设地说,如果我有一个NSMutableArray或一个NSMutableDictionary,做一些事情会更有效吗,例如:[myArrrelease];myArr=[[NSMutableArrayalloc]init....];或者只是,myArr=nil;myArr会释放对象并让我没有指向内存中存储的指针以便我可以重新使用myArr吗? 最佳答案 如果您单独执行myArr=nil;,那么您将丢失可以将release消息发送到的

c++ - 使用 HWLOC 的 NUMA 系统的 realloc()

我有几个自定义分配器,它们提供了不同的方法来根据不同的策略分配内存。其中之一在定义的NUMA节点上分配内存。分配器的接口(interface)很简单templateclassNumaNodeStrategy{public:staticvoid*allocate(constsize_tsz){}staticvoid*reallocate(void*old,size_tsz,size_told_sz){}staticvoiddeallocate(void*p,size_tsz){}};分配本身是使用hwloc_alloc_membind_nodeset()方法处理的,并为分配策略等设置了相

c++ - 使用 HWLOC 的 NUMA 系统的 realloc()

我有几个自定义分配器,它们提供了不同的方法来根据不同的策略分配内存。其中之一在定义的NUMA节点上分配内存。分配器的接口(interface)很简单templateclassNumaNodeStrategy{public:staticvoid*allocate(constsize_tsz){}staticvoid*reallocate(void*old,size_tsz,size_told_sz){}staticvoiddeallocate(void*p,size_tsz){}};分配本身是使用hwloc_alloc_membind_nodeset()方法处理的,并为分配策略等设置了相

c - SECCOMP:如何模拟 malloc、realloc 和 free?

我想在我的服务器上执行任意(有潜在危险的)二进制文件。因此,我使用objcopy将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小main函数中,该函数为RLIMIT_CPU设置适当的值,并且切换SECCOMP在调用other_main之前标记。到目前为止,我对这个解决方案非常满意。现在的问题是,第3方程序代码可能包含对malloc的一些调用,这可能会立即终止程序(不允许使用sbrk)。因此,我想在设置应该由malloc/realloc/calloc/free使用的SECCOMP之前预先分配一些合理大小的数组(例如20MB)。不幸的是,我不知道如何存档最后

c - SECCOMP:如何模拟 malloc、realloc 和 free?

我想在我的服务器上执行任意(有潜在危险的)二进制文件。因此,我使用objcopy将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小main函数中,该函数为RLIMIT_CPU设置适当的值,并且切换SECCOMP在调用other_main之前标记。到目前为止,我对这个解决方案非常满意。现在的问题是,第3方程序代码可能包含对malloc的一些调用,这可能会立即终止程序(不允许使用sbrk)。因此,我想在设置应该由malloc/realloc/calloc/free使用的SECCOMP之前预先分配一些合理大小的数组(例如20MB)。不幸的是,我不知道如何存档最后

c++ - realloc 调用会引入多少开销?

我在for循环的每次迭代中都使用realloc,该循环迭代次数超过10000次。这是一个好习惯吗?realloc调用很多次会报错吗? 最佳答案 除非您的内存耗尽(任何其他分配器也会发生这种情况),否则它不会失败-但如果您设法预先估计所需的存储空间,您的代码通常会运行得更快。通常最好只运行一个额外的循环来确定存储要求。我不会说realloc是不行的,但这也不是好的做法。 关于c++-realloc调用会引入多少开销?,我们在StackOverflow上找到一个类似的问题:

c++ - realloc 调用会引入多少开销?

我在for循环的每次迭代中都使用realloc,该循环迭代次数超过10000次。这是一个好习惯吗?realloc调用很多次会报错吗? 最佳答案 除非您的内存耗尽(任何其他分配器也会发生这种情况),否则它不会失败-但如果您设法预先估计所需的存储空间,您的代码通常会运行得更快。通常最好只运行一个额外的循环来确定存储要求。我不会说realloc是不行的,但这也不是好的做法。 关于c++-realloc调用会引入多少开销?,我们在StackOverflow上找到一个类似的问题: