Rust 低延迟交易
rust · rust2021 · low-latency · cache · cache-line · false-sharing · cache-padded · aos
打开 →GLOBAL SEARCH
搜索在服务端完成,题目解析与答案不会进入搜索结果。登录后可搜索自己的收藏题单。
找到 10 个结果
English questionsrust · rust2021 · low-latency · cache · cache-line · false-sharing · cache-padded · aos
打开 →上海一家 私募 的电子交易主管把一名资深工程师拉到一边:「期权做市新策略要求 沪深300 ETF 的 top of book 在策略线程内到达延迟不超过 50 微秒。我们现在跑 Kafka 是 3 毫秒——差了三个数量级。怎么办?」诚实的答案是「先量,再按 rung 一级一级往下挪」。L2 把你留在 Kafka 这一级—— acks='all' 端到端毫秒级...
打开 →周一上午十点,你在国内某头部私募的成交分析(execution analytics)桌,昨夜成交回报落了一份 1M 条沪深300成分股的明细。组长要的不复杂:这一篮子今日的 VWAP(volume weighted average price)是多少?你 30 行 C++17 写完,跑一遍 4.3 ms。下午组长又问:能不能把它压到 1 ms 以内——他想在...
打开 →凌晨四点四十五,上海集合竞价开盘前两小时,你坐在 CFFEX 张江 COLO 机房旁的运维室。你是国内一家头部私募 Rust 团队的负责人,沪深300 ETF (510300.SH) 做市策略;L1、L2、L3 三课合并的成果是一个名为 trading engine 的可跑二进制,策略组的研究员要昨晚通宵回归的直方图报告。终端上滚出来的一行: tick to...
打开 →凌晨四点零一,你坐在 CFFEX 张江 COLO 机房楼上的值班室。你是国内一家头部私募的 Rust 工程师,负责沪深300 ETF (510300.SH) 的行情接入;早盘脚本 03:58 跑完,集合竞价 9:15 开始;此刻你的 tokio::net::UdpSocket 订阅器跑合成行情回归时报了一个序列号缺口 —— 序号 142,367,189 与 ...
打开 →周四下午,你在 SZSE 福田 COLO 机房的运维终端前盯着沪深300 ETF 行情接入面板。3.5.2 L3 你亲手写了一个 SPSC 环,目的是让你之后读生产无锁代码时心里有底;但到了生产代码,你 99% 的场合会直接去用 crossbeam queue 。今早的事故复盘把原因摆得明明白白:兄弟基金的策略组自己搓了一个 MPMC 队列,在高竞争下漏掉了...
打开 →周二上午,你坐在 CFFEX 张江 COLO 机房旁边的运维台前。你是一家头部私募 Rust 团队的开发,负责沪深300 ETF (510300.SH) 的做市策略,代码已经过编译、单元测试通过、回测看起来正常,但 profiler 显示热点循环把 70% 的周期花在了两个 AtomicU64::fetch add 调用上 —— 这两个调用按理每次只应消耗一...
打开 →国内某头部 quant 在 CFFEX 数据中心做股指期货 colo 部署的基础架构 lead,正在 review 一名 junior engineer 的一行 patch。这行改动把策略事件计数器上的 std::mutex 删了——这个计数器是 dashboard 每秒读一次的指标。Engineer 的理由:「计数只增不减,热点路径上也从不读它。」PR 描...
打开 →国内一家私募在 CFFEX 数据中心 colo 部署的资深系统工程师,正在用回放数据 profile 那条新搭起来的 IF/IH 股指期货做市路径。热点循环是这样的:接收线程从组播 UDP 包中 mmap 解出报文,先解析 CTP 行情字段,把一个 TickEvent 推到由 std::mutex 保护的 std::queue 上;策略线程 pop、更新本地...
打开 →你在一家国内头部私募 quant 桌上,周末把一段单线程的沪深300成分股信号聚合器用 C++17 重写。重写"显然更快"——更少的分配、更紧的循环、通篇现代 C++17。周一集成测试都过,墙钟时间却慢了百分之四十。PM 问你为什么。你盯着 diff 看不出名堂,因为你写代码时感到的"更快",住在 C++ 标准之下的一层里:住在缓存层级里、住在一次栈指针挪动...
打开 →