• 【扩列应用】双人匿名匹配聊天室

    基于GatewayWorker+Thinkphp5.1写的一套匿名匹配聊天室,供大家一起学习与交流

    阅读全文

  • 开源小仓库

    【仓库地址】https://github.com/xhyonline

    阅读全文

  • 关于作者

    关于我

    阅读全文

Golang 里一个有趣的小细节|转载

2021年2月4日 0 条评论 979 次阅读 0 人点赞

前几天一个小伙伴在公司 slack 问到如下 Golang 代码为什么会卡死(Go Playground): 这个问题很有意思,大概涉及到 Golang 中以下三个概念: byte 是什么 goroutine 如何调度 Golang GC 时会发生什么 本文尝试简单解释下为什么上面的程序会卡死。 首…

[译]自定义Go Json的序列化方法|转载

2021年2月4日 0 条评论 851 次阅读 0 人点赞

编译自 Custom JSON Marshalling in Go。 我们知道,通过tag,可以有条件地实现定制Go JSON序列化的方式,比如json:",omitempty", 当字段的值为空的时候,我们可以在序列化后的数据中不包含这个值,而json:"-"可以直接不被JSON序列化,…

分析Go程序的Off-CPU性能|转载鸟窝的博客

2021年2月3日 0 条评论 943 次阅读 0 人点赞

性能问题可以分为两种类型: On-CPU: 线程花费在CPU上的时间。 Off-CPU: 线程阻塞在I/O、锁、计时器、页交换等场景中的等待时间。 Off-CPU性能分析砖窑用来测量和研究off-CPU时间,所以它不同于CPU profiling只检查线程在CPU上的运行时间,而是专门研究阻塞的线程…

Kafka理论之Partition & Replication

2021年1月27日 0 条评论 1.03k 次阅读 0 人点赞

基于分区和副本集的相关知识,初步了解Kafka的数据存储、同步原理 Kafka基本架构 上图为Kafka的典型架构图,对于消息的生产以及消费逻辑不在本文的讨论范畴,主要就Broker的数据存储做以浅显的总结。首先解释一下常见的相关专业术语: Broker:消息中间件处理节点;每个Kafka服务节点称…

Go 网络 IO 模型源码分析|转载

2021年1月23日 0 条评论 1.4k 次阅读 1 人点赞

在过去,传统的网络编程模型是多线程模型,在主线程中开启一个网络监听,然后每次有一个客户端进行连接,就会单独开启一个线程来处理这个客户端请求。 然而,如果并发量比较大,服务端就会创建大量的线程,而且会有大量的线程阻塞在网络IO上,频繁的线程上下文切换会占用大量的cpu时间片,严重影响服务性能,而且大量…

加载更多