自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 go常用库笔记

编码转换 github.com/axgle/mahonia 示例:func ConvertGBKToUTF8(str string) string { dec := mahonia.NewDecoder("GBK") return dec.ConvertString(str)}func ConvertUTF8ToGBK(str string) string {

2018-01-06 16:12:15 1485

原创 socket编程常见问题笔记

如何设置socket为非阻塞IO 简易做法(标准做法应该先调用f): int listenfd = socket(PF_INET, SOCK_STREAM, 0); int fdflag = fnctl(listenfd, F_GETFL); if( fcntl(listenfd, F_SETFL, fdflag | O_NONBLOCK) == -1) {

2017-09-22 11:38:22 487

转载 性能分析之使用perf生产火焰图

perf是由Linux Kernel提供的动态追踪调试工具,我们可以使用perf对运行时的程序进行分析 相比单纯依赖log,core进行离线排查,perf是一种在线的调试手段,可以在线上随时进行采样并进行分析,无需预先埋点,所带来的只是采样时间段内的一些性能损耗,这种特性使perf很适合于排查未知的问题 perf生成的运行时栈可以通过FlameGraph生成交互式的图表,可以更方便地分析热点安装

2017-09-18 17:03:25 2115

原创 定一个小目标,写几行代码

终于如愿以偿的找到了一份linux c++服务器的工作,也做了一段时间了,工作里写代码的机会不是太多,需要给自己定个任务,写几段常用的代码 1.pthread/std::thread线程池 2.mysql连接池代码 3.基于时间轮的timer 4.基于最小堆的timer 5.chensuo 的11种网络io模型。

2017-04-18 11:59:03 551

原创 从应用层观察TCP的三次握手和TFO

网络程序一般分为客户端和服务端,先来用一段伪代码看一下客户端和服务端程序会调用哪些函数 服务端:server(){ int listenfd = socket(PF_INET,SOCK_STREAM,0); // 创建socket bind(listenfd,&serveraddr,sizeof(serveraddr)); // 绑定本地地址和端口 listen(LIST

2016-12-31 15:49:36 895

原创 libevent的初步认识

最近两天来回路上,简单地过了下《LibEvent参考手册中文版》,了解了libevent的几个概念,打算先记录下来,随着libevent使用增加,后面还会有更一步的描述。 先说整体概念,这是从Libevent官网上摘录的一段描述: The libevent API provides a mechanism to execute a callback function when a specif

2016-12-24 20:59:38 515

原创 我眼中的STL六大组件的关系

STL中有关六大组件空间配置器,迭代器,容器,适配器,算法,以及仿函数。STL的核心是容器和算法,一般就是用算法操作容器。在算法操作容器的时候,往往需要利用迭代器来遍历容器。算法往往是一些比较通用的算法,比如查找和排序,要想适应各种各校的数据结构,只能利用数据结构自己提供的迭代器来访问了。容器在存储数据的时候,则需要利用空间配置器来分配和释放内存。有些容器在本质

2016-09-23 18:42:25 501

原创 arm linux start_kernel之前页表初始化

内核版本是3.19.1内核的入口在head.S的stext中,进入start_kernel之前,大概经历了如下几步:1.将CPU工作模式设置成svc模式,屏蔽中断2.获取CPU ID,然后依据CPU ID查找对应的PROC INFO3.校验atags指针4.__create_page_tables 创建页表,本文重点的记录一下这部分内容页表初始化主要完成了三部分区域

2016-05-02 22:19:47 1480

原创 读linux源码时遇到的问题

Q1:Linux 3.19.1 sysfs 文件系统注册后并没有挂载,不知道为什么,即sysfs_init函数中只register_filesystem却没有mount

2015-06-22 20:31:04 483

C语言深度剖析(很经典)

很好的一本书,短小而精悍,是一本不可多得的中文书,不适合初学C语言的人,适合那些学完C语言,而认为自己C语言学的很好的人,里面讲述了许多平时极易忽略的一些地方,个人感觉很好

2011-03-15

空空如也

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

TA关注的人

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