2025 年编译器资源管理器如何工作——马特·戈德博尔特的博客

主要观点:介绍 Compiler Explorer 网站的工作原理及相关情况,包括每年的编译次数、支持的编译器版本、运行架构等,还提及了面临的挑战及未来计划。
关键信息:

  • 每年进行 9200 万次编译,每周 180 万次。
  • 支持 81 种编程语言和 3000 多个编译器版本,存储约 4TB 编译器。
  • 工作流程:用户在 Monaco 编辑器输入代码,通过 CloudFront 和负载均衡器发送请求,在 nsjail 沙盒中运行编译器生成输出,经处理后以 JSON 响应返回给浏览器。
  • 采用 nsjail 进行安全隔离,包括 Linux 命名空间、资源限制和文件系统隔离等。
  • 每天构建和安装许多编译器,夜间进行编译工作,通过 GitHub Actions 运行。
  • 支持多种架构,如 Windows、ARM 和 GPU 等,但目前主要在 AWS 的 us-east-1 区域运行。
  • 利用多种监控工具如 Grafana、Prometheus、Loki 和 CloudWatch 来监控系统。
    未来计划:添加用户账户管理、更多架构支持和 CPU 性能分析可视化等功能。
    重要细节:
  • 早期因使用第三方短链接服务,当 Google 停止服务时,需保留 12000 多个旧链接。
  • 基础设施方面,NFS 目录结构布局不佳,配置管理困难,部署过程也较随意,正在努力改进。
  • 成本方面,目前主要使用 spot 实例和缓存来控制成本,每月约 3000 美元,靠 Patreon 和赞助支持。
  • 团队成员包括 Partouf、Jeremy Rifkin 等众多贡献者和管理员。
阅读 12
0 条评论