当前位置: 首页 > news >正文

GitHub问题频发:可靠性堪忧,前端代码臃肿,与竞品对比差距明显!

引言

作者开始写文章时,GitHub又宕机了。尽管已有很多文章讨论过GitHub在可靠性、安全性和性能方面的问题,但这些都只是触及了表面。GitHub就像是一种“信号”,反映了GitHub自身以及整个大型科技软件服务领域的基础设施衰退问题。虽然几乎每个大型科技公司的服务都存在类似的衰退问题,但GitHub尤为突出,因为它几乎成了软件开发的代名词。

GitHub近期问题的小样本

根据GitHub自己的公开通报,每月会发生数十起事故,这意味着实际事故率可能高达数百起。GitHub不公开Bug列表或问题页面,将问题深藏在邮件链中。GitHub不断向用户谎报其正常运行时间和优先级,即使按照其自身指标,它也违反了服务水平协议。而且,GitHub显然更注重花哨的AI功能,而非基础的可靠性。

GitHub上“智能代理”负载的增加,直接源于其自身及其母公司微软的行为,这使得可靠性问题完全是它们自己的过错。GitHub在Firefox和Safari等拥有数百万用户的浏览器上经常出现故障。GitHub容忍其服务上明显的“买粉丝”和“买星”行为,并推广明显是刷量的仓库。

GitHub的拉取请求页面运行迟缓,且极其耗费内存。GitHub经常重置或更改项目和用户设置,新功能默认开启,即使这些功能存在极大风险。GitHub显然更重视花哨的“AI”项目,而非真正付费的客户。

GitHub Actions设计糟糕、运行缓慢且文档不完善,很可能是“用YAML编写的shell脚本”式构建系统中最糟糕的。GitHub Actions的日志会泄漏内存,多年来多次导致浏览器崩溃,而且至今仍无法将标准输出重定向到其他地方。GitHub“默认”操作的默认缓存行为极其幼稚,甚至比没有缓存还糟糕;很多操作根本不进行缓存失效处理。

GitHub的前端臃肿且运行缓慢,十分可笑,经常在Safari和Firefox上出现故障,还不断在没有警告或解释的情况下更改用户体验,常常故意用更多指向其“AI”系统的引导,取代原本有用的UX部分。

GitHub不断向用户谎报其正常运行时间和优先级

GitHub的官方状态页面声称其正常运行时间约为99.8%,但实际数字连一个9都没有。GitHub很清楚自己最近陷入了困境,于是发布了一些新闻稿来试图转移批评。

微软称主要驱动因素是软件开发方式的快速变化,智能代理开发工作流程急剧加速。但使用被动语态说“智能代理开发工作流程急剧加速”很荒谬,因为GitHub归微软所有,微软以各种重叠的方式将AI、“智能代理”等融入了每一款产品。

GitHub和微软一直在各种情况下推动用户使用“AI”和“智能代理”。很难夸大他们希望用户使用这些东西的程度,在普通仓库主页的右上角四分之一区域内,就有四种不同的方式可以启动Copilot。

多年来,GitHub为了推动这些工具的使用,对使用成本进行了补贴,实际上是在对自己进行分布式拒绝服务攻击。微软称优先级是可用性、容量和新功能,但GitHub显然更注重花哨的AI功能,而非基础的可靠性。

同样由微软拥有的Visual Studio Code直接集成了GitHub及其“智能代理”功能,而且在基本功能逐渐变得几乎无法使用的情况下,仍不断添加更多功能。

微软承认系统设计存在问题,性能是软件架构的下游产物。GitHub可靠性问题的根源在于其后端和数据库,不过可以查看其前端代码来了解其技术能力。

GitHub的前端代码一团糟:GitHub、GitLab和Codeberg的比较

图片:GitHub、GitLab和Codeberg的仓库主页

GitHub及其竞争对手的大多数前端页面,本质上是带有一些简单用户体验元素和搜索栏的链接列表。这些服务的页面在功能和外观上基本相同,Codeberg和GitLab都有意模仿了GitHub的用户体验。

实验设计

为了确定这些前端的成本并估算潜在的bug数量,设计了一个实验。尽量减少干扰变量,将网络速度限制为“快速3G”连接,使用相同的最小化仓库进行比较,所有实验都使用相同的浏览器和计算机,研究每个服务的四个页面。

实验步骤

创建一个名为“ghsucks”的最小化Git仓库,将该Git仓库上传到每个远程仓库。对于每个页面,清空缓存后收集HTTP存档网络请求、页面加载完成后收集堆内存快照、使用“testcompress”收集压缩支持信息。分析数据,使用“anhar”分析HAR,使用“testcompress”分析压缩支持情况。使用第三方服务对这些网站进行分析。

