穷则独善其身,达则兼济天下

工匠之路

李彪 发布的文章

基于CMake构建标准的Go编译及打包框架

一. 背景描述为了简化团队内部中间件的编译及打包和方便运维伙伴的线上环境部署过程 , 我们开始尝试使用标准的rpm安装包来进行线上的环境部署,虽然制作rpm安装包可以采用很多途径 , 但是我们选择采用CMake方式 , 采用这种方式的优点如下:利用CMake 可以构建出很强大的自动编译系统.CMake在编译周期结束后,支持rpm , zip等格式的自动打包.下面的内容从两个方面来阐述: 利用...

开源: IO读取缓冲器-BufReader

一. IO问题思考IO读取缓冲器,顾名思义就是针对系统的IO读取操作添加一层缓冲层,有这层缓冲层到底有啥好处呢?针对这个问题,我先问大家以下几个问题.对于IO读取操作,无论针对的是对象,还是针对网络,每次IO操作均需要陷入内核调用,频繁内核调用会严重影响性能,请问有没有什么办法优化这部分?针对网络IO读取过程,网络时好时坏,如何让网络IO能够发挥最大的性能潜力,在网络好的时候抓紧多读,在网络...

开源: 高性能网络监听库-NetHandle

NetHandle这是一个库,方便构建高性能TCP服务端应用程序,站在Go语言的巨人肩膀上项目地址: https://github.com/gitsrc/NetHandle一. 特点高性能,低资源消耗非常简单易用的开发接口支持众多协议,TCP,UDP,UNIX二. 安装go get -u github.com/gitsrc/NetHandle三. 性能测试:3.1 50*10000 (50...
November 22, 2018

源码阅读:YAF框架系列文章(2) - (yaf.c)

这个文件是yaf框架的整体组成框架文件,因为yaf的设计思路是模块化的,因此在这个文件中进行了总体整合。整合的思路分为以下几个部分。INI配置文件的解析注册系统使用的常量注册各个模块对扩展模块的各个生命期做拦截监控注册扩展模块一、INI配置文件解析功能在php_yaf.h文件中对于全局变量进行了定义工作,随后在yaf.c中进行了声明工作,声明操作 ZEND_DECLARE_MODULE_GL...

源码阅读:YAF框架系列文章(1) - (php_yaf.h)

这个文件的核心使命是构建yaf基础定义,这部分定义主要包括对于内核函数的宏定义对于框架变量类型的宏定义对于框架所使用的全局变量进行定义一、对于内核函数进行宏定义#define YAF_STARTUP_FUNCTION(module) ZEND_MINIT_FUNCTION(yaf_##module) #define YAF_RINIT_FUNCTION(module) ...

开源项目:manEcho(一个Linux内核函数查询工具)

背景描述由于工作原因,经常需要查询linux内核函数,对于不同版本的linux版本,部分函数还有一些差异,对于这种需求,我就动手实现了一个小工具,可以帮助我快速查询linux内核函数。工具原理工具分为两部分,客户端和服务端,客户端用于发送搜索请求,服务端用来接受用户的请求并把用户的请求转换成linux的man命令在指定版本的内核文档目录中执行,执行完毕后,把标准输出中的结果数据通过socke...

开源项目:Ivory-jaeger-php-client :安装文档

一. 背景描述Ivory-jaeger-php-client是一款全链路跟踪客户端工具,基于PHP开发,项目发源自Jaeger-PHP,框架建立在OpenTracing 1.0.0-beta2 ,这篇文章主要讲解工具的安装过程。二. 插件依赖关系插件主体为 Ivory-jaeger-php-client 代码包,这个代码包依赖两个包:opentracing/opentracing ( 1.0...
October 7, 2018

编程笔记:Golang 函数type类型

Golang 的函数类型是一等类型,这意味着可以把函数当作一个值来传递和使用,函数值既可以当作其他函数的参数 也可以当作其他的函数的结果,不过我们需要把函数首先提升一个等级,样例代码如下:package main import "fmt" type intNumOps func(num1 int, num2 int) (int) func main() { ...