会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
apocelipes
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
···
13
下一页
2024年7月28日
c语言模拟Python的命名参数
摘要: 最近在书里看到的,让c语言去模拟其他语言里有的命名函数参数。觉得比较有意思所以记录一下。 目标 众所周知c语言里是没有命名函数参数这种东西的,形式参数虽然有自己的名字,但传递的时候并不能通过这个名字来指定参数的值。 而支持命名参数的语言,比如python里,我们能让代码达到这种效果: def k_f
阅读全文
posted @ 2024-07-28 08:08 apocelipes
阅读(303)
评论(0)
推荐(0)
2024年7月9日
c++临时对象导致的生命周期问题
摘要: 对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题。 今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来。光是我自己写、review、回答别人的问题就犯了或者看到了许许多多这类问题,所以我想有必要做个简单的总结,自己备忘的同时
阅读全文
posted @ 2024-07-09 14:02 apocelipes
阅读(2903)
评论(20)
推荐(5)
2024年7月3日
随机数漫谈
摘要: 随机数对程序设计来说很重要,今天就从几方面探讨下一些常见的随机数相关的问题。 本文只讨论整数相关的随机数,另外需要你对概率论有最基本的了解(至少知道古典概型是什么)。 本文索引 如何从rand7生成rand5 go标准库的做法 从rand5生成rand7 充分利用每一个bit 带有权重的随机数 随机
阅读全文
posted @ 2024-07-03 12:05 apocelipes
阅读(4547)
评论(3)
推荐(13)
2024年5月27日
性能优化陷阱之hash真的比strcmp快吗
摘要: 最近网上冲浪的时候看到有人分享了自己最近一次性能优化的经验。我向来对性能是比较敏感的,所以就点进去看了。 然而我越看越觉得蹊跷,但本着“性能问题和性能优化要靠性能测试做依据”,我不能凭空怀疑别人吧,所以我做了完整的测试并写下了这篇文章。 可疑的优化方案 分享者遇到的问题很简单:他发现程序中超过一半的
阅读全文
posted @ 2024-05-27 11:06 apocelipes
阅读(3032)
评论(15)
推荐(10)
2024年5月16日
因为我的一次疏忽而带来的golang1.23新特性
摘要: 距离golang 1.23发布还有两个月不到,按照惯例很快要进入1.23的功能冻结期了。在冻结期间不会再添加新功能,已经添加的功能不出大的意外一般也不会被移除。这正好可以让我们提前尝鲜这些即将到来的新特性。 今天要说的就是1.23中对//go:linkname指令的变更。这个新特性可以说和我的一次失
阅读全文
posted @ 2024-05-16 10:55 apocelipes
阅读(4568)
评论(2)
推荐(7)
2024年5月14日
Linux上执行内存中的脚本和程序
摘要: 在Linux中可以不需要有脚本或者二进制程序的文件在文件系统上实际存在,只需要有对应的数据在内存中,就有办法执行这些脚本和程序。 原理其实很简单,Linux里有办法把某块内存映射成文件描述符,对于每一个文件描述符,Linux会在/proc/self/fd/<文件描述符>这个路径上创建一个对应描述符的
阅读全文
posted @ 2024-05-14 10:00 apocelipes
阅读(820)
评论(0)
推荐(2)
2024年5月5日
C++ lambda的重载
摘要: 先说结论,lambda是不能重载的(至少到c++23依旧如此,以后会怎么样没人知道)。而且即使代码完全一样的两个lambda也会有完全不同的类型。 但虽然不能直接实现lambda重载,我们有办法去模拟。 在介绍怎么模拟之前,我们先看看c++里的functor是怎么重载的。 首先类的函数调用运算符是可
阅读全文
posted @ 2024-05-05 11:00 apocelipes
阅读(570)
评论(0)
推荐(0)
2024年4月29日
C++里也有菱形运算符?
摘要: 最近在翻《c++函数式编程》的时候看到有一小节在说c++14新增了“菱形运算符”。我寻思c++里好像没什么运算符叫这名字啊,而且c++14新增的功能很少,我也不记得有添加这种语法特性。一瞬间我有些怀疑我的记忆了,所以为了查漏补缺,我写了这篇文章。 什么是菱形运算符 这个概念在Java里比较多见: L
阅读全文
posted @ 2024-04-29 16:25 apocelipes
阅读(1589)
评论(0)
推荐(5)
2024年3月25日
golang gc的内部优化
摘要: 今天讲一个常见的gc compiler(也就是官方版本的go编译器和runtime)在垃圾回收的扫描标记阶段做的优化。 我对这个优化的描述印象最深的是在bigcache的注释里,大致内容是如果map的键值都不包含指针,那么gc扫描的时候不管这个map多大都不会深入扫描map内部存储的数据,只检查ma
阅读全文
posted @ 2024-03-25 14:46 apocelipes
阅读(2536)
评论(0)
推荐(3)
2024年1月29日
errgroup的常见误用
摘要: errgroup想必稍有经验的golang程序员都应该听说过,实际项目中用过的也应该不在少数。它和sync.WaitGroup类似,都可以发起执行并等待一组协程直到所有协程运行结束。除此之外errgroup还可以在协程出错时取消当前的context,以及它还能控制可运行的协程的数量。 但在日常的代码
阅读全文
posted @ 2024-01-29 11:00 apocelipes
阅读(1737)
评论(0)
推荐(1)
上一页
1
2
3
4
5
6
7
8
···
13
下一页
公告