MantisBT
Mantis Bug Tracker Workflow

View Revisions: Issue #30964 All Revisions ] Back to Issue ]
Summary 0030964: Data Exchange - use Standard_ReadLineBuffer within OBJ reader
Revision 2019-10-06 09:28 by abv
Description Fast prototype shows that using Standard_ReadLineBuffer may give 3x time performance boost on reading of large OBJ files (~ 1 GiB):
  struct RWObj_ReaderFile : public Standard_ReadLineBuffer
  {
...
    bool ReadLine()
    {
      size_t aLineLen = 0;
      int64_t aReadBytes = 0;
      Line = Standard_ReadLineBuffer::ReadLine (File, aLineLen, aReadBytes);
      Position += aReadBytes;
      return Line != NULL;


To complete the patch, Standard_ReadLineBuffer or its sub-class should be extended by handling of special multi-line case with \ at the end of the line.

Revision 2019-09-13 15:02 by kgv
Description Fast prototype shows that using Standard_ReadLineBuffer may give 3x time performance boost on reading of large OBJ files (~1 GiB):
  struct RWObj_ReaderFile : public Standard_ReadLineBuffer
  {
...
    bool ReadLine()
    {
      size_t aLineLen = 0;
      int64_t aReadBytes = 0;
      Line = Standard_ReadLineBuffer::ReadLine (File, aLineLen, aReadBytes);
      Position += aReadBytes;
      return Line != NULL;


To complete the patch, Standard_ReadLineBuffer or its sub-class should be extended by handling of special multi-line case with \ at the end of the line.

Revision 2019-09-13 14:55 by kgv
Description Fast prototype shows that using Standard_ReadLineBuffer may give 3x time performance boost on reading of large OBJ files:
  struct RWObj_ReaderFile : public Standard_ReadLineBuffer
  {
...
    bool ReadLine()
    {
      size_t aLineLen = 0;
      int64_t aReadBytes = 0;
      Line = Standard_ReadLineBuffer::ReadLine (File, aLineLen, aReadBytes);
      Position += aReadBytes;
      return Line != NULL;


To complete the patch, Standard_ReadLineBuffer or its sub-class should be extended by handling of special multi-line case with \ at the end of the line.



Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker