[ 
https://issues.apache.org/jira/browse/STDCXX-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor updated STDCXX-231:
--------------------------------

    Description: 
Moved from the Rogue Wave bug tracking database:

{noformat}
****Created By: leroy @ Jan 25, 2001 03:20:01 PM****


Environment
  Compiler : SUNPRO 4.2
  OS : Solaris 2.5.1
  SCL : 1.3.0 (Summer-1999)
  Tools : 7.1.0 (Summer-1999) --> Use only for RWBench

Command line option :
  for debug : 
  CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
-ltls11s -lstd11s -Bdynamic

  for release :
CC -xildoff +w +p -fast -o Test_release.exe test.cc 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
-ltls8s -lstd8s -Bdynamic
 (Uploaded file: 997149-test.cc)                                                
                                                                                
                                                                                
                                                                                
                                                                                
                   
**** Entered By: Web @ Thursday, January 25, 2001 2:41:42 AM **** 
Location of uploaded file: 
http://thoth.bco.roguewave.com/uploads/997149-test.cc

View all uploaded files for this incident: 
http://webdev.roguewave.com/admin/tsvw/index.cfm?IncidentID=997149              
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                            
**** Entered By: Web @ Thursday, January 25, 2001 2:44:56 AM **** 
#web
Please find my test case at the end of the note

Environment
  Compiler : SUNPRO 4.2
  OS : Solaris 2.5.1
  SCL : 1.3.0 (Summer-1999)
  Tools : 7.1.0 (Summer-1999) --> Use only for RWBench

Command line option :
  for debug : 
  CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
-ltls11s -lstd11s -Bdynamic

  for release :
CC -xildoff +w +p -fast -o Test_release.exe test.cc 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
-ltls8s -lstd8s -Bdynamic

#Code
#include <string>
#include <fstream.h>
#include <iostream.h>
#include <rw/bench.h>
 
 
class std_string_getline : public RWBench
{
  public:
   std_string_getline() {;}
 
   void doLoop(unsigned long n);
   void idleLoop(unsigned long n);
   void what(ostream& os) const { os << "Standard String Getline : " << endl;}
};
 
class classic_getline : public RWBench
{
  public:
    classic_getline() {;}
 
    void doLoop(unsigned long n);
    void idleLoop(unsigned long n);
    void what(ostream& os) const { os << "Classic Getline : " << endl;}
};
 
int
main(int argc, char** argv)
{
 
  std_string_getline test_std_string;
  test_std_string.parse(argc, argv);
  test_std_string.go();
  test_std_string.report(cout);
 
  classic_getline test_classic_getline;
  test_classic_getline.parse(argc, argv);
  test_classic_getline.go();
  test_classic_getline.report(cout);
}
 
void
std_string_getline::doLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    string line;
    line.reserve(512);
 
    while (!(toRead.eof()))
    {
      getline(toRead, line, '\n');
    }
  }
}
 
void
std_string_getline::idleLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    string line;
    line.reserve(512);
  }
}
 
void
classic_getline::doLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    char cLine[512];
    string line;
    line.reserve(512);
 
    while (!(toRead.eof()))
    {
      toRead.getline(cLine, 512);
      line = cLine;
    }
  }
}
 
void
classic_getline::idleLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    char cLine[512];
    string line;
    line.reserve(512);
  }
}

#EndCode                

There appears to be something to this.  I ran the program and here is the 
output:

Sun C++ 

Standard String Getline : 

Iterations:                 1
Inner loop operations:      1000
Total operations:           1000
Elapsed (user) time:        18.18
Operations per second:      55.0055

Sun C++ 

Classic Getline : 

Iterations:                 5
Inner loop operations:      1000
Total operations:           5000
Elapsed (user) time:        4.67
Kilo-operations per second: 1.07066
{noformat}

  was:
Moved from the Rogue Wave bug tracking database:

****Created By: leroy @ Jan 25, 2001 03:20:01 PM****


Environment
  Compiler : SUNPRO 4.2
  OS : Solaris 2.5.1
  SCL : 1.3.0 (Summer-1999)
  Tools : 7.1.0 (Summer-1999) --> Use only for RWBench

Command line option :
  for debug : 
  CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
-ltls11s -lstd11s -Bdynamic

  for release :
CC -xildoff +w +p -fast -o Test_release.exe test.cc 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
-ltls8s -lstd8s -Bdynamic
 (Uploaded file: 997149-test.cc)                                                
                                                                                
                                                                                
                                                                                
                                                                                
                   
**** Entered By: Web @ Thursday, January 25, 2001 2:41:42 AM **** 
Location of uploaded file: 
http://thoth.bco.roguewave.com/uploads/997149-test.cc

View all uploaded files for this incident: 
http://webdev.roguewave.com/admin/tsvw/index.cfm?IncidentID=997149              
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                            
**** Entered By: Web @ Thursday, January 25, 2001 2:44:56 AM **** 
#web
Please find my test case at the end of the note

Environment
  Compiler : SUNPRO 4.2
  OS : Solaris 2.5.1
  SCL : 1.3.0 (Summer-1999)
  Tools : 7.1.0 (Summer-1999) --> Use only for RWBench

Command line option :
  for debug : 
  CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
-ltls11s -lstd11s -Bdynamic

  for release :
CC -xildoff +w +p -fast -o Test_release.exe test.cc 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
-I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
-L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
-ltls8s -lstd8s -Bdynamic

#Code
#include <string>
#include <fstream.h>
#include <iostream.h>
#include <rw/bench.h>
 
 
class std_string_getline : public RWBench
{
  public:
   std_string_getline() {;}
 
   void doLoop(unsigned long n);
   void idleLoop(unsigned long n);
   void what(ostream& os) const { os << "Standard String Getline : " << endl;}
};
 
class classic_getline : public RWBench
{
  public:
    classic_getline() {;}
 
    void doLoop(unsigned long n);
    void idleLoop(unsigned long n);
    void what(ostream& os) const { os << "Classic Getline : " << endl;}
};
 
int
main(int argc, char** argv)
{
 
  std_string_getline test_std_string;
  test_std_string.parse(argc, argv);
  test_std_string.go();
  test_std_string.report(cout);
 
  classic_getline test_classic_getline;
  test_classic_getline.parse(argc, argv);
  test_classic_getline.go();
  test_classic_getline.report(cout);
}
 
void
std_string_getline::doLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    string line;
    line.reserve(512);
 
    while (!(toRead.eof()))
    {
      getline(toRead, line, '\n');
    }
  }
}
 
void
std_string_getline::idleLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    string line;
    line.reserve(512);
  }
}
 
void
classic_getline::doLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    char cLine[512];
    string line;
    line.reserve(512);
 
    while (!(toRead.eof()))
    {
      toRead.getline(cLine, 512);
      line = cLine;
    }
  }
}
 
void
classic_getline::idleLoop(unsigned long n)
{
  while (n--)
  {
    ifstream toRead(__FILE__);
    char cLine[512];
    string line;
    line.reserve(512);
  }
}

#EndCode                

There appears to be something to this.  I ran the program and here is the 
output:

Sun C++ 

Standard String Getline : 

Iterations:                 1
Inner loop operations:      1000
Total operations:           1000
Elapsed (user) time:        18.18
Operations per second:      55.0055

Sun C++ 

Classic Getline : 

Iterations:                 5
Inner loop operations:      1000
Total operations:           5000
Elapsed (user) time:        4.67
Kilo-operations per second: 1.07066


Prevented the Wiki plugin from formatting the Description.

> std::getline from <string> header is rather slow
> ------------------------------------------------
>
>                 Key: STDCXX-231
>                 URL: https://issues.apache.org/jira/browse/STDCXX-231
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: 21. Strings
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-231.patch
>
>   Original Estimate: 4h
>          Time Spent: 4h
>  Remaining Estimate: 4h
>
> Moved from the Rogue Wave bug tracking database:
> {noformat}
> ****Created By: leroy @ Jan 25, 2001 03:20:01 PM****
> Environment
>   Compiler : SUNPRO 4.2
>   OS : Solaris 2.5.1
>   SCL : 1.3.0 (Summer-1999)
>   Tools : 7.1.0 (Summer-1999) --> Use only for RWBench
> Command line option :
>   for debug : 
>   CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
> -L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
> -ltls11s -lstd11s -Bdynamic
>   for release :
> CC -xildoff +w +p -fast -o Test_release.exe test.cc 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
> -L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
> -ltls8s -lstd8s -Bdynamic
>  (Uploaded file: 997149-test.cc)                                              
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                              
> **** Entered By: Web @ Thursday, January 25, 2001 2:41:42 AM **** 
> Location of uploaded file: 
> http://thoth.bco.roguewave.com/uploads/997149-test.cc
> View all uploaded files for this incident: 
> http://webdev.roguewave.com/admin/tsvw/index.cfm?IncidentID=997149            
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                                               
>                                                         
> **** Entered By: Web @ Thursday, January 25, 2001 2:44:56 AM **** 
> #web
> Please find my test case at the end of the note
> Environment
>   Compiler : SUNPRO 4.2
>   OS : Solaris 2.5.1
>   SCL : 1.3.0 (Summer-1999)
>   Tools : 7.1.0 (Summer-1999) --> Use only for RWBench
> Command line option :
>   for debug : 
>   CC -xildoff +w +p -g -o Test_dbg.exe test.cc -DRWDEBUG=1 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/include -I. 
> -L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/11s/lib -Bstatic 
> -ltls11s -lstd11s -Bdynamic
>   for release :
> CC -xildoff +w +p -fast -o Test_release.exe test.cc 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s 
> -I/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/include -I. 
> -L/opt/RogueWave/Summer-1999/workspaces/SOLARIS251/SUNPRO42/8s/lib -Bstatic 
> -ltls8s -lstd8s -Bdynamic
> #Code
> #include <string>
> #include <fstream.h>
> #include <iostream.h>
> #include <rw/bench.h>
>  
>  
> class std_string_getline : public RWBench
> {
>   public:
>    std_string_getline() {;}
>  
>    void doLoop(unsigned long n);
>    void idleLoop(unsigned long n);
>    void what(ostream& os) const { os << "Standard String Getline : " << endl;}
> };
>  
> class classic_getline : public RWBench
> {
>   public:
>     classic_getline() {;}
>  
>     void doLoop(unsigned long n);
>     void idleLoop(unsigned long n);
>     void what(ostream& os) const { os << "Classic Getline : " << endl;}
> };
>  
> int
> main(int argc, char** argv)
> {
>  
>   std_string_getline test_std_string;
>   test_std_string.parse(argc, argv);
>   test_std_string.go();
>   test_std_string.report(cout);
>  
>   classic_getline test_classic_getline;
>   test_classic_getline.parse(argc, argv);
>   test_classic_getline.go();
>   test_classic_getline.report(cout);
> }
>  
> void
> std_string_getline::doLoop(unsigned long n)
> {
>   while (n--)
>   {
>     ifstream toRead(__FILE__);
>     string line;
>     line.reserve(512);
>  
>     while (!(toRead.eof()))
>     {
>       getline(toRead, line, '\n');
>     }
>   }
> }
>  
> void
> std_string_getline::idleLoop(unsigned long n)
> {
>   while (n--)
>   {
>     ifstream toRead(__FILE__);
>     string line;
>     line.reserve(512);
>   }
> }
>  
> void
> classic_getline::doLoop(unsigned long n)
> {
>   while (n--)
>   {
>     ifstream toRead(__FILE__);
>     char cLine[512];
>     string line;
>     line.reserve(512);
>  
>     while (!(toRead.eof()))
>     {
>       toRead.getline(cLine, 512);
>       line = cLine;
>     }
>   }
> }
>  
> void
> classic_getline::idleLoop(unsigned long n)
> {
>   while (n--)
>   {
>     ifstream toRead(__FILE__);
>     char cLine[512];
>     string line;
>     line.reserve(512);
>   }
> }
> #EndCode                
> There appears to be something to this.  I ran the program and here is the 
> output:
> Sun C++ 
> Standard String Getline : 
> Iterations:                 1
> Inner loop operations:      1000
> Total operations:           1000
> Elapsed (user) time:        18.18
> Operations per second:      55.0055
> Sun C++ 
> Classic Getline : 
> Iterations:                 5
> Inner loop operations:      1000
> Total operations:           5000
> Elapsed (user) time:        4.67
> Kilo-operations per second: 1.07066
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to