返回首页
最新
作者在此。
这开始于一个探索,看看我能多快地推动M1 Pro上的单核性能。
我从零开始使用C++20构建了一个订单匹配引擎。
最初,它的性能约为每秒10万次操作。经过一个月的优化,现在的性能达到了每秒约1.56亿次操作。
主要优化措施:
- 移除了所有互斥锁(每个核心一个分片架构)。
- 为线程间通信定制了无锁的单生产者单消费者环形缓冲区。
- 用扁平向量和位集扫描(使用CTZ指令)替代了std::map。
- 在栈上使用std::pmr(多态内存资源)实现零分配的热路径。
为了证明它能够处理真实市场(不仅仅是随机数字),我通过重放捕获的Binance L3市场数据(每秒1.32亿次操作)进行了验证。
关于优化过程的详细写作在这里:
<a href="https://medium.com/@kpiyush8826/how-i-optimized-a-c-matching-engine-from-100k-to-150-million-orders-per-second-35b2065fa4c0" rel="nofollow">https://medium.com/@kpiyush8826/how-i-optimized-a-c-matching...</a>
欢迎提问!
我创建了一个小型命令行工具,方便分享和重用Claude Code技能。<p>skill-add解决了这个问题:在GitHub上创建一个包含你技能的代理技能库,任何人都可以通过以下命令安装它们:<p>skill-add yourname/skill-name<p>它会从github.com/yourname/agent-skills下载技能,并将其复制到你当前项目中的.claude/skills/目录下。<p>就是这样。没有注册,没有认证,仅仅是GitHub仓库。<p>使用Python/Typer构建,代码大约100行。