STL::string vs STLPort::string

同样的代码, STLPort性能差不多多少,但支持线程安全


#include 
< stdio.h >
#include 
< pthread.h >
#include 
< stdlib.h >
#include 
< string >
#include 
< time.h >
#include 
< unistd.h >
#include 
< sys / timeb.h >

class  CTimeElapsed
{
public:
    
void begin()
    
{
        ftime( 
&m_BeginTime );
    }


    
void end()
    
{
        ftime( 
&m_EndTime );
    }


    
void printTimeElapsed(const char* pszPrefix)
    
{
        
long t = ( m_EndTime.time - m_BeginTime.time ) * 1000 + ( m_EndTime.millitm - m_BeginTime.millitm );
        printf(
"%s Elapsed %ld ms \n", pszPrefix, t);
    }


private:
    timeb m_BeginTime;
    timeb m_EndTime;
}
;

int  main()
{
    CTimeElapsed t;

    t.begin();
    
forint i = 0; i <= 50000; i++)
        std::
string str = "test string opt";
    t.end();
    t.printTimeElapsed(
"50000 string opt");

    t.begin();
    
forint i = 0; i <= 100000000; i++)
        std::
string str = "test string opt";
    t.end();
    t.printTimeElapsed(
"100000000 string opt");

    t.begin();
    
forint i = 0; i <= 200000000; i++)
        std::
string str = "test string opt";
    t.end();
    t.printTimeElapsed(
"200000000 string opt");

    
return 0;

}

STL
50000   string  opt Elapsed  8  ms 
100000000   string  opt Elapsed  15445  ms 
200000000   string  opt Elapsed  30818  ms 

STLPort
50000   string  opt Elapsed  7  ms 
100000000   string  opt Elapsed  16570  ms 
200000000   string  opt Elapsed  32291  ms 

你可能感兴趣的:(STL::string vs STLPort::string)