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

工匠之心,技术狂热追求者,开源社区爱好者,一个记录成长的站点。

分类 高级编程 下的文章

HTTP/3与HTTP/2的性能比较

这是一篇来自cloudflare公司的博客译文,阐述了一些HTTP3与HTTP2的性能对比。我们在去年Cloudflare的生日周宣布支持HTTP/3,它是HTTP/2的继承者。我们的目标是并且一直是帮助建立一个更好的互联网。在标准方面的合作是其中的一个重要部分,我们很幸运能在这里做到这一点。尽管HTTP/3仍然处于草稿状态,但我们已经看到了很多用户的兴趣。到目前为止,已经有超过113000...

Redis6客户端缓存的相关设计

这篇文章翻译自Redis官方博客,这篇文章阐述了Redis6中将如何支持客户端缓存功能。纽约Redis一天结束了,我于5:30在酒店起床,仍然与意大利时区保持同步,并立即走在曼哈顿的街道上,完全爱上了风景和美好的生活感觉。 但是我在Redis 6发行版中的感觉是,可能是最重要的功能,即新版本的Redis协议(RESP3)的采用曲线将非常缓慢,这是有充分理由的: 明智的人会在没有充分理由的情况...

Go的垃圾收集者之旅 [Getting to Go: The Journey of Go's Garbage Collector]

一 . 背景介绍这篇文章是一片演讲笔记,这是Richard L. Hudson于2018.06.18在国际内存管理研讨会(ISMM)上的演讲。理查德·哈德森(Rick)因其在内存管理方面的工作而闻名,其中包括发明了Train,Sapphire和Mississippi Delta算法以及GC堆栈映射,这些算法能够以静态类型的语言(例如Modula-3,Java)进行垃圾收集 ,C#和Go。 R...

Go 十年

Russ Cox,代表Go团队2019年11月8日Happy birthday, Go!这个周末,我们庆祝Go发布10周年,庆祝Go作为一种开源编程语言和构建现代网络软件的生态系统的10周年。为了纪念这一时刻,Go gopher的创始人蕾妮·弗兰奇描绘了这一令人愉快的场景:庆祝Go十周年让我回想起2009年11月上旬,那时我们正准备与世界分享Go。 我们不知道会有什么样的反应,也不知道是否有...

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

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

设计文档:PulseFlow_IPC_Backend

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

阅读笔记:指针数组和数组指针---C/C++中int *p[4]和int (*p)[4]的区别

简单介绍C/C++中的这两种书写方法实在是很像,但是它们的含义有很大的不同,所以一定要能清晰地辨别它们。简单地说,int *p[4] 是指针数组,int(*p)[4] 是指向数组的指针指针数组:是一个元素全为指针的数组;数组指针:可以理解为指针,只是这个指针类型不是int而是 int[4] 类型的数组int *p[4],p是一个指针数组,每一个指向一个int型的,等价于 (int *) (p...
July 9, 2018

PHP扩展开发2.3:变量在内核中的实现

背景描述所有的编程语言都要提供一种数据的存储与检索机制,PHP也不例外。其它语言大都需要在使用变量之前先定义,并且它的类型也是无法再次改变的,而PHP却允许程序猿自由的使用变量而无须提前定义,甚至可以随时随意的对已存在的变量转换成其它任何PHP支持的数据类型。在程序在运行的时候,PHP还会自动的根据需求转换变量的类型。我认为阅读本书的人都已经是标准的PHP程序猿了,所以你们也肯定体验过PHP...