假设我给开发人员一个尖叫的快速机器。基于WPF的VS2010加载非常快。然后,开发人员创建一个WPF或WPF / e应用程序,该应用程序可以在其盒子上正常运行,但在实际环境中运行速度要慢得多。

这个问题分为两个部分...

1)如果我给开发人员提供了较慢的计算机,这是否意味着生成的代码可能更快或更高效?

2)我可以做些什么来为我的开发人员提供快速的IDE体验,同时提供“典型的”运行时体验?

更新:

为了记录,我正在准备对管理的公正响应。这不是我的主意,你们正在帮助我纠正客户的错误要求。感谢您给我更多的弹药,并提及在何时何地进行此操作。我为+1的有效用例进行了+1,例如:
-特定于服务器端的编程优化
-测试实验室
-可能会购买更好的服务器而不是顶级显卡

评论

也许让他们在虚拟PC上测试应用程序!

我无言以对,这甚至是一个问题。除了发展缓慢和士气低下之外,它还能带来什么?

在最新技术上进行开发。在最糟糕的机器上进行测试。

用牙刷而不是用拖把清洁地板是否可以使地板更清洁?当然可以。拖把操作员无法发现150厘米远处的污垢,牙刷也无法发现30厘米远处的污垢。不要在大地板上尝试。

自我提醒:永远不要为MakerofThings7工作

#1 楼

绝对

经理也应该在Pig-Latin举行所有会议,这也是事实。它可以提高他们的整体沟通能力,使他们在说简单句子时处于不利地位。他们必须更多地依靠面部表情和肢体语言来表达自己的观点,并且我们都知道至少有70%的交流。

首席财务官应仅使用算盘和粉笔。否则,他们最终会过分依赖“原始数据”,而对“胆量感觉”的依赖不足。

应要求副总裁及更高级别的主席在分散注意力的环境中(例如高尔夫球场)举行所有重要的商务会议而半醉。哦,快点...

评论


我喜欢讽刺。 +1

–特伦斯·庞塞
10-10-22在1:16

副总统及更高级别的主席经常做纯粹的社交活动:会议的重点是打高尔夫球。当您达到很高的水平时,您会陶醉并打高尔夫球,同时您选择要入侵的国家,并向谁签定厚实的国防合同。

–丹·罗森斯塔克(Dan Rosenstark)
10-10-23在22:34

我在这里看不到讽刺。 +1

– FinnNk
2010-10-30 15:29

#2 楼

答案是(我会大胆地说)总是


否。

尽可能多地开发预算,并测试您将部署到的设备的最小-最大规格范围。

有仿真器,虚拟机,带有测试仪的实际计算机,它们都可以测试性能以查看是否是一个因素。

评论


虽然我希望可以投票,但不能多次投票。我有一台正在使用的老化计算机,VS2010完成某些任务(例如打开项目)所花费的时间可能会很烦人。

– rjzii
2010-10-21 19:27

您能不能让它变得很大而大胆?

–汉尼拔·莱克特博士
2010-10-21 19:28



您所做的验收测试应涵盖性能要求。应该有性能要求。如果您不测试性能,那么您的测试人员将被称为客户(并向他们收取费用)。

–蒂姆·威利斯克罗夫特(Tim Williscroft)
2010-10-22在0:08

我完全同意。给开发人员较慢的机器实际上不会产生更好的代码。开发人员会对机器感到沮丧,并且始终会感到不安。它使代码变得更糟,并且当一切陷入困境时他们无法集中精力。看到,会有一个像Eclipse这样的IDE,比如2本书,2个Web浏览器,一个用于运行调试(基于Web的开发),一台服务器运行以及一个音乐播放器;)给他一台速度慢的机器,他会吻你再见。

–user4626
2010-10-22 9:18

答案不正确。正确答案是Nooooooooo!

– Pekka
2010-10-23 14:12

#3 楼

