occt: master 07bbde45

Author Committer Branch Timestamp Parent
abv apn master 2017-12-24 06:44:04 master 0edbf105
Affected Issues  0029399: Optimize reading of floating point values from text strings
Changeset 0029399: Optimize reading of floating point values from text strings

Function Strtod() is reimplemented using open source (MIT-style license) code by David M. Gay instead of strtod() provided by standard run-time library. This improves its performance by 3-10 times.

Functions Atof(), Strtod(), Printf(), Sprintf(), Fprintf() are declared as extern "C" to be usable from C programs.

Strtod() is used in Interface_FileReaderData::Fastof() and in RWStl_Reader to accelerate their work.

DRAW command QATestAtof and test perf fclasses strtod are added to check correctness and performance of Strtod().
Test perf draw restore is added to monitor performance of reading BREP files.

Minor off-topic corrections:
- method Standard_GUID::Assign (const Standard_UUID&) is implemented (was empty);
- Precision.hxx is included in BRepMesh_Vertex.hxx that uses it.
mod - dox/overview/overview.md Diff File
mod - src/BRepMesh/BRepMesh_Vertex.hxx Diff File
mod - src/Interface/Interface_FileReaderData.cxx Diff File
mod - src/QANCollection/QANCollection_Test.cxx Diff File
mod - src/RWStl/RWStl_Reader.cxx Diff File
mod - src/Standard/FILES Diff File
mod - src/Standard/Standard_CString.cxx Diff File
mod - src/Standard/Standard_CString.hxx Diff File
mod - src/Standard/Standard_GUID.cxx Diff File
rm - src/Standard/Standard_SStream.cxx Diff File
mod - src/Standard/Standard_Strtod.cxx Diff File
rm - src/Standard/Standard_UUID.cxx Diff File
mod - tests/de/step_1/A3 Diff File
mod - tests/de/step_3/E6 Diff File
add - tests/perf/draw/restore Diff File
add - tests/perf/fclasses/strtod Diff File