ICanBiBi
码龄12年
关注
提问 私信
  • 博客:13,025
    13,025
    总访问量
  • 11
    原创
  • 1,760,140
    排名
  • 4
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2012-10-24
博客简介:

cj19920421的博客

查看详细资料
个人成就
  • 获得0次点赞
  • 内容获得7次评论
  • 获得11次收藏
创作历程
  • 1篇
    2022年
  • 4篇
    2020年
  • 2篇
    2019年
  • 1篇
    2017年
  • 3篇
    2016年
成就勋章
TA的专栏
  • git
    1篇
  • nginx解读
    1篇
  • C/C++
    4篇
  • Linux
    2篇
  • node.js
    1篇
  • golang
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

使用cpu profile调试服务CPU性能

服务端程序CPU性能优化工具
原创
发布博客 2022.08.11 ·
1970 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

记一次IETF QUIC无法使用0-RTT的原因排查

1. 背景 截止目前,IETF QUIC最新版本已至draft-29。chromium官方也放出消息说正在加大部署IQUIC。IQUIC成为未来的QUIC标准,这促使我们去关注IQUIC的各种特性。0-RTT可以提高建连的速度。但是在实际测试IQUIC时,我们发现GQUIC可以正常启用0-RTT,但是IQUIC却始终无法生效。2. 分析客户端测试工具:1) google quiche的quic_client2) chrome浏览器: stable和canary0-...
原创
发布博客 2020.10.20 ·
1488 阅读 ·
0 点赞 ·
5 评论 ·
1 收藏

关于同名宏定义和变量的定义的一些思考

问题描述:在chromium项目中进行开发,子项目使用了rsyslog来进行日志读写,项目中有直接依赖的地方会间接依赖chromium的logging模块,具体是在base/logging.h中。rsyslog使用的日志级别LOG_INFO和LOG_WARNING与chromium的logging中定义的日志级别发生了同名冲突。我们在代码的地方,选择使用rsyslog的LOG_INFO而非logging。具体表现为:rsyslog用宏定义,logging用变量。我们在编译项目时始终无法编译通过。总是报如
原创
发布博客 2020.09.21 ·
1124 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

当chromium遇见prometheus-cpp

1. 背景最近基于chromium开发QUIC时,需要支持带宽统计的特性。经过调研发现了一个第三方库,即prometheus-cpp。于是便有了在chromium编译QUIC服务时依赖prometheus-cpp的需求。起初,按照prometheus-cpp提供的编译方法,使用cmake编译出了动态库(主要会使用到libprometheus-cpp-core.so和libpromemtheus-cpp-push.so)。但是在进一步chromium编译的时候,出现了很多undefined symbol的
原创
发布博客 2020.07.17 ·
918 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

关于git rebase的几点思考

平时使用git rebase这个命令的机会并不多,直到最近有需要合并给git commit log的需求时,使用到了git rebase命令。现在特地把一些关键的个人感受记录在下面,以供日后参考。合并多条commit log方法在搜索引擎上面都可以搜到。简单来说就是先执行:git reabse -i [commit-id]commit-id是最后一个需要合并的记录的...
原创
发布博客 2020.04.15 ·
177 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

nginx反向代理模块解析status line过程分析及启发

最近在研究nginx反向代理模块的相关源码。在阅读源码的过程中,发现了一个有意思的函数:ngx_http_parse_status_line这个函数是反向代理模块在从upstream机制中读到上游发来的响应头部数据之后,调用自身的process_request后执行的。反向代理模块在进行初始化时,会将u->process_headers赋值给ngx_http_proxy_proce...
原创
发布博客 2019.11.05 ·
388 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang单元测试总结

命名规则: xxx_test.go关于测试文件的存放位置,常见的做法实际上是和源代码放在一起假如需要测试的有两个功能函数:GetData()ReadData()单元测试时,可以将测试单元TestGetData以及TestReadData放在同一个文件中,也可以将它们放在不同的文件中。为了测试方便,采用将它们放在同一个文件中这种处理方法。假如该文件名为:get_func...
原创
发布博客 2019.05.22 ·
437 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

node.js——在函数中返回另一个函数的一个目的

在阅读node.js项目源代码的时候,发现某个变量的定义如下:var example = function(){ var _id = 1; return function(){ if (_id === 9007199254740992) { _id = 32768; } return _id++;
原创
发布博客 2017.09.01 ·
1498 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

由static关键字引发的知识点学习和在类中的使用相关注意事项

第一部分(static在类中的应用以及相关例外情况)比较基础的是:在类中如果定义了static静态数据成员,在类中声明,但是在定义时需要在类外,而不能使用构造函数。比如://test.hclass test {private:           static int num;……在类实现文件中,给出定义和初值://test.cp
原创
发布博客 2016.08.05 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux shell脚本:数学运算的三种方式

习惯于写C/C++程序时,使用大量空格使程序变得美观的程序员,在编写shell脚本的时候,会产生一些别扭的情绪。比如,通常在C/C++中,我们习惯这样写:int i = 0;等于号两边有空格,看起来更舒服。实际上这是一种编程习惯而已。但是在shell脚本编程的时候,尤其要注意一个事情,不说废话,看代码:#!/bin/bashdate_before=$(date +%s)
原创
发布博客 2016.08.04 ·
2374 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

定义和声明以及extern、static关键字

1. 定义只能进行一次,声明可以多次。2. 变量定义是为变量分配存储空间,也可以初始化,不初始化的定义如:int i;3. 声明是表明变量的类型和名称,因此定义也是声明。4 . 没有初始化的时候,有extern表示这是声明,不是定义,不分配存储空间,如:extern int i;5. 但是如果有初始化时,即使加了extern也是定义,如:extern int i =
原创
发布博客 2016.07.24 ·
2296 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