Hello, World!

~ Enjoy Today ~

Exablaze Exanic X25 网卡介绍
Exablaze Exanic X25 Exanic X25 是目前金融交易领域常见的一款 FPGA 加速网卡,通常被用在行情接收侧用极致的速度接收来自交易所的行情组播(交易侧几乎已经被 Solarflare 一统天下了)。 X25 其实还有一个名字,K3PS (Cisco Nexus K3P-S FPGA SmartNIC),Exablaze 是澳洲一家专门做 HFT 网络设备的公司,后面被 Cisco 收购了,Cisco 收购之后就给 X25 改了个新名字叫 K3PS, 甚至现在卡上面没有任何一个地方印了 X25 的字样,不过大家仍然习惯叫它 X25~ 虽然 Exablaze 网卡线被收购......
不解剖,也能看懂大脑 —— 用外部视角解读你的思维世界
当我们谈起大脑时,很多人第一反应就是复杂的解剖图:沟回纵横、名字拗口,好像非得读过医学教科书才能懂。可事实上,大脑也可以用一种“外行能看懂”的方式去理解。就像看一座城市,不必钻进地下管道或电线分布图,只要站在高处,分清大街小巷,也能明白这座城市的大体功能。 这篇文章,我想带你从外部视角来看看我们的脑袋:不解剖,不掉进术语的陷阱,而是把大脑当作一个生活中真实存在的“司令部”,逐块认识它。你会发现,额头......
一些有意思的C++代码
三行情诗 谁说我们写 C++ 的就不懂浪漫了: // 我的心必须通过"爱你"的约束才能实例化 template<typename Heart> requires loves<Heart, You> // 激情、忠诚、永恒置入爱的元组,这份爱在编译时就已确定,不会因运行时的变化而改变 // 是写在源码里的承诺,是嵌入二进制的誓言 constexpr auto my_feelings = std::tuple{passion, devotion, eternity}; // 在 C++ 的类型系统中,我们的未来被特化为永远为真,这是编译器都认可的事实 template<> struct future<us> : std::true_type { static constexpr auto value = forever; }; 不愧是我们写 C++ 的,写出来的情诗都能是零运行时开销的。 AND 下面这段代......
如何极致地压榨一颗 CPU 核心
通常当服务端工程师谈论 CPU 核心的时候,更多地时候在乎的是数量而不是质量,比如我们开发了一个 Java 服务的容器需要申请一个 4 核 32 GB 内存的套餐(4C32G),还开发了一个 Golang 服务需要 4C8G 的 quota(我真的不是在黑 Java),但我们绝大多数时候并不会关心底层的 4 个核心来自于 AMD 还是 Intel 品牌的 CPU, 更别说具体什么 Xeon 还是 EPYC 型号了。 因为大部分服务端的问题都可以水平扩容来得到解决,四颗核心不够了,那我们申请六颗核心就好了,......
数据的蒲公英——组播
组播与单播 组播(Multicast,又称群播、多播) 与单播 (Unicast) 都是数据传输的一种方式,如果要映射现实世界中的信息传递方式,单播可以类比为打电话,有人呼出电话然后有人接听,然后他们互相畅谈最后互道再见;而组播则更加类似于广播,电台的主播会在收音机的那一头说话,所有打开收音机的人都可以收到,你也可以随时关闭收音机,只能单方面的听到来自对方的声音。 虽然今天到处都是打电话的人,而我们已经很少能在身边看到广播......
动态链接函数调用是如何实现的
函数链接 根据函数在编译期间的链接方式, 我们可以将函数分为三种: 直接调用(Direct Call):这是最直接的一种方式,函数地址在编译时就已经确定,调用时直接跳转到目标地址。 静态链接(Static Linking):在编译时将库与程序合并,尽管在单个编译单元内不确定函数的具体地址,但在链接阶段会解析所有符号,最终生成的可执行文件包含所有必要的代码,无需依赖外部库。 动态链接(Dynamic Linking......
C/C++ & Python 融合之道
Python 解释器 正如软件系统通常分为定义与实现两部分,编程语言也是。 比如 C++ 标准是由国际标准化组织 ( ISO ) 下属的 ISO/IEC JTC1/SC22/WG21特别工作组制定的,最新标准为 C++ 20 (ISO/IEC 14882:2020),这是定义;而其实现则有 GNU 的 gcc、微软的 visual c++、Apple 发起的 clang 等等,任何人都可以按照定义去实现自己的实现。 Java 规范则是由 Oracle 主导的 JCP 所制定,有 Oracle Java SE、OpenJDK、Corretto、AdoptOpen 等大量......