分享

Lesson 28. Estimating the cost of 64

2022-05-22  兰亭文艺

第 28 课。估算 C/C++ 应用程序的 64 位迁移成本

2013 年 8 月 19 日

开始计划将您的项目移植到 64 位系统,您必须能够估计工作量和材料成本。让我们考虑构成创建 64 位软件产品总成本的那些组件。

如果您觉得很难估算迁移到 64 位系统的成本,您可以联系我们公司 OOO 'Program Verification Systems' 的专家寻求建议。我们公司还可以为您的项目适应 64 位系统的部分或全部工作。

购买 64 位硬件和软件

如今,您几乎找不到拥有一台配备 32 位微处理器的计算机的开发人员。但是您仍然应该记住,您必须拥有一台 64 位计算机,它可以让您管理所有必须解决的任务。似乎最真实的情况是 64 位硬件架构仍然可以在 32 位操作系统下工作。您应该考虑购买和安装 64 位版本操作系统的费用。还要考虑与更改操作系统版本相关的额外费用,例如重新安装各种软件。

购买编译器来构建 64 位应用程序

将购买和掌握能够创建 64 位代码的新编译器的价格加到总价格中。

购买 64 位版本的库

可能需要购买 64 位版本的库和其他组件。事先了解那些在您的项目中使用其组件的公司的定价政策。有时 32 位和 64 位版本的组件单独出售。如果您使用还没有 64 位配置的开源库,请准备好花大量时间手动修改它们。

员工培训和购买额外工具

考虑您的员工学习有关 64 位系统开发的所有必要信息所需的时间。您可能还需要购买一些额外的工具,例如PVS-Studio

代码修改

正如您在前面的课程中已经知道的那样,编译 64 位配置仅仅是开始。在大多数情况下,您需要找出并纠正在 64 位代码中出现的许多缺陷。这可能是最费力但最难估计的部分工作。但是,我们可以根据 PVS-Studio 静态分析器为您提供以下建议。

好吧,您有好几(几十、几百)兆字节的源代码可供迁移。目前还没有代码的 64 位配置。因此,也没有要在 64 位模式下编译的文件。

PVS-Studio 为您提供了检测 64 位代码问题的能力,即使在 32 位项目中也是如此。正是这种能力让您在创建项目的 64 位配置之前估计迁移的难度。

我希望读者注意代码的检查是如何在 32 位模式下执行的。您应该了解,此检查不能被认为是完整的,即使您纠正了检测到的所有错误,您也不能绝对确定代码将在 64 位模式下工作。任何严肃的应用程序的代码都有这样的片段:

#ifdef WIN64 ... #endif

当然,在 32 位模式下测试代码时会跳过这个片段。或者,更准确地说,虽然还没有 64 位配置,但应用程序代码可能没有这样的片段。

这是另一件重要的事情:数据类型自然会根据项目配置而有所不同。这就是为什么在 32 位和 64 位模式下的检查几乎总是会导致不同的结果。

但是它们会有多大不同呢?根据我们公司进行的实验结果,我们有以下几点:PVS-Studio分析仪在32位和64位模式下测试项目时产生的诊断警告列表符合95-97%。这意味着不超过 5% 的诊断消息不同。

这些结果是通过以下方式获得的。我们取了真实项目的代码,在 32 位模式下检查并保存了诊断警告列表。然后我们在 64 位模式下检查了相同项目的代码,还保存了诊断警告列表。之后,我们比较了这些列表并估计了有多少百分比的诊断消息是一致的。由于整个过程是在自动模式下执行的,因此分析的项目数量已经足够(超过 20 个项目,每个项目的代码大小为几 Mbytes)。所以我们可以得出结论,这些数字(5% 的差异)是可信的。

当然,您不应该急于修复在您的项目的 32 位配置中检测到的所有潜在错误 - 最好等待 64 位配置。但是您可以轻松估计检查代码分析器生成的所有警告需要多长时间。

我们建议您执行以下操作:

  • 使用 PVS-Studio 分析项目的 32 位配置。
  • 一位非常了解 64 位代码问题的程序员会查看分析器在一天中生成的警告,并确定这个或那个错误是否与项目相关。如果是,程序员会更正它。
  • 分析器生成的消息总数除以程序员在一天内查看和处理的消息数。
  • 您的代码可移动应用程序需要 64 位平台的人工天数。

必须先编写程序显示您的错误,然后才能确定正确的检测程序并预计它被修改为不同的时间。估计,您必须进行所有必要的更正。

多种代码估计移植过程的算法——在分析消息的同时修改技能会在开发之内有处理的消息,因此我们建议您在选择处理者时,及时处理一个程序,在一天之内非常小心和谨慎。

下面是有关如何选择此类人员的一些建议:

  • 必须是资深经验的人必须在贵公司工作三年,并且必须在贵公司工作,此人必须知道您的移植项目。
  • 必须编写问题代码的64位代码问题——,了解这些课程或文章在64位平台上移植C++代码的20个》。
  • 确定开发人员了解使用代码分析器的原理。这不是明确要求的分析技术,但了解代码可以充分发挥迁移的作用。
  • 该人必须能够测试通常情况下的工作条件。在任何地方工作条件下记录他来或给同事留下印象。一个人不能这样工作,而且条款会被估计。

遵循这些说法,您可以充分估计 64 位软件迁移的成本和期限。

调整测试系统

如果您的系统程序需要大量处理数据,则需要在超过 4 个数据量的测试中进行测试。并行化的任务。在这种情况下可能需要购买额外的工具。

保护软件单元

如果您使用软件破解或保护系统的软件复制和保护,您应该在总成本中加上为您的 64 位代码,如果您当前使用的系统不支持 64 位代码,您可能掌握的保护系统。可能会有一些其他的问题,所以请确保你有一些麻烦。

分配套件适配

您将自己创建一个新的分发套件 - th在上一课中考虑过的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多