转到Delphi编译器指令(列表)索引
类型
|
交换机
|
语法
|
{$EXCESSPRECISION开},{$EXEXPRECISON关}
|
违约
|
{$EXCESSPRECISION开}
|
范围
|
本地
|
评论
这个$EXCESS精度指令控制编译器处理单精度中间结果的方式(32位)浮点表达式。$EXCESS精度特定于Delphi编译器的x64目标CPU。
默认情况下,所有只涉及单精度浮点值的x64算术运算和表达式都通过将中间结果存储为双精度来保持高精度(64位)浮点值。因此,这些操作比双精度浮点操作慢(编译后的代码在每个操作中将Single值转换为double)。
如果执行速度是主要问题,请用{$EXCESSPRECISION关闭}禁止使用中间双精度值的指令;否则为默认指令({$EXCESSPRECISION开})建议提高结果值的精度。
对于x86目标CPU$EXCESS精度指令无效。为此平台生成的代码使用FPU(浮点单元),它将任何类型操作的中间结果存储为扩展精度(80位)浮点值。
另请参见