zoukankan      html  css  js  c++  java
  • linux内核的冷热页分配器

    先说说cpu的cache,和cpu的cache比起来访问主内存是非常慢的,为了加快速度根据本地性原则,cpu在访问主内存的时候会把附近的一块数据都加载到cpu的cache里,之后读写这块数据都是在cache里做的。

    linux本来有伙伴系统分配内存页,为了加快单个内存页的分配linux在每个node里为每个cpu分配了一个per_cpu_pageset(暂且叫他页缓存吧)。每个页缓存包含一个冷页缓存和一个热页缓存。这两个用法有什么区别呢。

    1. 如果申请完一个内存页就立刻用来写数据,用热页缓存。
    2. 如果申请完暂时用不到或者给DMA用,用冷页缓存。

    这主要是因为内核用free_pages释放单个内存页的时候会调用free_hot_page。刚释放的内存页大概率还在cpu的cache里,也就是说热页缓存里的页很可能还在cpu的cache里,所以申请热页缓存并且立即使用会直接访问cpu的cache速度会比较快。其他情况就用冷页缓存,冷页缓存里的页在主内存里,需要重新加载到cpu的cache,速度会慢一些。

  • 相关阅读:
    dapperHelper
    .NET Core Session的使用方法
    Wpf 关闭当前窗体 打开新窗体
    C#中Split分隔字符串的应用(C#、split、分隔、字符串)
    wpf日期控件
    SQLite数据库数据类型详解
    Asp.Net Core 2.2
    手写图片懒加载
    css动画常用属性总结
    css购物车(抛物线)运动
  • 原文地址:https://www.cnblogs.com/linhaostudy/p/11628915.html
Copyright © 2011-2022 走看看