独立博客档案 宁波市

编程沉思录

www.cyhone.com

本博客主要是记录自己思考和总结的一些东西,包括不限于源码分析、读书总结以及技术方案等方面。

持续收录 后台收录 认领博客
收录文章
31
篇文字被发现
文章访问
0
次从这里出发阅读
博客访问
0
次前往作者站点
最近更新
05.09
2026年

FROM THIS BLOG

最近文章

第 1 / 3 页

std::any 的性能开销:基于 libstd++ 源码分析

C++17 中引入了 `std::any`,可以非常方便地将任意类型的变量放到其中,做到安全的类型擦除。然而万物皆有代价,这种灵活性背后必然伴随着性能取舍。 std::any 的实现本身也并不复杂,本文将基于 [libstd...

从源码角度解读 enable_shared_from_this

我们在使用 C++ 的时候,有时会需要在类的内部获取自身的 shared_ptr,这就会用到 `std::enable_shared_from_this`。在实际使用过程中,`std::enable_shared_from_this` 有三个陷阱需要注意: 1. 不能在...

Context的错误使用引发Panic的问题复盘

我们有这么一段业务代码,在 Gin 的 API Handler 中,开了一个子 goroutine 写 DB,代码大概是这样: ```go package main import ( "github.com/gin-gonic/gin" "gorm.io/gorm" ) var db *gor...

Go 1.22 可能将改变 for 循环变量的语义

几乎世界上每个 Golang 程序员都踩过一遍 for 循环变量的坑,而这个坑的解决方案已经作为实验特性加入到了 Go 1.21 中,并且有望在 Go 1.22 中完全开放。 举个例子,有这么段代码: ```go var ids []*int...

剖析Golang Bigcache的极致性能优化

[Bigcache](https://github.com/allegro/bigcache)是用Golang实现的本地内存缓存的开源库,主打的就是**可缓存数据量大,查询速度快。** 在其官方的介绍文章[《Writing a very fast cache service with mi...

os.Chmod 时到底用 777 还是 0777?

问题是这样的:我在代码里面调用了 `os.Chmod("test.txt", 777)`,希望把该文件的读写及执行权限对所有用户开放。 执行完代码,顺手 ls 看了下。如下: ```shell $ ls -l test.txt -r----x--x 1 cyhone...

一个 Gin 缓存中间件的设计与实现

我们在开发 HTTP Server 的时候,经常有对接口内容做缓存的需求。例如,对于某些热点内容,我们希望做 1 分钟内的缓存。短期内缓存相同内容不会对业务造成实质影响,同时也会降低系统的整体负载。 有时...

高性能服务之优雅终止

「优雅终止」指的是当服务需要下线或者重启时,通过一些措施和手段,一方面能够让其他服务尽快的感知到当前服务的下线,另一方面也尽量减小对当前正在处理请求的影响。优雅终止可提升服务的高可用,减少下...

Elasticsearch 学习:入门篇

Elasticsearch 是一个分布式搜索引擎,底层基于 Lucene 实现。Elasticsearch 屏蔽了 Lucene 的底层细节,提供了分布式特性,同时对外提供了 Restful API。Elasticsearch 以其易用性迅速赢得了许多用户,被...

个人博客及公众号常用工具

本文整理和记录下自己在运营 [个人博客](cyhone.com) 以及公众号时常使用到的一些工具。主要包含以下方面: 1. 中英文空格的自动排版 2. 微信公众号如何使用 markdown 发布 3. 绘图工具 4. 图片压缩工具 5...