自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Page cache 分配与合并内存资源的源头

thread cache找central cache要内存,但central cache没有span或者没有空闲的span就会去下一层找page cache分析问题:1.通过页号计算页的起始地址,页号<<PAGE_SHIFT,PAGE_SHIFT设置为8*10242.span的起始地址=> void* start=(void*) (span->_pageId<<PAGE_SHIFT)

2023-04-26 11:13:00 83

原创 Central Cache ——承上启下的重要结构

central cache也有一个哈希映射的 spanlist,spanlist中挂着span,从span中取出对象给thread cache,这个过程是需要加锁的,不 过这里使用的是一个桶锁,尽可能提高效率。1.central cache的每个哈希桶挂着spanlist的链表结构,每一个节点是一个span,span是以页为单位的大内存,被按照和thread cache一样的映射关系切成了一个个小内存,若thread1和thread2同时来central cache找1号桶,那么先获得桶锁的先访问。

2023-04-26 11:09:13 83

原创 高并发内存池的整体框架以及thread cache

我们设计的内存池有五种桶,第一种桶节点大小为8byte,<=128bytes的挂过来,这样的桶链表有16条,第二种桶链表节点大小为16bytes,<=1024bytes的挂过来,这样的链表有56条,第三种桶链表节点大小为128bytes,<=8k的挂过来,这样的链表有56条,第四种桶链表节点大小为1k,<64k挂过来,这样的链表有56条,第五种链表节点大小为8k,<256k的挂过来,这样的链表有24条,例如字节数为1~8的挂在第一个桶,9~16挂第二个桶……取到当前内存的下一个内存块的地址。

2023-04-26 11:01:00 109

原创 高并发内存吃(1)定长内存池

以服务 器上的线程池为例,它的主要思想是:先启动若干数量的线程,让它们处于睡眠状态,当接收到客户端 的请求时,唤醒池中某个睡眠的线程,让它来处理客户端的请求,当处理完这个请求,线程又进入睡眠 状态。为了解决我们的代码的跨平台问题,也就是32位环境下指针大小为4byte,而64位环境下是8byte,我们想要申请我们的freeList所指向的链表结构的每一个节点需要保存下一个内存块的的地址,我们可以设计节点的头4/8个字节是存储指针的区域,该如何用统一的方式设计代码呢?

2023-04-24 17:07:06 77

原创 浅析构造函数

构造函数

2022-09-02 09:58:29 249

原创 内联函数的意义

内联函数的意义

2022-08-30 21:24:25 324

原创 通讯录(文件版)

首先我们需要创建一个菜单

2022-05-07 19:13:20 346

原创 通讯录(动态增长版本)

contact.h#pragma once#include<stdio.h>#include<string.h>#include<assert.h>#include<stdlib.h>//类型声明#define Max 1000#define Name_Max 10#define Sex_Max 5#define Tel_Max 12#define Addr_Max 20typedef struct PeoInfo{

2022-04-30 13:56:09 121

原创 通讯录(简易版)

目的:运用c语言简单实现通讯录要求功能:添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 通过名字进行排序 打印所有联系人信息contact.h#pragma once#include<stdio.h>#include<string.h>#include<assert.h>//类型声明#define Max 1000#define Name_Max 10#define Sex_Max 5#define

2022-04-29 11:08:00 219

原创 内存函数memcpy与memmove

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的

2022-04-19 11:11:27 166

原创 三子棋的思路及代码

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器.

2022-03-24 16:28:33 107

原创 关机程序(搞怪小子)

1.搜索cmd2.shutdown -s 是关机指令 shutdown -s -t 60 是设置关机时间,在几秒钟后关机 shutdown -a 是取消关机

2022-03-03 16:20:57 103

原创 常量与变量

常量常量比较容易理解,就是数值不变的量枚举常量 enumenum Sex{ MALE, //0 FEMAMA, //1 SECRET //3};enum Sex s = MALE;变量变量顾名思义就是数值可以被改变的量但是变量同样可以转换为常量!const使变量变成常变量,如此一来变量的值在后续操作中就不可以被改变eg:const int a = 10;...

2022-02-22 16:26:23 155

原创 基础的数据类型

首先大家需要明白,计算机语言是什么?计算机语言就是人和计算机进行交流的语言。而c语言给我们提供的数据类型有以下几种:char //字符数据类型short //短整型int //整形long //长整形long long //更长的整形float //单精度浮点型double //双精度浮点型...

2022-02-16 13:03:14 375

原创 计算机中的单位

理解这些计量单位首先需理解计算机信息的最小单位,比特(bit)是计算机表示信息的最小单位,计算机机器语言是基于二进制的,计算机机器系统只识别0和1。 位(bit):最小的数据单位 字节(Byte):8个bit组成,就是一个字节包含8个bit,存储空间的最小单位。 K:Kilo-表示千,在计算机中千不是1000,是1024(2^10次方) KB = 1024B M:Million-表示百万,就是兆,(2^20次方) MB = 1024KB G:Giga-表

2022-02-16 11:40:18 753

原创 第一个c语言程序

相信跟我一样刚接触编程的uu们第一次要求的程序就是:打印HELLO WORLD!吧代码如下:总结:怎么样,大家是不是感觉到不是很难,毕竟是我们新手第一个接触到的程序,难度肯定不会很高,饭还是要一口一口吃的嘛!...

2022-02-16 10:58:33 372

原创 小码农的开始

大帅哥们,你们好呀! 我是一名小码农,因为学校开学太晚,所以才刚接触c语言不久,本人就读于某挺不错的学校,是计算机与人工智能学院的新生,虽说高考确实发挥失常,不过世俗总要男人无所畏惧嘛,过去的肯定就过去了,但是看着昔日的同学步入比自己更好的学府,内心总是有些许不爽,于是乎痛定思痛,下定决心一定要在大学认真学习,追赶甚至反超他们。 我现在在学校学习会一门心思放在编程,高数,英语三门学科上,其他都是浮云。 我最想进的公司肯定是鹅厂,猪场或者字节跳动之类的大公司,毕竟这可是绝地翻盘的必要条件,希...

2021-12-11 22:05:05 1002

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除