1)非常非常不可能。不,您的开发人员可能会在您的咖啡中添加一些令人讨厌的建议。开发人员花费的时间等待代码编译或IDE进行其正在执行的工作,或者不花时间在使代码变得更好的时间上。也会打乱他们的智力。专注于问题,他们将更加有效地解决该问题。

2)使用KVM切换器,给他们第二台PC,代表您希望他们实际支持的最低规格在那和他们的真实工作站之间。

评论


我喜欢在旧PC上使用KVM进行测试的想法。但是,根据项目的不同,开发人员每次提出新版本时,都会在慢速计算机上安装最新版本,这很麻烦。

– Al Crowley
2010-10-22 17:00

要考虑的另一件事是,至少在没有管理特权的第二台PC上为他们提供一个帐户。

– David Thornley
2010-11-19 22:54

#4 楼

我喜欢较长的编译时间。它使我有更多时间来处理简历。

评论


呵呵,时间越长越好!

– Newtopian
2011年4月18日在6:03

#5 楼

这是一个可怕的想法。您希望您的开发人员尽可能多地工作,这意味着给他们尽可能快的机器,这样他们就不必整日坐在那里等待编译。 (稍加OT,但这也有助于避免使用WebSense之类的工具阻止他们访问可能有用的网站。)如果您的用户仍在使用Stone-Age技术而受到限制,那么您将需要有一台测试机具有类似的规格,并确保尽早进行测试,并确保您在技术选择方面不会走错路。

评论


谁...等等如果编译很快,则将不再可能:xkcd.com/303

– gbjbaanb
2011年4月18日在12:25

#6 楼

开发应在可行的最佳环境中进行。
测试应在可行的最恶劣环境中进行。

#7 楼

如果给我一台速度较慢的机器,我会花一天时间优化开发过程,而不是优化交付的代码。
所以:不!

#8 楼

嵌入式系统程序员经常遇到这种情况!有一个两部分的解决方案:


您的需求需要指定Y硬件上的X性能。
在Y硬件上进行测试,当您没有获得X性能时,文件错误。

那么,开发人员使用哪种硬件都没有关系。

完成这些操作后,可以说,更快的设备可以为您的程序员节省半个小时一天或一年中的125个小时。假设他们每年花费10万美元的福利和管理费用(对于硅谷来说太低了),或者说每小时50美元。那125小时* $ 50 /小时为$ 6250。因此,如果每个程序员每年在Rockin的开发硬件上花费少于$ 6250,就可以节省金钱。

这就是您应该告诉管理层的信息。

Tim Williscroft


添加的10月24日:

我的前雇主有这个理论,它帮助他们节省了大约1亿美元。

他们是一家日本企业集团,曾经在日本,韩国和中国聘用程序员。 。那里的人们使用development脚的开发硬件,13小时的工作日,在办公桌前睡觉并且没有生命,这很酷。因此,他们想出了当他们收购一家著名的硅谷公司来制作基于Linux的手机操作系统时,那些想要现代装备的愚蠢的加利福尼亚人只是一头雾水,实际上并没有充分的理由(例如生产力)。

四年后,操作系统像废话一样运转,所有的时间表都被取消了,客户被激怒了,并终止了合约。最终,OS项目被取消,并且该集团在全球范围内的大批员工在去年被解雇。坦率地说,我不想成为必须向股东解释所有金钱和精力去向何处的高管之一。

造成这种惨败的不仅是缓慢的开发机器。还有许多其他战略和战术上的错误-但是它们是同一类东西,在战es中工作的人可以看到火车残骸来了,并想知道为什么决策者不能这样做。

减速装置无疑是一个因素。毕竟,如果您愿意按时交付,故意拖延工作真的很聪明吗?

评论


在某些圈子中,即使是+1分钟,也可能是+1分钟,这是一个非常适度的估计。

–贾斯汀
2011年10月1日在18:12

#9 楼

在编程中,有句老话:“过早的优化是万恶之源”。我认为您已经成功地创建了所有邪恶的另一个“根”(或至少是第一个分支)。从现在开始,我们可以说“过早的开发人员去优化是万恶之源。”

