1

在 Code Code Complete 的第 42 页上,有一个您可能想要在需求阶段考虑的需求项目清单。
在项目中(靠近列表底部)说Are minimum machine memory and free disk space specified
这曾经是您所做的任何项目中的要求吗?甚至在开始构建东西之前您是如何定义这样的要求的?

我知道这只是一个建议,坦率地说,我认为我永远不会将其包含在我的要求中,但这让我思考(这是真正的问题)..

一个人将如何估计系统要求...

4

6 回答 6

2

This is in the requirements phase so isn't it more about identifing the minimum specification of machine that the application has to run on than estimating the resources your application will use?

I've developed systems for corporate clients where they have standard builds and are able to identify the minimum spec machine that will be used. Often you won't know the minimum specifications of the machines that you will be installing on but you will know the operating systems that you have to support, and may be able to infer them from that.

于 2009-12-24T11:26:38.040 回答
1

I have specified this before but its always been a ballpark figure using the 'Standard' specification of the day. For example at the moment I would simply say that my App was designed to be deployed to servers with at least 4GB of RAM. Because that's what we develop and test on.

For client apps you might need to get a bit more detailed, but its generally best to decide on the class of machine you are targeting and then make sure that your app fits within those constraints. Only when your application has particularly high requirements in one area (eg if it stores a lot of images, or needs a powerful graphics processor) do you need to go into more detail.

于 2009-12-24T11:25:34.250 回答
1

These sure are considerations in the early stages of some projects I've worked on. A lot of scientific codes boil down to working with large matrices. It's often possible to identify early on that code X will need to manipulate a dense matrix with, say, 100,000 rows and columns of complex doubles. Do the sums. Sometimes the answer is (a) pack a PC with RAM, sometimes it is (b) we'll have to parallelise this for memory even if it's not necessary for performance.

Sometimes our users would like to checkpoint their programs every N iterations. Checkpointing with very large datasets can use a lot of disk space. Get out your calculator again.

I know it's all very niche, but it matters when it matters.

于 2009-12-24T11:31:18.237 回答
0

我已经看到嵌入式系统中的软件对机器内存的要求最低——通常源于对定制硬件的限制。如果盒子只能是 X x Y x Z 尺寸,并且必须满足其他物理要求,则软件可用内存的限制可能是绝对的,并且应该预先设置最低限度。

在网络应用程序世界中,这对我来说从来都不是什么大事 - 毕竟,在我完成代码之前可能会发布目标硬件的新模型,并且内存会更便宜......所以为什么要浪费时间尝试当您可以添加时,适合小尺寸?

我见过大型数据项目提到可用空间——如果你的数据库没有足够的空间来移动数据,你真的可以搞砸一个系统。我已经看到要求指定花里胡哨和紧急措施以确保始终有足够的空间来保持数据库运行。

于 2009-12-24T15:09:46.857 回答
0

You can check how much memory is used by your software during testing, and then estimate how much more you may need if you process bigger chunks, i.e. if you process 1000 items in your biggest test suite and you need 4 MB, then you will probably need 4 GB to process 1 million items.

于 2009-12-24T11:28:49.467 回答
0

机器内存是一个棘手的问题,虚拟内存非常普遍,但磁盘空间并不那么硬,具体取决于系统。我们有一个正在工作的系统,该系统旨在处理许多外部设备(接受输入、转换数据和交付给客户),并且鉴于我们知道当前和预计的数据量,该系统相当容易调整规模。设备正在生成。

于 2009-12-24T11:22:03.973 回答