进行实验
创建仓库

创建一个名为“ghsucks”的最小化Git仓库,只有一个分支、一个文件,没有问题、标签或其他杂项。

将仓库上传到GitHub、GitLab和Codeberg

将创建的Git仓库上传到GitHub、GitLab和Codeberg。

收集网络样本数据

在Firefox中加载页面并打开检查工具,将网络连接限制为“快速3G”预设,并禁用缓存,重新加载页面,然后将“har”存档保存到磁盘。

加载后收集堆内存使用情况

使用Firefox内置的性能分析工具,在“内存”选项卡下拍摄堆内存快照。GitHub和GitLab即使在不进行任何操作时,也会使用大量的内存,在有实际内容的页面上,内存使用量会迅速飙升。

堆内存使用情况分析及历史对比

GitHub和GitLab的内存使用情况令人厌恶,与历史上重要或有趣的计算机及其内存容量相比,这种内存浪费程度更明显。

使用“testcompress”收集压缩支持信息

压缩是降低客户端、服务器以及中间环节负载的有效方法。使用Go标准库“gzip”和“github.com/klauspost/compress/zstd”库中的最大压缩级别进行比较,了解最大的节省效果。

使用“anhar”分析网络存档(HAR)

编写了一个小程序“anhar”来分析这个存档,输出按HTTP请求类型划分。

结语

通过以上分析,你如何看待GitHub目前存在的这些问题呢?

http://www.jsqmd.com/news/939952/

相关文章:

  • 保姆级教程:在Nvidia Jetson Orin(Ubuntu 20.04)上配置NoMachine远程桌面,含ARM64版deb包下载
  • 从CHI 2010看人机交互的范式演进与技术多样性
  • 三步打造专属qBittorrent搜索引擎插件:从零开始到实战部署
  • 复杂调查设计与机器学习融合:SDRF算法解析与应用
  • 办公人员专属工作流:自动整理每日工作文件、归档文档、生成工作总结
  • 告别软件模拟!STM32F103硬件I2C驱动OLED屏实战(附标准库源码)
  • RPG Maker MV资源解密小工具:浏览器里点几下就能解开rpgmvp/rpgmvm/rpgmvo加密文件
  • ArcGIS Pro 3 里OSGB转SLPK,我踩过的那些坑和最终的高效批处理方案
  • 如何5分钟配置Zotero-GPT:AI智能文献管理插件终极指南
  • SIM868M32蓝牙版嵌入式AT开发包(含MT6261编译环境与全功能Demo)
  • 低资源语言手写文本识别的ViT-Transformer创新方案
  • Claude Code 100个真实案例 - 5分钟用AI做一个贪吃蛇游戏(带排行榜和特效)
  • STM32学习笔记【11.蜂鸣器和按键模块】
  • 2026年靠谱的极简门墙柜/陕西门墙柜工厂定制/门墙柜同色定制优质厂家汇总推荐 - 行业平台推荐
  • 一个用于模拟国际空间站通信中延迟/中断容忍网络的开源框架
  • 告别root权限烦恼:非root用户kingbase安装KingbaseES数据库的完整流程(附服务注册与状态检查)
  • ABAP Activation 机制详解,从 inactive version 到 runtime object 的完整链路
  • 手机端AI编程:KimiClaw和马维斯到底哪家强
  • 2026年靠谱的高精度中空旋转平台/130中空旋转平台厂家对比推荐 - 品牌宣传支持者
  • 告别卡顿!用ArcGIS Pro 3的批处理功能高效转换超大OSGB模型为SLPK
  • 【Linux网络】网络层IP协议(一)
  • Protobuf动态解析踩坑记:从‘静态编译’到‘Descriptor方案’的选型思考与性能对比
  • 避坑指南:用bayesplot给Stan模型做可视化,这5个细节新手最容易忽略
  • 2026年质量好的门墙柜/定制门墙柜系统优质公司推荐 - 品牌宣传支持者
  • 深入Synopsys DesignWare PCIe IP:iATU地址匹配与BAR匹配实战配置详解(附避坑点)
  • 内容创作者AI工具组合(20年内容基建经验浓缩):从单点提效到组织级智能跃迁的3阶段演进路径
  • YOLOv8训练救星:用早停(Early Stopping)和自定义指标告别过拟合,节省GPU时间
  • 面对对象的概念
  • 2026年热门的贵州宣传栏/贵州精工字/标识标牌/贵州吸塑灯箱优质供应商推荐 - 品牌宣传支持者
  • 搞懂Spring Boot登录认证:从UUID到JWT,一次完整的架构推演