#Code
PHP-7.1升级至7.4兼容性
php作为
动不动搞个大事情世界上最好的语言,经常偶尔会出现由于版本升级导致的不兼容问题。笔者在工作中遇到了php7.1升级到php7.4导致的each弃用、mcrypt库启动导致的不兼容。在这里备注下兼容方式。
go-simplejson 插入数组
go-simplejson是go lang语言中操作json非常方便的开源库。最近使用simplejson进行数据插入操作时遇到了问题,经过排查后最终解决。现记录如下。
http及websocket性能对比
从过往的经历中来看,使用websocket作为http协议的替代似乎是一种潮流。websocket以其小包头、全双工的优势,弥补了http协议的性能上的缺陷。对于长链接需求,完全可以在初始化时创建websocket连接,在业务交互时直接进行通信,使得通信过程更加流畅。相信在基于Quic的http3协议走向成熟应用前,websocket在性能上都具有优势。本文以golang语言为基础,构造场景进行两种协议的性能对比。
golang GMP
写点东西还是难,果然还是搬运工来的轻松些。今天搬运点Golang的
GMP模型看看。最近在准备一篇Golang的GC实践。慢慢搞吧。
前言
Golang作为语言层面支持并发的语言,使用go可以让搬砖体验飞起。但是从直觉来说,事情并没有这么简单:从操作系统层面来说,进程和线程是操作系统认可的并行机制。协程以及Golang的所谓纤程是期望一堆程序员期望将操作系统的工作拿过来,以满足一些优化的效果。所以诸如Python的协程以及Golang的纤程,总是能够对应到操作系统认可的执行单元上。对于Python的协程还好理解一些,是严格运行在自己的线程里的,只是语言层面实现了线程内的上下文切换优化。所以对于CPU密集型的操作,仅使用协程是无法达到优化效果的:这种场景下Python会推荐多进程。相比起来,Golang的go野心更大一些:期望给用户以go作为接口,在语言内实现与操作系统调度单元的交互。Golang里实际的调度模型是GMP。
golang 封装
golang作为一种高级语言,实现了面向对象语言的封装、继承、多态的特性。本文简要介绍下golang面向对象的这些特性。