开发者服务市场最近突然火爆起来了,各种云服务层出不穷,就以最基本的代码托管服务为例,国内也有好多家,我挑了几家主流的做了一个横向评测,以供各位码农参考。
一、性能测试
我们用代码托管服务一般有两种访问方式,客户端以及 Web 端。客户端一般用来拉/推代码,在实际测试的过程中发现,客户端操作在不同的服务商那里差异性非常小,所以就没有整理成报告。主要的体验不同在 Web 端。
我分别从北京和广东两个地方进行了一系列常用的 Web 端操作,记录了时间。我选取了10个不同的开源项目,有大有小,对这些项目分别进行同样的操作做对比。测试的数据和过程我全部列出来了,有兴趣的可以用同样的方法在你的环境中测试,我相信得到的数据应该是类似的。
1、测试环境
l 主机:青云主机,2核/2G RAM
l 网络:2Mbps出(由于是服务器,入口带宽应该很大的,具体数据未知)
l 操作系统:Microsoft Windows 2003 R2 32Bits
l 浏览器:Mozilla Firefox 32.0.3
2、测试内容
(1)打开项目的代码目录树
(2)打开项目单个文件查看代码
(3)打开commit列表页
(4)打开commit详情页
3、测试结果
l 地域:北京
(1)打开项目的代码目录树
(2)打开项目单个文件查看代码
(3)打开commit列表页
l 地域:广东
(1)打开项目的代码目录树
(2)打开项目单个文件查看代码
(3)打开commit列表页
(4)打开commit详情页
4、结果说明
l 上述测试结果数据的单位为秒,数值越小越好。
l Coding 的 Commit 详情页的打开速度在图表上基本看不到是因为数值太小(特别是北京),我怀疑跟预先做了相关的缓存有关。
l 由于下行网速比较大,所以传输耗时可以忽略,测试数据可以大致等同于服务器处理并输出数据所用的时间。
l 我不是很能理解为啥 git@osc 和 csdn 都是用的 gitlab 但是性能差异这么大。
l Github 的数据需要考虑墙的因素。
l 各服务商及不同页面的加载方式对比:
一、功能测试
我这里列出了常用的代码托管服务的功能,做了一个表格,清晰明了。可能有某些功能遗漏,欢迎来信告知。
这里有几点需要说明:
1.私有项目的 Pull Request,Coding.net 是通过 Merge Request 实现的,名字不同,功能一样的。
2.保护分支看起来是 Coding.net 专门为团队协作开发的,某些分支只有某些账户具有写操作,防止开发中的误操作。
3. 兼容 SVN 似乎全世界只有 github 实现了。
4.代码质量分析 Coding.net 和 git@osc 都是通过 Sonar 实现的,Coding .net 支持的语言多一些,但分析的质量都很一般。
一、结果分析
从功能性上讲,大家都差不了太多,github 的功能是最全面的,CSDN 和 gitcafe 的功能稍微欠缺一些。从性能上来讲 Coding.net 具有明显的优势,有可能跟 Coding 是用 Java自己开发的有关。据我了解,CSDN 和 git@osc 是用 gitlab 搭的,Ruby 平台,gitcafe,github 是用 Ruby 自己开发的。我感觉抛开墙的因素,github 的总体数据应该不会比 Coding 差。无意挑起语言之争,只是对这里的性能差异的一个猜测,也有可能是算法优化不同,跟语言平台无关。从前端代码来看 Coding 和 github 都大量采用了 Ajax,对速度和体验也有帮助。
那么,问题来了,代码托管哪家强?