微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有什么理由不删除对Pentium FDIV错误的检查吗?

如何解决有什么理由不删除对Pentium FDIV错误的检查吗?

从“项目属性” /“编译” /“高级优化”中查看VB6 IDE中出现的最后一个复选框:

enter image description here

这与大约25年前的故障硬件(1994?)有关,但是我很难想象现在的任何cpu仍然会出现此问题。

但是,我不确定此检查是否有任何令人希望的副作用,可能意味着它值得保留?还是去除的不良影响?

我看到Delphi已经解决了这个问题,但是我找不到VB6的任何东西。

从这些Q中我得到的印象是,它不再是Delphi真正关心的问题。


这是什么摘要

删除安全的奔腾FDIV检查

这是另一个浮点数 优化。英特尔早期的奔腾芯片中的一些错误 影响了某些浮点除法计算。认, VB的数学程序可以防止Pentium错误,但是 VB代码中的数学运算比让处理器芯片执行运算要慢 为了你。如果您确信自己的程序不会在 奔腾FDIV错误的计算机上,您可能需要激活它 优化。

ref1


一些用于检查硬件是否损坏的代码,它说明了问题本身:

' return True if the cpu suffers from the FDIV bug

Function IsBuggedPentium() As Boolean
    IsBuggedPentium = ((1 / 3221224323) * 3221224323) <> 1 
End Function

请注意,此代码在运行的VB应用程序中始终返回False 作为p代码或使用标准编译选项进行编译。至 实际检测到该错误,您必须在 使用“删除安全奔腾(tm)FDIV检查”编译的应用程序, 在“项目属性-高级优化”对话框中。

ref2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。