Avoid unnecessary ldexp() and pow() calls
Parse times for some large .obj files (without asan):
File A File B File C
Before 1239ms 294ms 271ms
After 1037ms 203ms 190ms
This commit is contained in:
@@ -472,8 +472,8 @@ static bool tryParseDouble(const char *s, const char *s_end, double *result) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
assemble:
|
assemble:
|
||||||
*result =
|
*result = (sign == '+' ? 1 : -1) *
|
||||||
(sign == '+' ? 1 : -1) * ldexp(mantissa * pow(5.0, exponent), exponent);
|
(exponent ? ldexp(mantissa * pow(5.0, exponent), exponent) : mantissa);
|
||||||
return true;
|
return true;
|
||||||
fail:
|
fail:
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user