Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1862052
  • 博文数量: 317
  • 博客积分: 1557
  • 博客等级: 上尉
  • 技术积分: 1208
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 23:38
个人简介

如果想出发,就不要等到明天!

文章分类

全部博文(317)

文章存档

2016年(1)

2015年(41)

2014年(152)

2013年(114)

2012年(4)

2011年(1)

2009年(4)

发布时间:2014-08-27 10:43:39

kernel 3.10代码分析--vmalloc(非连续内存页分配)
在分配内存时,总是希望能分配到连续的物理内存页,愿望是美好的,但系统中可能没有太多的连续内存可用(比如内存碎片严重时),此时就需要一种非连续内存的分配方式。于是乎,就产生了vmalloc,vmalloc用于分配不连续的物理内存页,但将其映射到内核虚拟地址空间中后,其虚拟地址是连续的
内核虚拟地址空间中,有一段专门的区间用于vmalloc,称之vmalloc区,位于线性映射区之后,准确的说是从892M+8M(VMALLOC_START)到VMALLOC_END之间,其中892M是线性映射区,用于线性映射低端内存,之后的8M是安全间隙,用于区间隔离,防止越界。
vmalloc区中包含一个个独立的子区域,每个子区域用于一次独立映射,各个子区域间通过一个内存页进行隔离,防止不正确的内存访问操作。......【阅读全文】

阅读(1504) | 评论(0) | 转发(0)

发布时间:2014-08-27 10:41:36

1. epoll有2种模式, 水平触发(LT)&边缘触发(ET)。    在LT模式下,当epoll可读/写时,epoll_wait就会返回可读/写的fd,若没有读/写完,会一直触发。    在ET模式下,当epoll可读/写时,epoll_wait就会返回可读/写的fd,但只会触发一次,即使没有读/写完,也不会再触发。2. epoll的三.........【阅读全文】

阅读(3593) | 评论(0) | 转发(0)

发布时间:2014-08-27 10:40:18

想见识修改代码时大刀阔斧、乾坤挪移吗 ?......【阅读全文】

阅读(1173) | 评论(0) | 转发(0)

发布时间:2014-08-27 10:39:04

    针对于tinynet进行了三种数据传输方式的测试,包括最初的byte stream,protobuf,以及比较流行json方式。跟之前的几次测试一样,模型为echo模型,都是以epoll为例,每个连接每秒发送10个包,每个数据包约100bytes,数据包括包头以及数据,包头12bytes,包括长度以及其他8bytes信息,客户端连接为每秒5个,此次.........【阅读全文】

阅读(9932) | 评论(0) | 转发(0)

发布时间:2014-08-27 10:36:21

    之前针对tinynet做了几组测试,根据数据看起来还不错,但是没有和其他优秀的开源库做对比,下面就针对libevent的使用来进行分析。    针对tinynet的相关测试:       tinynet (V1.0.0) 一个轻量级的网络库(测试报告)     tinynet V1.0.1 .........【阅读全文】

阅读(1717) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册