目录
弊端一--高并发时较小内存块使用导致系统调用频繁,降低了系统的执行效率
弊端四--内存分配与释放的逻辑在程序中相隔较远时,降低程序的稳定性
高并发下的传统方式的弊端
void* malloc(size_t size);
void* calloc(size_t nmemb,size_t size);
void* realloc(void* ptr,size_t size);
void free(void* ptr);
malloc 在内存的动态存储区中分配一块大小为size的连续区域返回首地址
calloc 与malloc类似,nmemb为元素个数,内存会初始化为0
realloc给一个已分配地址的指针重新分配空间,ptr为原有的空间地址,newsize是重新申请的地址长度,ptr若为NULL,则等同于malloc
弊端一--高并发时较小内存块使用导致系统调用频繁,降低了系统的执行效率
执行系统调用会有用户态切换内核态再切换用户态的过程
弊端二--频繁使用时增加了系统内存的碎片,降低内存使用效率
内部碎片--已经被分配出去却不能被利用的内存空间
产生根源:1.内存分配必须起始于4,