简而言之,答案是这只会减慢您的开发时间并使进一步的维护更加困难。编译时间将花费更长的时间,在磁盘上搜索代码的速度将变慢,在线查找答案的时间将更长,并且最重要的是,开发人员将开始过早地优化其代码,甚至可以测试所需的功能。

最后一点是最关键的问题,许多其他答案都没有提到。您可能会获得第一个版本,但是当您以后希望更新代码时,您会发现开发人员过早的优化使代码的重点脱离了良好的设计,并将其推向了“必须在最少的工作来保持我的工作”的代码风格。添加其他功能将变得更加困难,因为此时可能不需要进行优化,并将您的代码锁定在其他半优化hack之上的半优化hack路径中。

假设您当前版本的最低系统要求是速度稍慢的单处理器计算机。您将开发人员放在此框上,他们提出了一个复杂的单线程解决方案,该解决方案依赖于很多黑客,因为他们想快速开发产品。现在5年后,您有了该产品的新版本,该版本最低要求使用双处理器计算机。您希望能够干净地分离出可以并行运行的程序部分,但是您5年前做出的决定迫使开发人员制作骇客的软件,现在您无法使用新的最低要求的全部功能。 。

您应该做的是在开发周期结束时添加一个阶段,在此阶段对下限框进行验收测试。当然,由于开发人员的计算机速度更快,某些代码可能会太慢,但是您可以隔离该部分并在那里进行优化。您的其余代码保持整洁和可维护。

我看到您的问题是:“我可以通过为开发人员提供差的开发人员机器,让他们仍然获得良好的代码来强迫我的开发人员进行早期优化吗?”答案是否定的。

评论


“我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源”。设计某些东西时,最好花2分钟时间考虑3%。

– Keyo
2010-12-22在7:01

#10 楼

有趣的是,所有这些答案都很有趣。

但是我认为大多数在这里回答的人都没有抓住重点。在我阅读本文时,问题不仅仅(至少是)真正为开发人员提供了一个P1以使代码更快。

关键是,尽管功能强大的计算机,但当今许多软件的速度与上个世纪我们使用的安全软件一样慢,甚至更慢。从这里的答案来看,大多数开发人员没有得到这个提示。这在Web应用程序中非常明显。这个站点是一个很好的例外,但是许多站点的首页都在1 mb之内。我等待下载什么呢?我不知道。我认为这似乎是开发人员的无知,而不是尊重用户需要花费的时间,或者如果您按每mb的价格付费,则更糟。问题是所有这些网页甚至都没有包含高分辨率图片。通常,这只是某些开发环境提供的一些废话代码。好吧,我想当然不是废话,但作为用户我却没有收获。

一般来说,这不仅与优化代码有关,而且与选择不包括代码一样多

几周前,我从1995年开始使用笔记本电脑。Windows3.x可以立即启动并运行。在完全释放Enter键之前(至少至少),我应该从数据库中获取一些数据。

我知道我们今天从我们的软件中获得了很多东西,但是我们也有很多次使用计算机快点。开发行业为什么不决定从1995年开始保持软件的速度,并因为人们想要新的功能而使人们购买新的硬件。如今,它更像是日常程序和网站,迫使人们购买新硬件来完成与之前完全相同的操作。但是当然可以用更奇特的方式。

我不得不说,我认为Linux开发似乎可以更好地解决这一问题。多年来,Linux发行版一直遥遥领先于Windows,即使在幻想中也有很多动画窗口之类的东西。事实是,尽管如此,他们仍然可以在今天甚至昨天的计算机上工作。不仅在尖端硬件上。

现在,我想许多开发人员的肾上腺素水平都不健康。是的,我找到了一种方法,可以使所有人在前面的等待中感到沮丧:
办公室
sql server(启动管理控制台)
arcgis(启动和使用)
acrobat reader(正在启动)
agresso(至少作为Web应用程序使用)
windows(正在凝视和使用,我还没有尝试过7)
.net网页(下载)

等等

我感觉很好:-)

干杯
尼克拉斯

评论


