线上支付服务Stripe在GitHub上,开源其生产环境正在使用的Sorbet编译器,该编译器使用Sorbet和LLVM,根据Ruby源代码档案产生符合Ruby的C扩充套件API。目前这个编译器仍处于实验阶段,虽然Sorbet编译器与Sorbet在同一个储存库中,但是并不影响Sorbet的内容,Sorbet也不依赖Sorbet编译器,官方目前并没有计划要释出预建置的Sorbet编译器二进制档案。
Stripe在2019年的时候,开源了Ruby类型检查工具Sorbet,Sorbet能够静态分析专案程式码,以找出类型不一致的错误,并且在程式执行时动态检测类型,以发现Ruby程式中所存在的安全性风险。由于Stripe中绝大多数的程式码都是由Ruby撰写而成,因此Stripe进行了多项能够提高Ruby效能与安全性的专案,Sorbet编译器便是其中一项,过去Sorbet编译器的程式码放在私有储存库,只与少数对象共享,但因为更新专案手续麻烦,因此Stripe决定将编译器开源在Sorbet储存库中,以方便与Sorbet共用同一个内部资料结构。
Stripe的主要产品是API,他们必须压低延迟来提供更好的服务,Stripe采取两个策略降低延迟,除了减少I/O时间,他们也着手加速运算时间,而建构Sorbet编译器,是他们加速Ruby程式的解决方案之一。之所以将Sorbet编译器设计为AOT(Ahead-Of-Time)而非JIT编译器,官方提到,是因为不需要将整个语言Runtime都部署到生产环境,使用AOT编译器,就只要在CI阶段中使用,经过编译的构件,也可以刚好适用于现有的建置工作管线,即便发生问题,可以停止载入有问题的编译构件,让Ruby虚拟机器执行原始程式码就可以减轻问题带来的影响。
AOT编译器在概念上更简单,Stripe认为,实作一个能够改进效能的AOT编译器,比起JIT编译器所花费的时间更少。而且使用Sorbet对专案进行类型检查,AOT编译器就可以使用Sorbet所产生的静态类型资讯,虽然JIT在执行时也能观察类型,来得知编码的方式,但是以Stripe的用例来说,Ruby程式码库大量使用Sorbet,因此使用静态类型资讯有其优势。
Sorbet编译器产生Ruby原生扩充套件,这些套件能够与其他Ruby程式码互通,因此使用Sorbet编译器不需要放弃Ruby虚拟机器,并且可以继续使用现有的Gems和扩充套件。
Sorbet编译器建基在LLVM和现有的Ruby虚拟机器之上,当编译程式码的时候,起点从普通的*.rb程式码档案开始,这些档案会进入到Sorbet中进行类型检查,类型检查的输出为自定义中间语言(Intermediate Representation,IR),Sorbet编译器使用这些IR来生成LLVM IR,LLVM接着使用LLVM IR来产生原生共用物件*.so档案,这些共用物件就是Ruby原生扩充套件,符合且使用与Gems相同的API,也就是说,编译后的构件,使用与其他Ruby程式码相同的物件模型和Runtime表示。
目前Stripe已经在内部的生产环境,使用Sorbet编译器约1年的时间,程式码增加的效能,根据不同工作负载而有所差异,Stripe并没有分享更多效能资讯,但是在程式码库中,提供了一些综合基准检查,但官方提到,这些基准测试并没有代表性,只能用来除错和减少效能问题。
相关文章
- YouTube更新违反规定政策,提升惩处透明度和一致性
2023-12-31 14:00:52
- 传苹果将把中国iCloud正式交给本地化经营 苹果手机icloud换区存储操作
2023-12-27 18:34:43
- 刘德华代言什么手机?刘德华成华为Mate 60 RS非凡大师华为5G新手机代言人
2023-09-26 21:55:08
- WebOS新系统:Palm Pre手机最新款高价登港
2023-06-23 15:39:14
- 帮助企业组织对抗勒索软件,资安通报机构设立防护专区,可协助事前、事中与事后因应
2023-06-22 09:36:10
- 蔚来全系产品降价3万 取消免费换电 换一次电池180元
2023-06-12 17:27:49
- 电商平台三巨头开打最大规模折扣 价格战再次打响
2023-03-05 18:58:40
- 爱立信节省成本裁员四千人 爱立信全球员工总数五分之一
2023-02-24 22:27:29
- 蜜芽关停近况,八位数重金买三字顶级新域名mia.com也关闭
2023-02-23 16:18:14
- 联想CEO杨元庆:联想集团需要裁员32%削减部分业务支出
2023-02-18 12:45:25
- 蓝色光标2022营收亏损18亿 客户预算减少明显
2023-02-18 12:40:08
- 三星工厂或将80%生产转至越南 因本地劳动力成本上升
2023-02-17 23:09:16
- 香港八达通卡如何激活?没用失效过期余额怎么办
2023-02-17 18:34:51
- 中兴通讯被曝将裁员20% 称只裁国外的
2023-02-17 18:33:26
- 苹果新iPhone15Pro手机终于改用USB-C(火牛)数据线??Lightning充电接口退出
2023-02-17 16:57:22
- 突发!蓝色光标曾为中国民企500强龙头 如今业绩亏损断崖下跌
2023-02-16 14:31:19
- 三星发布自家carplay车载中控系统 Car Mode for Galaxy 可以连接carplay吗?
2023-02-14 00:53:17
- Opera浏览器宣布集成ChatGPT 一键生成网页内容摘要
2023-02-14 00:32:08
- 谷歌google计划重返进入中国市场?但结果可能令你失望
2023-02-13 16:57:15
- Zoom紧急裁员1300人 佔员工总数15%
2023-02-08 14:59:11
最新资讯
- YouTube更新违反规定政策,提升惩处透明度和一致性2023-12-31 14:00:52
- 美国法院裁定阿里须为Squishmallows玩具侵权案答辩2023-12-28 19:59:34
- 小米汽车传员工3700人 雷军称小米汽车不可能卖9万92023-12-28 19:41:57
- 吉利飙逾6% 电动车品牌极氪新车款极氪007昨上市 预售价格22.99万元2023-12-28 19:30:28
- 日本丰田汽车厂11月全球产量创新高2023-12-28 19:26:02
手机
- 中国11月手机出货量增34% 5G手机出货量2709.2万部2023-12-28 19:27:57
- 荣耀发布新一代旗舰荣耀Magic5系列,新款上市价格分期0首付3999元起2023-03-06 16:12:32
- 美国商务部指违禁,长江存储被美国拜登制裁名单面临停工裁员2023-02-17 18:41:53
- 苹果Apple iOS车载系统CarPlay支持哪些更多汽车品牌2023-02-02 17:33:27
- 香港去哪买三星手机回来吗? 买香港便宜售价手机市场地点和网站2023-02-02 11:03:11
数码
- 华为5G芯片正式亮相:预示华为将发首款5G手机2023-08-31 13:22:33
- 腾讯传计划放弃虚拟现实VR硬件计划2023-02-17 23:32:30
- 三星手机份额大跌!三星手机中国市场份额变化国内仅剩3%2023-02-01 17:06:15
- 三星手机份额大跌在中国没市场了!国内市场占有率仅剩1%国外比苹果销量高2023-02-01 16:59:53
- vivo发布2022 vivoNEX手机极简易浏览器下载:简洁流畅无广告!2022-12-02 17:29:30
科技
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元2023-02-17 18:58:09