V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
csfreshman
V2EX  ›  C++

招聘要求中的 低延迟系统开发(C++),一般涉及到哪些具体技术和资料?

  •  
  •   csfreshman · 2023-10-14 16:03:46 +08:00 · 2803 次点击
    这是一个创建于 411 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有 v 友在做量化的低延迟系统开发( c++),具体需要哪些技术和资料?看招聘要求中只是列出一些通用的技术,没有涉及一些细节。 比如看到的一个招聘要求,就只是写的一些比较宽泛的技术点:C++, Algorithms, Data Structure, design, memory

    C++开发工程师-低延迟交易系统
    
    技术点:C++, Algorithms, Data Structure, design, memory
    
    你将会:
    
    1.开发低延迟交易系统以及相关服务
    
    这是我们开发的主要产品,高质量的交易系统可以让我们在交易中占尽先机
    
    2. 与跨国同事合作完成项目
    
    与美国团队充分交流、合力推进项目进程,收获成就感
    
    3. 重视用户体验,持续改进产品
    
    站在内部用户的角度考虑问题,开发出彼此满意的产品
    
    4. 大胆去设计和尝试与项目有关的任何东西
    
    我们希望你:
    
    1. 拥有扎实的基础知识
    
    C++/Python 固然重要,计算机网络,算法,系统设计,数据结构的知识也不可或缺
    
    2. 懂得如何做项目设计
    
    经验长短不重要,但要能自主设计项目方案
    
    3. 对新技术有好奇心
    
    
    18 条回复    2023-10-15 21:27:03 +08:00
    786375312123
        1
    786375312123  
       2023-10-14 16:09:10 +08:00
    youtube 上一搜一大把
    csfreshman
        2
    csfreshman  
    OP
       2023-10-14 16:39:11 +08:00
    @786375312123 没搜到特别满意的,看到有个介绍 低延迟系统那些事 xxx ,表达的不知所云
    codyfeng
        3
    codyfeng  
       2023-10-14 16:45:45 +08:00 via Android
    知乎的这个帖子覆盖了大部分的知识
    https://www.zhihu.com/question/23185359
    china521
        4
    china521  
       2023-10-14 19:14:39 +08:00
    公司会拉国际专线吗,不然会被没收违法所得.. -:)
    exch4nge
        5
    exch4nge  
       2023-10-14 20:08:46 +08:00   ❤️ 2
    不是做这个方向的,强行答下,希望能有帮助
    多线程开发,有很多锁/条件变量之类的,能正确使用其实不容易。相关可以学多线程安全的数据结构,或进一步无锁的并发数据结构。学会用 perf 之类的工具优化性能,如减少 cpu cache miss ,减少对象复制开销,编写对编译器更友好的代码等等。也可以学 simd 指令集与应用。学 OS 与硬件,知道写的代码会经过哪些 syscall ,网络方面比如如何减少 user space 到 kernel space 的内存复制等
    大部分做到了解原理以及会用的程度就很不错了,比如你要需要一个并发的 Queue ,到底用哪个,为什么选择用那个等
    当然最重要的还是问题分析与设计能力,解决实际业务需求,能够设计出合理的架构,得出这种“我需要并发 quque 去实现某功能”
    janus77
        6
    janus77  
       2023-10-14 20:27:29 +08:00
    放宽心,虽然写的很高大上,招的不一定就是核心系统开发,有可能进去做的是策略、GUI 、devops 等周边的内容。很多细节不会关注到
    artnowben
        7
    artnowben  
       2023-10-14 20:31:31 +08:00
    网络方面,会用到 kernel bypass 技术,如 solarflare 网卡,DPDK
    happy32199
        8
    happy32199  
       2023-10-14 22:56:22 +08:00 via iPhone
    这个以后会改用 rust 吗
    roundgis
        9
    roundgis  
       2023-10-14 23:07:34 +08:00 via Android
    @happy32199 不大會 除非是新公司
    786375312123
        10
    786375312123  
       2023-10-15 00:04:37 +08:00
    @roundgis 谷歌已经在用 rust 改写很多模块了,以后只会越来越多。
    ivvei
        11
    ivvei  
       2023-10-15 00:33:14 +08:00
    其实和 C++本身关系不是特别大,更多的是对计算机体系结构上的认识,以及一些行业经验。
    比如怎样设计日志系统,怎样做延迟测量,针对某个场景使用怎样的数据结构,什么时候需要提前分配内存什么时候可以动态增加,怎样绑核,选择怎样的硬件( CPU, 网卡之类),超频怎么超,大小核怎么选,怎样写 Cache 友好的程序……
    没有什么专门的名字来概括这是一个什么技术,大多都是点点滴滴的积累。
    LeeReamond
        12
    LeeReamond  
       2023-10-15 06:34:58 +08:00
    @codyfeng 看了看,感觉都是一些常识相关以及设备相关的内容,和代码没啥大关系。C++就是 C++,码破天也没法更快。。
    csfreshman
        13
    csfreshman  
    OP
       2023-10-15 10:49:07 +08:00
    感谢,这个低延迟系统开发感觉要求更高一些,对整个计算机体系,软硬件知识,操作系统,数据结构等等,C++/C/汇编,可能都有涉及
    csfreshman
        14
    csfreshman  
    OP
       2023-10-15 10:49:30 +08:00
    @janus77 招聘造飞机,入职打螺丝,也是常态
    jones2000
        15
    jones2000  
       2023-10-15 12:12:06 +08:00
    1. 需要魔改系统,移除没有必要的功能,只留下交易需要的功能。
    2. 数据直接读写网卡。
    3. 机器托管到主干机房, 或离交易所近的地方(如券商机房)
    e9pWeUbh9PGCnp95
        16
    e9pWeUbh9PGCnp95  
       2023-10-15 12:26:06 +08:00
    基本上从计算机体系结构,操作系统,和分布式要全懂.
    victorc
        17
    victorc  
       2023-10-15 14:22:53 +08:00
    吹牛的,没有啥可参考性
    能不能通过面试,看运气,这些量化私募需要的岗位很少
    ac23
        18
    ac23  
       2023-10-15 21:27:03 +08:00
    @happy32199 可能很低
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1168 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.