这个。这个。这个。如此多。这一直是我对软件的最大挫败感。人们花更多的时间来尝试刷新界面,而不是对可用性进行实际评估。一个例子就是Android vs. Blackberry。 Android看起来更好,并且可以执行更多操作,但是至少在我看来,Blackberry比Android使用起来更愉快(且速度更快)。

–凯文·科波克(Kevin Coppock)
2010年11月19日在20:18

我完全同意这样的观点,即软件在功能几乎相同的情况下与20年前一样快。但是让开发人员使用20年历史的硬件将无济于事。如果创建软件的公司没有在可用性方面进行投资,或者在较慢的硬件上进行性能测试将使事情变得更糟。这完全是完全不同的辩论,对于这个辩论,程序员的脑袋并不是唯一应有的脑袋后脑勺。

– Newtopian
2011年4月18日在6:10

#11 楼


1)如果我为开发人员提供了速度较慢的计算机,这是否意味着结果代码可能更快或更有效?


在过去的60年中,我们一直在开发软件,但仍然遇到类似的问题吗?似乎更像是在偷工减料。没有冒犯,但请问,您认为这个问题是否合乎逻辑?用以下术语(如果可以的话)考虑一下:您想要制造一种4x4的车辆,该车辆可以在恶劣的条件,雨水,泥泞等任何条件下运行。您是否打算将您的工程师和装配线放在这些元素的下面,以确保所产生的车辆可以在它们上面操作?

我的意思是,耶稣基督!有发展,有测试。测试是在不同的更苛刻的环境中完成的,或者开发人员知道如何以适合压力测试的方式在自己的开发环境中组装测试台。如果他做不到,请用一个更好的开发人员代替他。


2)我该怎么做才能在给我开发人员快速IDE体验的同时给

“典型的”运行时体验?


您应该向开发人员询问。而且,如果他们不能给您客观,有效的答案,则需要用实际的开发人员来代替它们。

但是要解决这个问题,请给您的开发人员(假设您有好的开发人员),好的工具以及优质的硬件,尽您所能。然后设置您的软件必须在其中运行的最低通用基准环境。那是应该进行测试的地方。最好有一个不同于开发环境的测试环境(最好是允许您进行压力测试的环境)。

如果您的开发人员表现出色,那么他们应该对此进行交流给你(假设你问过他们)。

评论


在过去的六十年中,我们一直在开发软件,但是仍然遇到类似的问题吗? -我支持您的回答,但我鼓励您从不同的角度研究原始问题。实际上,有许多管理人员不了解快速,强大的计算机为其开发人员带来的好处。因此,考虑到这一点,最初的问题可能是试图使这种荒谬观念的管理者不屑一顾,因为慢速机器可以以某种方式推动开发人员生成更快,更高效的代码。

– Jim G.
2010-10-23 14:19

“ 2)我该如何给开发人员以快速的IDE体验,同时又提供“典型的”运行时体验?您应该向开发人员提出这一要求。”我相信这是程序员的SE网站,而不是经理的SE网站。他在问开发者。

–stimpy77
2010-10-23 23:10



“您想制造一种可以在恶劣条件下,雨水,泥泞等任何条件下运行的4x4车辆。您是否打算将工程师和装配线置于要素之下,以确保最终的车辆可以在其上运行?” <<<爱的比喻

–stimpy77
10-10-23在23:13

#12 楼

这导致了很多bitchin的开发人员。这些东西已经足够硬了,不要让体验变得更糟。

我鼓励您在测试或QA环境中拥有与用户相似的硬件,以消除任何性能问题。那是个好主意。

评论


开发商that子?没门...

–JéQueue
2010-10-21 23:34

#13 楼

我会打破常规,并且只有在他们正在编写服务器软件的情况下才是。笑所有您想要的,但是我见过的最高效的团队是一群带有Wyse终端的Perl团队。这是1990年代后期,当时是一家大学分店,他们正在编写空间网格化软件(基本上只是计算)。但是,他们正在与一些功能相对强大的最新型号RS / 6000进行交谈。

