会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
apocelipes
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
···
13
下一页
2024年1月17日
golang chan传递数据的性能开销
摘要: 这篇文章并不讨论chan因为加锁解锁以及为了维持内存模型定义的行为而付出的运行时开销。 这篇文章要探讨的是chan在接收和发送数据时因为“复制”而产生的开销。 在做性能测试前先复习点基础知识。 本文索引 数据是如何在chan里流动的 情况1:发送的数据有读者在读取 情况2:发送的数据没有读者在读取
阅读全文
posted @ 2024-01-17 10:31 apocelipes
阅读(1606)
评论(0)
推荐(2)
2023年9月5日
我们能从PEP 703中学到什么
摘要: PEP703是未来去除GIL的计划,当然现在提案还在继续修改,但大致方向确定了。 对于实现细节我没啥兴趣多说,挑几个我比较在意的点讲讲。 ## 尽量少依赖原子操作的引用计数 没了GIL之后会出现两个以上的线程同时操作同一个Python对象的情况,首先要解决的是引用计数的计算不能出岔子,否则整个内存管
阅读全文
posted @ 2023-09-05 15:21 apocelipes
阅读(1187)
评论(0)
推荐(1)
2023年8月9日
golang1.21新特性速览
摘要: 经过了半年左右的开发,golang 1.21 在今天早上正式发布了。 这个版本中有不少重要的新特性和变更,尤其是在泛型相关的代码上。 因为有不少大变动,所以建议等第一个patch版本也就是1.21.1出来之后再进行升级,以免遇到一些意外的bug带来麻烦。 好了,一起来看看1.21带来的新特性吧。 本
阅读全文
posted @ 2023-08-09 17:31 apocelipes
阅读(6201)
评论(0)
推荐(2)
2023年7月24日
想在golang里用好泛型还挺难的
摘要: golang的泛型已经出来了一年多了,从提案被接受开始我就在关注泛型了,如今不管是在生产环境还是开源项目里我都写了不少泛型代码,是时候全面得回顾下golang泛型的使用体验了。 先说说结论,好用是好用,但问题也很多,有些问题比较影响使用体验,到了不吐不快的地步了。 这篇文章不会教你泛型的基础语法,并
阅读全文
posted @ 2023-07-24 13:29 apocelipes
阅读(6121)
评论(6)
推荐(2)
2023年7月18日
简单了解下最近正火的SwissTable
摘要: 去年看到字节跳动给golang提了issue建议把map的底层实现改成SwissTable的时候,我就有想写这篇博客了,不过因为种种原因一直拖着。 直到最近遇golang官方开始讨论为了是否要接受SwissTable作为map的默认实现,以及实际遇到了一个hashtable有关的问题,促使我重新思考
阅读全文
posted @ 2023-07-18 11:34 apocelipes
阅读(9158)
评论(3)
推荐(5)
2023年7月8日
让golang程序生成coredump文件并进行调试
摘要: 今天讲讲怎么让golang程序生成coredump文件,并且进行调试的。 别看我写了不少golang的博客,其实我平时写c++的时间更多,所以也算和coredump是老相识了。`core dump`文件实际上是进程在某个时间点时的内存映像,当时进程使用的内存是啥样就会被原样保存下来存在文件系统的某个
阅读全文
posted @ 2023-07-08 10:28 apocelipes
阅读(5458)
评论(0)
推荐(0)
2023年5月3日
golang中一种不常见的switch语句写法
摘要: 最近翻开源代码的时候看到了一种很有意思的switch用法,分享一下。 注意这里讨论的不是typed switch,也就是case语句后面是类型的那种。 直接看代码: func (s *systemd) Status() (Status, error) { exitCode, out, err :=
阅读全文
posted @ 2023-05-03 06:02 apocelipes
阅读(2373)
评论(14)
推荐(4)
2023年3月20日
小心golang中的无类型常量
摘要: 对于无类型常量,可能大家是第一次听说,但这篇我就不放进拾遗系列里了。 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下。包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到出了什么问题的时候为时已晚,最后不得不多了个合并请求留下了丢人的黑历史。 为什么我要提这种尘封往事呢
阅读全文
posted @ 2023-03-20 13:21 apocelipes
阅读(1117)
评论(11)
推荐(1)
2023年2月20日
golang拾遗:实现一个不可复制类型
摘要: 这是golang拾遗系列的第六篇。这个系列主要用来记录一些平时不常见的知识点,偶尔也会实现些有意思的小功能,比如这篇。 golang拾遗系列目录: golang拾遗:指针和接口 golang拾遗:为什么我们需要泛型 golang拾遗:嵌入类型 golang拾遗:内置函数len的小知识 golang拾
阅读全文
posted @ 2023-02-20 14:13 apocelipes
阅读(1023)
评论(0)
推荐(0)
2022年11月28日
为什么标准库的模板变量都是inline的
摘要: 最近在看标准库里的type_traits的时候发现了个有趣的地方,几乎所有在标准库里的变量模板都是inline的! 不仅常见的实现上(libstdc++、libc++、ms stl)都是inline的,标准里给的形式定义也是inline的。 比如微软开源的stl实现:https://github.c
阅读全文
posted @ 2022-11-28 09:49 apocelipes
阅读(2515)
评论(1)
推荐(15)
上一页
1
2
3
4
5
6
7
8
9
···
13
下一页
公告