有什么理由不删除对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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...