如何向老板解释代码/资源优化是否重要?

Str*_*rae 4 optimization performance

啊,每次都是如此令人沮丧..

我们的托管公司有一个专用的服务器,每当我必须写下一个新的应用程序(或添加到一个预先存在的应用程序)时,我会"失去"一段时间来优化许多行为的代码(减少db查询,优化数据库结构,减少带宽等.)取决于应用程序应该做什么.

显然,关键不在于我编写错误的代码然后重建它,只是在项目完成之后,我总是找到可以做得更好的事情.

每次,如果我的老板抓住我这样做,他会说'你在浪费你的时间!如果应用程序需要更多资源,我们会购买更多RAM,更多CPU或更多带宽!'.

什么是最好(也是最简单)的方式来解释他,优化仍然很重要,而且不是那么容易或自动升级(生产!)服务器的硬件?

编辑:我不是只谈论数据库优化,而是谈论应用程序的每个方面

Tho*_*n79 14

你真的在浪费时间.您在大学或大学学到的大多数优化在商业世界中都是无关紧要的.我建议您专注于那些可以量化的优化,为什么您的优化值得您公司的资金(您花费的时间是他们花的钱).

  • 现在磁盘空间几乎是免费的.程序员的时间不是. (2认同)
  • @Hassan我知道你在这里理解我的帖子有困难,但你在我的评论中注意到了"差不多"这个词?为了您的信息,我自1985年以来一直在处理关系数据库. (2认同)
  • @DaNieL:如果你做了大量的改进,节省了时间和金钱,但没有得到奖励,你的管理层很糟糕(这是不正常的.管理层的目的与一些程序员的印象相反)或者你没有正确地传达你的改进.你必须谈论业务,而不是技术.非技术经理会根据您的论点过滤掉技术谈话.如果没有留下任何东西,你就失去了你的情况. (2认同)
  • 每个人都说同样的话,如果你没有赚钱或者节省公司的钱,那你就是在浪费时间.如果磁盘未接近满,则节省磁盘空间不会节省公司资金.如果你的速度提高了40%,那么如果时间已经是几毫秒的话就没有意义.如果您没有达到带宽限制并且额外减少带宽使用会浪费时间.令人作呕. (2认同)

Gre*_*ech 8

在尝试优化代码时,您需要遵循优化周期.没有捷径.

  1. 定义具体,详细,可衡量的性能要求.
  2. 衡量应用程序的性能.
  3. 如果它符合要求,请停止,因为继续是浪费时间/金钱.
  4. 确定瓶颈在哪里(哪台机器?CPU,内存,磁盘等?).
  5. 修复瓶颈(硬件或软件修复,以更快/更便宜的方式).
  6. 转到2.

从你的帖子看起来听起来不像你已经完成了1或2,所以你已经超过了3和4,因为你不知道做到这一点,并且现在盲目地磕磕绊绊地试图优化你想到的任何东西需要优化.

所以从你所说的话,我必须同意你的老板.你是在浪费时间.或者至少你没有按照足够的程序来证明其他方面,这基本上是相同的.


Pek*_*ica 6

在下次进行服务器移动/升级时保留详细的注释和时间表,以及从中产生的每分钟工作的协议(包括几周之后的事情).然后,您将有确凿的证据表明升级成本很高,优化有助于延迟投资.

在目前的情况下,您可以使用基准测试和统计数据执行某些操作:"如果没有我的优化,服务器将拥有90%的容量和X用户.通过我的优化,我们可以满足Y用户更多在我们得到一台新机器之前."

另一方面,优化和过度优化之间的界限很薄.虽然编写不浪费资源的代码是良好的工艺并且应该是一项人权,但RAM和磁盘空间现在非常便宜.优化还会使代码更复杂,并且更难以维护其他代码.当您控制自己的硬件时,代码优化可能并不总是最重要的目标.