![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
调优
文章平均质量分 61
超级爱吃肉
这个作者很懒,什么都没留下…
展开
-
内存的分配和回收
内存的分配malloc()是C标准库提供的内存分配函数, 对应到系统调用上,有两种方式: brk()和 mmap()brk() - 小块(小于128K)内存使用brk()来分配, 通过移动堆顶的位置来分配内存. 这些内存在释放后并不会立即回收,而是被缓存起来供重复使用mmap() - 大块内存使用内存映射mmap()来分配, 在文件映射段找一块空闲内存分配出去优缺点:brk(): 缓存能减少缺页异常的发生, 提高内存访问效率. 不过,由于这些内存没有及时被系统回收, 在内存工作繁忙时, 容易原创 2021-01-27 19:29:48 · 881 阅读 · 0 评论 -
上下文切换
我们得知多进程争用CPU会导致平均负载升高.可能你会觉得奇怪,虽然看起来有很多进程在争用cpu,但实际上在一个时间点只有一个进程在使用,那为什么平均负载还会升高呢?CPU 上下文切换就是罪魁祸首 !CPU上下文Linux系统是一个多任务操作系统, 它支持远大于cpu数量的进程同时运行.当然, 这些任务并不是真的同时在运行,而是将CPU时间轮流分配给它们,造成多任务同时运行的错觉.在每个任务开始运行时,CPU需要知道从哪里加载, 从什么位置开始运行. 即:需要系统事先帮它设置好CPU寄存器和原创 2021-01-27 15:51:35 · 694 阅读 · 0 评论