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

工匠之路

分类 编程总结 下的文章

基于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...

源码阅读: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...
October 7, 2018

编程笔记:Golang 函数type类型

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

踩坑:System V 内核消息队列的配置生效问题

System V 内核消息队列可以很方便的帮助我们实现进程间的通信,这种通信通过内核内存拷贝,可以达到很高的速度。由于默认的Linux对于内核消息队列的相关参数普遍很小,不能满足程序运行需要,因此需要进行相关参数调整:kernel.msgmni = 10240kernel.msgmax = 102400kernel.msgmnb = 1048576000第一个代表调大Linux系统允许的最大...

设计文档:PulseFlow_IPC_Backend

PulseFLow还有一部分功能是集中在信息后端的,当PHP引擎发送信息给后端程序后,后端程序再把信息进行组装,发给下一级程序。一 . 组成部分后端程序,分为以下几个部分:配置中心:(配置文件 + 配置解析器)(采用ini文件配置格式)。进程管理器:维持进程池,保持进程池的存活量。信息发送: 信息组装 + 信息发送(UDP发送)二. 工作流程2.1 总体流程图2.2 系统模型(进程池模型)后...

设计文档: PulseFLow PHP性能监控插件

一. 背景描述随着公司PHP项目体的不断增大,随着不同工程师的功能迭代,如何有效获取PHP项目的执行性能,对于系统整体模块显得异常重要,PulseFlow是一个公司团队内部自研地性能跟踪扩展,它可以在程序员无感知的情况下有效跟踪每一个函数的执行效率,主要分析CPU时间消耗、内存大小消耗,执行次数这三个指标,下面我们将从 PHP生命期 到 组件设计 到 性能优化这三个方面来进行阐述组件。二 ....
July 31, 2018

编程笔记:检测并分析PHP扩展的内存泄露

1. 背景描述基于C/C++开发的程序,内存管理是很大程度上的工作,我们在这篇文章里来给大家讲解一下如何监控程序体可能存在的内存泄露。工欲善其事必先利其器,这里选择使用 Valgrind 工作来进行内存监控。http://valgrind.org/2. Valgrind工具安装 git clone git://sourceware.org/git/valgrind.git ./auto...