[
https://issues.apache.org/jira/browse/STDCXX-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Travis Vitek 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:
{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}
Fix format so that page doesn't run over.
> 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.