只是为了增加对该事件的兴趣,那里有一个盲目的程序员。我印象深刻。



评论


盲程序员?那有可能吗?

–WernerCD
10-10-22在0:46

@WernerCD,到目前为止,我仍在尝试并设想保持头脑中的代码行所必须具备的思维能力。

–JéQueue
2010-10-22 1:53

是的,我们大多数人都在编写服务器软件... +1

–半比特
10-10-22在3:14

@ MakerOfThings7,每天在我的本地计算机上为我提供更多服务器硬件,在应有的位置花费$(但是给我一个大显示器:))我十岁的Dell Latitude CPx可以作为大型系统的显示器而没有问题DC。

–JéQueue
2010-10-22 4:25



也许盲目的程序员可以使用盲文显示器?

– Antsan
10-10-22在11:55

#14 楼

这不是一个坏主意-但您希望开发人员拥有一个快速的编程环境。

您可以通过为程序员提供两台机器(一个快速的开发箱和一个较慢的商品箱(可能是虚拟的)进行测试。

VS构建过程的一些调整可以使通过远程调试将其部署到测试箱中成为常态。

还有其他考虑强制的方法。您的编码人员可以开发更有效的代码-例如,您可以在单元测试中包括性能和内存使用目标。设置内存使用预算也是一个出色的目标。还要为html代码设置页面权重预算。

#15 楼

问题不是开发人员在快速的机器上构建效率低下的代码,而是因为您尚未定义必须根据其进行测量的性能指标。

应将其定义为产品的一部分要求,可以根据所需的客户体验在所有计算机上衡量的特定目标。有许多网站(检查SpecInt)可让您将计算机与其他类型的计算机关联。

这有很多方面的好处。它使您可以更轻松地定义最低支持的硬件,从而可以减少客户投诉的数量-我们都知道大多数软件都可以在大多数计算机上运行,​​这仅是性能问题-如果我们设置规格以使最低要求的人员处于具有合理可接受的性能,您可以限制客户的投诉-然后,当客户打来电话时,您可以使用基准来确定是否确实存在问题,或者客户是否对该产品的工作方式不满意。 br />

#16 楼

我深信使用较慢的计算机进行开发会导致更快的代码,但这是有代价的。理由是我亲身经历过:通勤时间长,我买了一个上网本在火车上工作,上网本比我过去5年中购买的任何计算机都要慢。因为一切都太慢了,所以我很快就会看到这台上网本上出现了令人难以忍受的慢,并且我知道慢点要快得多(不需要一直进行基准测试)。从事上网本的工作确实改变了我的开发方式。

话虽如此,我并不主张这样做,尤其是在专业环境中。首先,它令人沮丧。几乎每个人都说这个想法甚至没有道理的事实表明,程序员对这个想法反应很差。

其次,让所有事情变慢意味着您可能想在快速的机器上做一些事情(例如1分钟),由于懒惰等原因,在慢速计算机上不再真正可行。这是一个激励问题。

最后:生成的代码可能会更快,但几乎可以肯定需要更长的时间来生产。

评论


+1但是我必须在某些方面不同意。我还买了一台上网本,但我注意到速度不是真正的问题,而是小屏幕尺寸。 1 GHz的速度足以满足正在进行中的小型项目,但1024x600太小了。

–乔D
2010-10-23 8:33



#17 楼

点1,不! Studio可以在合适的机器上运行,并且每个版本的要求都变得越来越强大。如果您打开智能感知并使用单核非HT盒,则实际上可以锁定Studio的某些版本。

要点2,测试项目中有一些功能可以让您节流一些资源。它们不是完美的,但是它们在那里。 VPC或低规格VM映像也受到了很好的约束。我让用户偶尔坐在坏的机器上进行测试,以便他们可以看到他们所要求的功能的含义。

#18 楼

不,事实上,这将导致更多的错误,因为它们不会进行过多的测试,并且不会像分析器那样使用过多的工具。给他们提供最好的价格合理的机器(如果您是游戏开发或图形商店,则包括图形加速硬件),并让它们在VM中进行测试。 VM规格可以根据需要扩大或缩小。

评论


+1:实际上,这将导致更多的错误,因为它们不会进行过多的测试,并且不会像分析器那样使用过多的工具。 -好点我们不要忘记与缓慢的开发机器相关的机会成本。

– Jim G.
2010-10-23 14:00

#19 楼

我认为这是一个有趣的问题,我不会这么快就拒绝。我的看法是:这取决于我们在谈论什么样的开发团队。示例:如果您领导的团队正在参加一年一度的ICFP编程竞赛,那么在HPC集群上经过少量的开发时间后,也许会取得良好的成绩,并不一定意味着您找到的解决方案是好的。如果您正在编写某种科学算法或数值算法,也可以这样说:在具有64 MB内存的旧AMD Duron 600 MHz上,您必须谨慎对待完成工作的方式,这甚至可能影响某些设计选择。

另一方面,聪明的程序员/科学家/无论如何都应该小心。但是当我完全没有计算机并且不得不在纸上做笔记时,我发现自己写下了一些最好的代码。当严格需要IDE时,这可能不适用于涉及大型框架的大型项目。

可以肯定的是:快速的机器和良好的即时结果使(坏的)程序员变坏了,这可能是原因之一对于我们在计算机上发现的一些废话。

评论


告诉你什么-买一台非常好的计算机,我会和你交换... :)

