大家能够忍受的编译时间是多久

2013-03-16 07:37:27 +08:00
 ufo22940268
之前做了2年的android-porting, 因为是编译framework,所以需要的时间非常久,我就放在服务器上编译。所以就变成改一次代码,编译+部署差不多花了我40秒。

现在在新公司,做android app开发,没有服务器,公司不提供电脑(说转正之后再给我配)。所以我只能天天带着我的乞丐版mac air 11“去上班,结果编译还是花费了我30秒钟时间。总觉得接受不了,对于我这种稍微改一下代码或者junit test就编译一次的人来说。
结果昨天看了下同事编译和我同等规模的ios app,居然只要10秒钟!虽说他电脑比我好吧,不过总不至于相差这么多。
10008 次点击
所在节点    程序员
51 条回复
cassyfar
2013-03-16 07:47:22 +08:00
40s长吗...
编译的时候正好偷个懒什么的,多好
vibbow
2013-03-16 07:49:25 +08:00
取决于干嘛了。

我们公司的项目,编译一次要20分钟。
更不用说完整的JUnit Test一次了,从来没白天跑过,都是晚上自动跑的。

反正编译是一个考验整机性能的活,除了显卡。
ufo22940268
2013-03-16 07:51:54 +08:00
@cassyfar 原来我也是这么想的,然而实际上在编译的时候我想想那个想想这个,然后编完之后有时候就会忘了自己刚刚编译的原因是什么。
ufo22940268
2013-03-16 07:54:42 +08:00
@vibbow 兄弟,可不可以跑题问一个关于JUnit的问题.
我现在开发的是一个客户端的app,它就是解析一下服务器的json,然后显示一下就这么简单。
可是问题是我写JUnit Test的时候直接取真实的服务器端的数据进行测试,这样子对吗?
还是说我应该把服务器端返回的json给mock起来?
vibbow
2013-03-16 08:08:59 +08:00
@ufo22940268 这个不是很清楚了。
我们公司的产品架构是JAVA, JSP, XML, XSL。
我们的JUnit测试就是两个方面:
1. JUnit调用selenium,然后在Firefox里自动测试网页流程,只要捕捉到了关键字就算通过。
2. 用XSL渲染XML数据,只要没有出错,就算通过。

取真实的数据没问题,只要你有方法能验证这个数据是正确的就行了。
vibbow
2013-03-16 08:14:48 +08:00
@ufo22940268 取真实的数据有时更能发现隐藏的错误。比如说特殊字符处理,或者来源数据如果错误怎么办之类的问题。
不过记得保存测试日志。
我们测试时所有的数据全部都保存(tomcat日志,远程服务器返回的日志,xsl渲染出来的数据,以及出错时屏幕截图等等),这样出错时才好找问题出在哪里。
ufo22940268
2013-03-16 08:24:26 +08:00
@vibbow 我本来也是这么想的。不过开发了一段时间后发现服务器端的数据有的时候居然会变化(有的时候是因为服务器自己的问题引起),所以我的测试用例有的时候就变成帮服务器测bug的工具了。总之有的时候因为服务器数据变化导致我改测试用例这件事情让我感觉有点不爽。
zhujinliang
2013-03-16 08:24:28 +08:00
10到20分钟吧,既有成就感,还又不太浪费时间,正好喝杯茶,上个厕所神马的
SkyFvcker
2013-03-16 08:29:41 +08:00
Gentoo用户表示对编译时间很有耐受力~~~~
vibbow
2013-03-16 08:57:20 +08:00
@ufo22940268 我们公司产品的中间件有些奇葩,有这么一个选项:
如果没有在一段时间内从远程获取到数据,那么就自己伪造一个输出给前端。
当然也是产品功能之一,有时候客户不需要用在线数据,就可以用离线数据。
Mutoo
2013-03-16 09:32:05 +08:00
带薪编译。
sumu
2013-03-16 09:41:11 +08:00
当你加入一个团队之后发现团队要求每次做新功能要单独拉分支,而新分支编译要2个小时以上。。。。。,当开发完之后合并到主干,再次拉一个分支,同样是2个小时,so,少年,几十秒的编译时间,浮云啊,如果工程简单,来个make -j能少等一会儿
clowwindy
2013-03-16 09:49:59 +08:00
想清楚了,写好了,检查一下,再运行。
xdeng
2013-03-16 09:54:58 +08:00
linux内核更久
ufo22940268
2013-03-16 09:56:15 +08:00
@clowwindy 这个答案很靠谱,而且我也努力向这个方向努力。
jerommix
2013-03-16 10:03:15 +08:00
试过Android系统编译么?

1.单机篇
-cache
-j{n}

2.多机编译
alexrezit
2013-03-16 10:07:53 +08:00
不然你以为 unit test 是干嘛的咧~
ufo22940268
2013-03-16 10:51:48 +08:00
@jerommix 以前android-porting的时候用过ccache和-j,但是现在用ant编译了,待会儿去看看ant可不可以多线程编译。
fangzhzh
2013-03-16 10:55:58 +08:00
没人吐槽不给配电脑的事实吗?

要是lz没有电脑可带, 那么lz试用期练 坐禅神功吗?
ufo22940268
2013-03-16 11:03:49 +08:00
@fangzhzh 创业公司,没办法。如果没电脑的话会给一台过时的小黑,我还宁愿要小黑呢,可以装个自己喜欢的linux发行版。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63089

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX