由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 有没有这样的memory management library?
相关主题
c里面有什么函数可以新手,一个C 库的问题
C++中释放的内存可能立即返回系统吗?一个关于空间分配的问题
问一个跟 memory (process address space) 的有关的问题 (转载)ask for help about AMD cluster
突然发现现在很反感malloc了奇怪的问题:关于一个简单的malloc()小程序 (转载)
请教关于C++内存管理Windows下多个DLL之间memory allocation问题
初学C,对什么该free一直搞不明白malloc per-thread arena
再问一个free()的问题被ptmalloc坑了
有谁对glibc的allocator有研究?内存池这个玩意...
相关话题的讨论汇总
话题: memory话题: 内存话题: library话题: management话题: 这样
进入Programming版参与讨论
1 (共1页)
g***l
发帖数: 2753
1
就是先在系统内存中分配一块大的内存,比如说10M,然后所有的memory malloc/
calloc/free都是在这个内存块里面操作。这样可以减少memory fragmentation.
谢谢。
d****n
发帖数: 1637
t****t
发帖数: 6806
3
除了这么干, 还能怎么干?
当然, 这样说不完全对, 比如说glibc对于大内存是用mmap分配的. 但是对于小内存,
本来就是这么干的啊, 除了glibc是逐渐增长的"大"内存, 但是就算逐渐增长, 内存也
是连续的.

【在 g***l 的大作中提到】
: 就是先在系统内存中分配一块大的内存,比如说10M,然后所有的memory malloc/
: calloc/free都是在这个内存块里面操作。这样可以减少memory fragmentation.
: 谢谢。

g***l
发帖数: 2753
4
从系统的角度是这样的,但是如果系统中有多个子系统需要很多次的频繁的malloc/
free的话,这个碎片化的问题还是要考虑的吧?还有个问题俺们的系统上没有glibc啊。

【在 t****t 的大作中提到】
: 除了这么干, 还能怎么干?
: 当然, 这样说不完全对, 比如说glibc对于大内存是用mmap分配的. 但是对于小内存,
: 本来就是这么干的啊, 除了glibc是逐渐增长的"大"内存, 但是就算逐渐增长, 内存也
: 是连续的.

t****t
发帖数: 6806
5
不管是不是glibc, malloc/free总是从一块连续大内存池里拿的, 可能算法有好有坏,
但是通常来说不需要用户考虑这个.
如果你想说的是multiple heap, 那是另外一回事. 但是正常情况下一般人不需要这个.
如果是多线程, 那mutex的开销可能更大一些.

啊。

【在 g***l 的大作中提到】
: 从系统的角度是这样的,但是如果系统中有多个子系统需要很多次的频繁的malloc/
: free的话,这个碎片化的问题还是要考虑的吧?还有个问题俺们的系统上没有glibc啊。

g***l
发帖数: 2753
6
主要是俺们这个有点特殊,需要单独划出一块memory给单独的一个子系统用。这个子系
统消耗的内存大小是有限制的。

,
个.

【在 t****t 的大作中提到】
: 不管是不是glibc, malloc/free总是从一块连续大内存池里拿的, 可能算法有好有坏,
: 但是通常来说不需要用户考虑这个.
: 如果你想说的是multiple heap, 那是另外一回事. 但是正常情况下一般人不需要这个.
: 如果是多线程, 那mutex的开销可能更大一些.
:
: 啊。

t****t
发帖数: 6806
7
limited memory consumption alone is not the reason of multiple heap. only
when you know the memory fragmentation limits your performance.

【在 g***l 的大作中提到】
: 主要是俺们这个有点特殊,需要单独划出一块memory给单独的一个子系统用。这个子系
: 统消耗的内存大小是有限制的。
:
: ,
: 个.

H****r
发帖数: 2801
8
placement new?

【在 g***l 的大作中提到】
: 就是先在系统内存中分配一块大的内存,比如说10M,然后所有的memory malloc/
: calloc/free都是在这个内存块里面操作。这样可以减少memory fragmentation.
: 谢谢。

d****n
发帖数: 1637
9
根他们说那些都没用,真正自己去实现一个也不难。
看看 K&R C 里面有个babe版本的,你自己拓展也用不了多长时间。
根他们扯一大堆也是浪费时间。肯定要根你瞎掰一通。啥用也没有。

【在 g***l 的大作中提到】
: 主要是俺们这个有点特殊,需要单独划出一块memory给单独的一个子系统用。这个子系
: 统消耗的内存大小是有限制的。
:
: ,
: 个.

g***l
发帖数: 2753
10
对头!

【在 d****n 的大作中提到】
: 根他们说那些都没用,真正自己去实现一个也不难。
: 看看 K&R C 里面有个babe版本的,你自己拓展也用不了多长时间。
: 根他们扯一大堆也是浪费时间。肯定要根你瞎掰一通。啥用也没有。

相关主题
初学C,对什么该free一直搞不明白新手,一个C 库的问题
再问一个free()的问题一个关于空间分配的问题
有谁对glibc的allocator有研究?ask for help about AMD cluster
进入Programming版参与讨论
d****n
发帖数: 1637
11
我给你那个连接就是 K&R C里面的扩展,如果你能看明白,都不用修改。

【在 g***l 的大作中提到】
: 对头!
g***l
发帖数: 2753
12
非常感谢!

【在 d****n 的大作中提到】
: 我给你那个连接就是 K&R C里面的扩展,如果你能看明白,都不用修改。
a9
发帖数: 21638
13
你这10M里面,不照样还是有碎片

【在 g***l 的大作中提到】
: 主要是俺们这个有点特殊,需要单独划出一块memory给单独的一个子系统用。这个子系
: 统消耗的内存大小是有限制的。
:
: ,
: 个.

b***i
发帖数: 3043
14
PC?
CPU支持保护模式,虚拟内存是连续的,分配4k是连续的就行了。

【在 g***l 的大作中提到】
: 就是先在系统内存中分配一块大的内存,比如说10M,然后所有的memory malloc/
: calloc/free都是在这个内存块里面操作。这样可以减少memory fragmentation.
: 谢谢。

L***n
发帖数: 6727
15
也许可以考虑memory pool 比如obstack,这篇文章可能对你有帮助,特别是后面那个
表。
http://www.ibm.com/developerworks/linux/library/l-memory/

【在 g***l 的大作中提到】
: 主要是俺们这个有点特殊,需要单独划出一块memory给单独的一个子系统用。这个子系
: 统消耗的内存大小是有限制的。
:
: ,
: 个.

1 (共1页)
进入Programming版参与讨论
相关主题
内存池这个玩意...请教关于C++内存管理
请问用mmap分配的共享内存如何回收?初学C,对什么该free一直搞不明白
请问关于 share memory 的问题再问一个free()的问题
程序占用很大内存有谁对glibc的allocator有研究?
c里面有什么函数可以新手,一个C 库的问题
C++中释放的内存可能立即返回系统吗?一个关于空间分配的问题
问一个跟 memory (process address space) 的有关的问题 (转载)ask for help about AMD cluster
突然发现现在很反感malloc了奇怪的问题:关于一个简单的malloc()小程序 (转载)
相关话题的讨论汇总
话题: memory话题: 内存话题: library话题: management话题: 这样