–旺角桑科
2010-10-22 14:46

#20 楼

我使用的软件包需要大约一个小时才能在我的8核8G机器上构建(完全干净的构建)。我还有一台测试的相对低端的笔记本电脑。低端笔记本电脑在一个工作日内无法管理两个完整版本。

通过在笔记本电脑上进行一些刻意的测试后,我在快速计算机上的工作效率提高了吗?笔记本电脑?

请记住,这些不是由数字组成的。

这是一个操纵的演示,因为我通常不需要每天都进行干净的构建(我可以在单个模块上进行很多测试),但即使是部分构建,其编译/链接时间也显示出大约一个数量级的差异。

所以真正的问题是在我较慢的机器上,一个典型的构建足够我去喝杯咖啡,而在更快的机器上我只能喝点咖啡。

从完成工作的角度来看,我更喜欢快速开发机。我可以更可靠地按时完成任务。另一方面,我想像是如果管理层让我在速度较慢的机器上进行开发,那么我将完成更多的网络浏览,或者至少是读书。

评论


一般来说,要花这么长时间构建什么内容?它是受CPU限制还是受磁盘限制(瓶颈是什么),如果像TFS这样的东西为您完成构建,这会成为问题吗?

–半比特
10-10-22在4:42



喝咖啡要花半个工作日吗?您必须为政府工作。

– Finnw
10-10-22在14:07

I / O绑定在慢速机器上。在快速计算机上,有时I / O仍然受约束,但更多地是CPU瓶颈。当前的构建系统不喜欢一次处理多个库,因此,在给定的子项目中要编译的文件少于8个时,会在地板上留下一些CPU和I / O。至于咖啡,我可以喝得更快一些,但是我试图限制摄入量,因此,如果我喝得更快,我将需要另一次空闲时间活动。

–条纹
2012年11月29日20:11

#21 楼

有趣的是,我在一家初创公司工作,但最终还是这样做了。我认为它实际上工作得很好,但是仅由于我们所处的特定情况。在mod_perl商店中,类自动重装实际上可以正常工作。所有开发人员都将vim用作他们选择的IDE(或使用了一些远程编辑软件)。最终结果是,等待代码编译/重新加载等的时间很少(如果有的话)。

基本上,我喜欢这个想法,因为IFF对所有开发周期的影响都可以忽略不计开发人员,它只会影响代码的运行时操作。如果您的代码无论如何都经过编译,预处理等,那么您将为开发人员正在工作的“修复错误;测试;下一个”循环添加时间。

从人际关系的角度来说,人们永远不会被迫可以使用慢速服务器,但是如果使用慢速服务器,则无需进行任何维护或设置。而且,这种设置从一开始就存在,我无法想象将其出售给已建立的开发团队。

