рдпрд╣ рдЫреЛрдЯрд╛ рд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрд╕рдЯреАрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рднреАрддрд░ рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдПрд╕рдЯреАрдбреА :: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, std :: string рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдореВрд▓реНрдп рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЧреИрд░-рдЗрд╖реНрдЯрддрдо рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рд╕рднреА gamedev рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреАрд╡реНрд░ рд╣реИред
рддреЛ, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЪрд▓реЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╣реИрд╢ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд┐рдо рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддреЗ рд╣реИрдВред рдореИрдВ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗ рджреВрдБрдЧрд╛ - рдПрдХ рд╕реА-рд╢реИрд▓реА рдореЗрдВ, рджреВрд╕рд░рд╛ - stl- рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ std :: stringред
рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ
рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ
редuint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
uint32 hash_c( const char * str) { uint32 h = 0; const int len = strlen(str); for ( int i = 0; i < len; ++i) h = 31*h + str[i]; return h; } uint32 hash_stl( const std:: string & str) { uint32 h = 0; for (std:: string ::const_iterator it = str.begin(); it != str.end(); ++it) h = 31*h + + *it; return h; } * This source code was highlighted with Source Code Highlighter .
рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (рдХреЙрд╕реНрдЯ рдЪрд╛рд░ *) рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдСрдмреНрдЬреЗрдХреНрдЯ std :: string рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╕рд╛рд░ рдПрд╕рдЯреАрдПрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдореВрд▓реНрдп рджрд┐рдЦрд╛рдирд╛ рд╣реИред
рдЕрдм рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкреЗрдВрдЧреЗ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо 256 * 1024 рдкрд╛рд╕ рд╕реЗ рдЧрдгрдирд╛ рдХреЗ рдЪрдХреНрд░ рдмрдирд╛рдПрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдХреЛ 8, 16 рдФрд░ 32 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрди рдЖрдХрд╛рд░реЛрдВ рдкрд░ рдорд╛рдкрд╛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕реЗ рдиреАрдЪреЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред
- #define ITERATION_COUNT 256 * 1024
- // ...
- for ( int i = 0; рдореИрдВ <ITERATION_COUNT; ++ i)
- h1 = hash_c (str);
- // ...
- for ( int i = 0; рдореИрдВ <ITERATION_COUNT; ++ i)
- h2 = hash_stl (str);
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдиреЛрдЯ: рдЙрджрд╛рд╣рд░рдг рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ 2010 рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдВрдХрд▓рдХ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЖрдЧреЗ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВред
- cl / EHsc / O2 main.cpp
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 8 рдмрд╛рдЗрдЯреНрд╕
- const char *: 6.20 msec, рд╣реИрд╢: 312017024
- std :: string : 12.62 msec, рд╣реИрд╢: 312017024, 2.04x
- рдХреБрд▓ рд╕рдореВрд╣: 0
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 16 рдмрд╛рдЗрдЯреНрд╕
- const char *: 11.78 msec, рд╣реИрд╢: 2657714432
- std :: string : 131.21 рдорд┐рд╕реЗ, рд╣реИрд╢: 2657714432, 11.14x
- рдХреБрд▓ рдЖрд╡рдВрдЯрди: 262144
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 32 рдмрд╛рдЗрдЯреНрд╕
- const char *: 23.20 рдорд┐рд╕реЗ, рд╣реИрд╢: 3820028416
- std :: string : 144.64 msec, рд╣реИрд╢: 3820028416, 6.24x
- рдХреБрд▓ рдЖрд╡рдВрдЯрди: 262144
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣рд╛рдВ рдорд╕реНрддреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдЧрд┐рд░рд╛рд╡рдЯ 2 рдЧреБрдирд╛ рд╣реИ, рд╕рдмрд╕реЗ рдмрдбрд╝реА - 11 рдмрд╛рд░ред рдЗрд╕реА рд╕рдордп, 16 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рдВрдЯрди рдвреЗрд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред 32-рдмрд╛рдЗрдЯ рд▓рд╛рдЗрдиреЛрдВ рдкрд░, рдЧрдгрдирд╛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд▓рд╛рдЧрдд рдереЛрдбрд╝рд╛ рд╕рдорддрд▓ рд╣реИ рдФрд░ рдбреНрд░реЙрдбрд╛рдЙрди рдереЛрдбрд╝рд╛ рдХрдо рд╣реИ - 16-рдмрд╛рдЗрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХрдо рд╣реИред рдЖрд╡рдВрдЯрди рдХрд╣рд╛рдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ?
std :: string рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ STL рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MS Visual Studio 2010 рдХреЗ STL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЗрд╕ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ 16 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЪрд░ _BUF_SIZE) рдХреЛ рджреЗрдЦрдХрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм std :: string рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрд╕ рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдЖрд╡рд╢реНрдпрдХ рдЖрдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдХреЛ рд╣реАрдк рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдХреЙрдкреА рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ std :: string рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдмрдВрдЯрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ string рдХрд╛ рдЖрдХрд╛рд░ std :: string рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рд░рд┐рд▓реАрдЬ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рдмреВрдВрдж рдХрд╛ 11 рдЧреБрдирд╛ рддрдХ рдЖрд╡рдВрдЯрди рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдореЗрдореЛрд░реА рд╡рд┐рдЦрдВрдбрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдХреНрд╖рдг рдХрдВрд╕реЛрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд░реИрдо рдХреА рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдХреЛрдИ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИред
рдЕрдм, рд╢рд╛рдпрдж, рдпрд╣ рдбрд┐рдмрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
- cl / EHsc / MDd / RTC1 / ZI main.cpp
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 8 рдмрд╛рдЗрдЯреНрд╕
- const char *: 24.74 рдорд┐рд╕реЗ, рд╣реИрд╢: 312017024
- std :: string : 4260.18 msec, рд╣реИрд╢: 312017024, 172.23x
- рдХреБрд▓ рдЖрд╡рдВрдЯрди: 262144
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 16 рдмрд╛рдЗрдЯреНрд╕
- const char *: 34.87 msec, рд╣реИрд╢: 2657714432
- std :: string : 7697.69 msec, рд╣реИрд╢: 2657714432, 220.76x
- рдХреБрд▓ рдЖрд╡рдВрдЯрди: 524288
- *************************************
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ: 32 рдмрд╛рдЗрдЯреНрд╕
- const char *: 58.38 msec, рд╣реИрд╢: 3820028416
- std :: string : 14169.49 msec, рд╣реИрд╢: 3820028416, 242.70x
- рдХреБрд▓ рдЖрд╡рдВрдЯрди: 524288
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдбреНрд░рд╛рдбрд╛рдЙрди рдкреНрд░рджрд░реНрд╢рди рдорд╣рд╛рдХрд╛рд╡реНрдп 240 рдмрд╛рд░! рдЬрд┐рд╕рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдиреА рд╣реИред рдмреЗрд╢рдХ, рдЧрдВрднреАрд░ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЖрдк рдбрд┐рдмрдЧ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рд░реВрдк c / ZI (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВ) рдХреЛ рддреЗрдЬрд╝ / Zi рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдЯреИрдХ рд╡рд┐рдлрд▓рддрд╛ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдЪрд░ (/ RTC1) рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЪреЗрдХ рднреА рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдбрд┐рдмрдЧ рдХрд╛ рдкреВрд░рд╛ рдЕрд░реНрде рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдиреИрддрд┐рдХрддрд╛ред рдПрд╕рдЯреАрдПрд▓, рдПрдХ рд╢рдХ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдореЗрдВ рд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рджреБрдГрдЦрдж рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдФрд░ рдпрд╣ рди рдХреЗрд╡рд▓ рдПрд╕рдЯреАрдбреА :: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрд╕рдЯреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдвреЗрд░, рд╕реНрдореГрддрд┐ рд╡рд┐рдЦрдВрдбрди рдФрд░ рдбреЗрдЯрд╛ рдЗрд▓рд╛рдХреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рдмрд╛рд░ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!