zjjbest810
码龄9年
求更新 关注
提问 私信
  • 博客:8,305
    8,305
    总访问量
  • 13
    原创
  • 3
    粉丝
  • 22
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2017-08-15
博客简介:

zjjbest810的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得0次评论
  • 获得8次收藏
  • 博客总排名1,655,314名
创作历程
  • 13篇
    2017年
成就勋章

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 服务器
    linux
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

212人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

指针和引用的区别

1.引用: (1)定义一个引用是要开辟内存的,占4个字节,存放的是他引用的变量的地址(但引用是一个自动的指针,编译器会在底层自动对其进行解引用) 测试如下: int main() { int a=10; int *p=&a; int &b=a; cout cout cout   *p=20; cout } 由上可知:a和b 的地址是一样的,*p被赋值成了2
原创
博文更新于 2017.11.01 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL空间配置器(三)

第二级配置器 : --->_default_alloc_template:        第二级配置器多了一些机制,避免太多小额区块造成内存的碎片,小额区块带来的不仅仅是内存碎片,配置时额外的负担也是一个大问题。      如下图: 第二级配置器的做法是如果区块够大,超过128bytes时,就移交第一级配置器处理。 当区块小于128bytes时,则以内存池(memory pool)
原创
博文更新于 2017.11.01 ·
366 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL空间配置器(二)

空间的配置与释放------>std::alloc 上面是对象的构造与析构行为,那么接下来我们看看内存的配置与释放。 (1)空间配置发生在对象构造前,空间释放发生在对象析构后。 (2)由负责 (3)SGI对此的设计哲学如下:        (a)向system heap要求空间        (b)考虑多线程状态        (c)考虑内存不足时的应变措施        (d)考
原创
博文更新于 2017.10.31 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL空间配置器(一)

这里主要说的是具备次配置力的SGI空间配置器。 SGI STL的配置器与众不同,也与标准规范不同,其名称是alloc而不是allocator,而且不接受任何参数。 比如: Vector>  iv; //此写法错误 Vector  iv;//此写法正确 注意: SGI STL的每一个容器都已经指定其缺省的空间配置器为alloc。 SGI STL也定义了一个符合部分标准,名为alloca
原创
博文更新于 2017.10.31 ·
308 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

KMP算法(相对于朴素查找算法的比较)

1.朴素查找算法: 我们对于字符串匹配用的最多的是朴素查找算法。 代码如下: int BF(const char *str,const char *sub) { int lenstr=strlen(str); int lensub=strlen(sub); assert(str != NULL && sub != NULL);   int i=0; int j=0; whil
原创
博文更新于 2017.10.19 ·
1054 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

浅谈nginx内存池(五)

剩下的就是如何实现chain,chain其实也就是多个buf组合而成的,它主要是用来缓存一些未发出去的,或者接受buf以及writev以及readv而存在的。 buf的实现其实就是一个单链表。这里取得一个chain后直接返回供给其他模板使用。 说明:单独创建缓冲区ngx_buf_t是没办法形成回收和管理机制的,所以需要创建ngx_chain_t缓冲区链表结构,用来管理整个缓冲区。 具体代码如
原创
博文更新于 2017.10.18 ·
272 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈nginx内存池(四)

1.Nginx的buf缓冲区数据结构,主要用来存储非常大块的内存,ngx_buf_s数据结构也贯穿了整个nginx。 Nginx的缓冲区设计也是非常灵活的: (1)可以自定义管理业务层面的缓冲区链表。 (2)可以将空闲的缓冲区链表交还给内存池pool->chain结构。 缓冲区ngx_buf_t是nginx处理大数据的关键数据结构,他既应用于内存数据,也应用于磁盘数据。 下面
原创
博文更新于 2017.10.16 ·
489 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈nginx内存池(三)

1.之前分别说过了内存池分配小块内存以及大块内存的情况。 但是如果当前的内存池已经满的时候,此时应该重新分配一块内存池,然后链接到当前的内存池的数据区指针---->ngx_palloc_block 需要注意三点: (1)重新分配这个内存池的大小是和他的父内存池一样大的。 (2)子内存池和父内存池是不一样的。 (3)新的内存池只保存了ngx_pool_data_t这个结构,也就是说数据区直
原创
博文更新于 2017.10.16 ·
617 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈nginx内存池(二)

1.接下来就进入到具体的函数中。 首先是创建一个内存池----->ngx_create_pool:   ///内存池的数据区的最大容量。 #define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1) //此处的ngx_pagesize的大小在x86下通常是4k ngx_pool_t * ngx_create_pool(size_t size, ng
原创
博文更新于 2017.10.15 ·
326 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈nginx内存池(一)

一直听别人说nginx的内存池设计非常巧妙,所以就去学习了一下。感觉确实很不错。在这里我就说说我的理解吧。可能有的地方理解不到位,请多谅解!   1.首先介绍一下内存池的结构: //内存池的结构 struct ngx_pool_t { //数据区的指针 ngx_pool_data_t d; //其实也就是内存池所能容纳的最大值。
原创
博文更新于 2017.10.13 ·
530 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

地址映射

1.三种地址(逻辑地址,线性地址,物理地址) 逻辑地址:即逻辑上的地址,实模式下由“段基地址+段内偏移”组成;保护模式下由“段选择符+段内偏移”组成。 线性地址:逻辑地址经分段机制后就成线性地址;如果不启用分页,那么此线性地址和物理地址相同。 物理地址:线性地址经分页转换后就成了物理地址。   2.最早期的CPU--》8086(只有一种工作方式:实模式) 而且地址总线为20位。实模式下
原创
博文更新于 2017.10.11 ·
2597 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

IO复用

I/O复用: elect,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据
原创
博文更新于 2017.09.23 ·
825 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

系统调用

系统调用: 1.0x80中断--->系统调用引发的中断 2.系统调用表:函数指针的数组 3.系统调用的函数名转换:每个系统调用都有相应的系统调用号作为唯一的标识,内核维护一张系统调用表,表中的元素是系统调用函数的起始地址,而系统调用号就是系统调用在调用表的偏移量。在进行系统调用是只要指定对应的系统调用号,就可以明确的要调用哪个系统调用,这就完成了系统调用的函数名称的转换。 4.系统调用的参
原创
博文更新于 2017.09.23 ·
337 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