重读您的原始问题后,我发现一件事永远令我恐惧是不同于生产环境的开发环境。为什么不使用VM来执行代码,而代码又可以在不影响开发工作站的情况下降低运行时间呢?最近,我一直在使用/喜欢VirtualBox。

#22 楼

我也将在这里逆潮流。

轶事:我曾在一家荷兰软件开发公司工作,将286台计算机升级到486-es(是的,我那年老)。在几周之内,我们所有内部库的性能下降了50%,错误增加了。。。一点研究表明,人们在调试过程中不再思考代码本身,而是求助于“快速”的连续代码->编译->测试->修复(代码)等循环。

相关:当我在美国为同一家公司成立子公司时,我最终雇用了俄罗斯程序员,因为他们习惯于功能/功能更少,编码效率更高的PC。

我意识到现在是不同的时代,资源比今天更加稀缺,但是,随着硬件方面取得的所有进步,最终的结果是,我从未间断地感到惊奇。似乎向前迈出的每一步都被要求更高的最低规格的草率编程否定了...

......我觉得程序员应该被迫在不超过平均水平的机器上测试他们的应用程序Joe的计算能力和硬件规格。

评论


这里的主题演讲是“测试”,实时系统不必加载庞大的IDE,在本地运行后端,而不必在专用硬件上运行,运行邮件,办公等。您需要一台高端计算机来启动开发人员当今大多数语言中的环境。

– Bill Leeper
2010-10-22 17:00

#23 楼

硬件的成本低于开发时间。

大多数瓶颈都在数据库中,而不是在客户端PC中,但这并不能成为在比开发人员更慢的计算机上进行测试的借口。使用测试工具来测试优化。

#24 楼

绝对不。为您的程序员提供可以买到的最好的笔记本电脑,他们选择的键盘,多个大屏幕,私人办公室,没有电话,免费的软饮料,他们想要的所有书籍(都是相关的),年度关键技术会议和您会得到很好的结果。然后在上下边界硬件/软件/浏览器/带宽组合上进行测试。

#25 楼

这是一个有趣的想法(给开发人员慢的机器可能会导致他们进行更多优化)。

但是,该解决方案的框架更好-将响应时间放在程序要求中,并具有一种低端机器,可以进行测试。

此外,如果您有一个真正的奇妙的编译器/语言,它可能能够设计出不同的方法来生成代码并选择最佳方法。只有更快的计算机才能帮上忙。

#26 楼

其他人则回答说,通常您希望开发人员拥有快速的机器。我同意。不要跳过RAM-您需要尽可能多的内存-某些构建过程会占用大量磁盘空间。

您可能要考虑摆脱的问题是构建驱动器上的防病毒功能!这只会减慢速度,并且可能是极强的减速因素。

如果可能,您可能希望让开发在Linux上进行开发。那里的工具可以更好地完成各种额外任务(只需grep即可处理文件中的内容,等等)。这也摆脱了反病毒。

评论


不要忘记快速硬盘驱动器的好处:codinghorror.com/blog/2009/10/…

– Jim G.
10-10-23在13:58

#27 楼

我工作的Macbook Pro已有几年历史了。在Linux和Windows(用于测试IE怪癖)虚拟机以及几个Web浏览器和打开的终端之间,OSX纺车显示了很多。猜猜我在旋转时会做什么,我坐下等待。在这种情况下,速度较慢的机器会降低生产率。

#28 楼

对于许多应用程序而言,问题在于使开发人员在“完成”之前对真实数据集进行测试。对于交互式应用程序,将需要基准测试机/ VM。

#29 楼

我在运行缓慢的Windows95机器上工作,它使我可以高效地用Forth和JavaScript编写MindForth人工智能。

#30 楼

问程序员是否应该获得好的硬件,就像问一个胖男人是否喜欢食物。我知道这是主观交流,但是...这个问题值得我们问吗? :P

那我当然同意大多数人的意见:不。