рдЙрдкрдпреБрдХреНрдд рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдЫрдорд╛рд╣реА рдХреА рд╕рд╣реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрдирд╛, рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ред рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рдХреЗ рдмреАрдЪ 100x рдХреЗ рдЕрдВрддрд░ рдиреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВрдиреЗ рдмреЗрд╣рддрд░ рд╕реАрдЦрд╛ рдХрд┐ рдбрд┐рдмрдЧ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ; рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ (рдирд╣реАрдВ рдорд┐рд▓рд╛) рджреНрд╡рд╛рд░рд╛ 2005 рдФрд░ 2008 рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛; рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ рдмрд┐рд▓реНрдб рдмрд┐рд▓реНрдб рдХреЛ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ 3 рдЧреБрдирд╛ рдХреИрд╕реЗ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП (рд╣рдордиреЗ рдмреНрд▓реЙрдХ рдХреЛ рдмреИрдХ рдореЗрдВ рд╣рд┐рдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░рдЦрд╛); "рдЯреЗрдХ рдПрдВрдб рд░рди" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдРрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗ рдЬреЛ рдХреЙрдкреАрд░рд╛рдЗрдЯ рд╡рд╛рд▓реЛрдВ рд╕реЗ 3.5 рдЧреБрдирд╛ рдЕрд▓рдЧ рд╣реИрдВ (рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдирд╛рд░рдХреАрдп рдмрд▓ x64!)ред рдФрд░ рд╣рдБрд╕реА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдмреБрд░рд╛, рдмреЗрдХрд╛рд░ рдЕрдВрдбрд░-рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдо рдЕрдЪреНрдЫрд╛ (рдмреБрд░рд╛ 100 рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдирд┐рдХрд▓рд╛) рдорд╛рдкрд╛ред рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред
рдореИрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЕрдиреНрдпрдерд╛ рдмрд╛рдж рдореЗрдВ рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдкреЛрд╕реНрдЯ рд╢реБрд░реВ ,
рдЙрдирдХрд╛ рдЯреЗрд╕реНрдЯ рдХреЛрдб ,
рдореЗрд░рд╛ рдЯреЗрд╕реНрдЯ рдХреЛрдб ред
рдХрдВрдкрдХрдВрдкреА рдХреЛ рдЦрддреНрдо рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдореВрд▓ рдкреНрд░рд╢реНрди рдкрд░ рд▓реМрдЯ рдЖрдпрд╛: 100 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмреНрд░реЗрдХ, рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡реЗ рдЖрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕рдХрд╛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд, рд▓рд┐рдЦрд┐рдд, рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рдерд╛, рдХреЙрдореНрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╕рдВрдХрд▓рди рдмрд╣реБрдд рддреЗрдЬ рд╣реИред
cl2005 /O2 /EHsc 1.cpp
std it++ res=49995000, 28.5 msec
std ++it res=49995000, 28.6 msec
my res=49995000, 19.0 msec
cl2005 /EHsc 1.cpp
std it++ res=49995000, 534.2 msec
std ++it res=49995000, 437.6 msec
my res=49995000, 69.9 msec
рдЙрдлрд╝ред рдкрд░рд┐рдгрд╛рдо, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ: рд╡реЗ рд▓реЛрдЧ 30 рдЧреБрдирд╛ рдзреАрдореЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 10 рд╣реИрдВред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡реЗрддрди рд╡реГрджреНрдзрд┐ 3 рдЧреБрдирд╛ рдХрдо рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 20% рд╣реИред рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рд╕рдВрдХрд▓рдХ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдиреЗ рднрдпрдВрдХрд░ рд╣реИрдВ? рдареАрдХ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЕрднреА рдбрд╛рд▓ рджреЗрдВрдЧреЗ, рд╣рдо рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗред
cl2008 /O2 /EHsc 1.cpp
std it++ res=49995000, 64.3 msec
std ++it res=49995000, 63.4 msec
my res=49995000, 19.0 msec
cl2008 /EHsc 1.cpp
std it++ res=49995000, 732.1 msec
std ++it res=49995000, 678.8 msec
my res=49995000, 70.0 msec
Mdjaред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрднреЗрдж рд╣реИрдВ, рдХреЗрд╡рд▓ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ: рд╡реАрдПрд╕ 2005 рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреАрди рдЧреБрдирд╛ рддреЗрдЬ рдерд╛ред рд╕реБрдзрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ; рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕реНрдЯреВрдбрд┐рдпреЛ рдирдВрдмрд░ 2008 рдореЗрдВ рдПрд╕рд╕реАрдПрд▓ рддреАрди рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдмрди рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ред _SECURE_SCL 0 рдкрд░ рдЧрддрд┐ рд╕рдорд╛рди рд╣реИред (рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реИрдВред) рдореИрдВ рдФрд░ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ? рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдм рд╕рдорд╛рди рд╣реИ, std :: рд╡реЗрдХреНрдЯрд░ рд╕рдорд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕рдорд╛рди рд╣реИ: рдореИрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╕рдВрдХрд▓рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдЪрд▓рдиред рд╣рдо рд╕рдорд╛рдзрд╛рди рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдБ рдПрдХ рдмрд▓реНрдХрд┐ рдлреИрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдХреЙрдореНрд╕реНрдЯреНрд░реЛрдХ рд╣реИред
/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /ZI /TP /errorReport:prompt
рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдкреНрд░рд╡реГрддреНрддрд┐ рдФрд░ рдкрд╛рд╢рд╡рд┐рдХ рдмрд▓ рдорд╣рддреНрд╡рд╣реАрди рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреБрдВрдЬреА рдХреЗ рддреАрди рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ: рдП) / рдПрдордбреАрдбреА, рдмреА) / рдЖрд░рдЯреАрд╕реА 1, рд╕реА) / рдЬреЗрдбрдЖрдИред рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
cl2008 /Od /EHsc /MDd 1.cpp
std it++ res=49995000, 6026.1 msec
std ++it res=49995000, 1953.9 msec
my res=49995000, 66.5 msec
cl2008 /Od /EHsc /MDd /RTC1 1.cpp
std it++ res=49995000, 7572.0 msec
std ++it res=49995000, 2385.3 msec
my res=49995000, 101.8 msec
cl2008 /Od /EHsc /MDd /RTC1 /ZI 1.cpp
std it++ res=49995000, 18722.0 msec
std ++it res=49995000, 7131.8 msec
my res=49995000, 511.9 msec
рдЕрдм, рдЕрдм рд╕рдм рдХреБрдЫ рдордиреБрд╖реНрдпреЛрдВ рдХреА рддрд░рд╣ рд╣реИ: рдФрд░ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдПрдХ рдХрдореАрдиреЗ рдХреА рддрд░рд╣ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреЛрд╕реНрдЯ-рдЗрдВрдХреНрд░реАрдореЗрдВрдЯ рдзреАрдорд╛ рд╣реЛрдиреЗ рд▓рдЧрд╛ред Nishtyak! рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИред рдкрдврд╝рдиреЗ рдХреЗ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ cl /? рддреАрди рд╕рд░рд▓ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗрдВ рдкрддрд╛ рдЪрд▓реА рд╣реИрдВ (рдПрдХ рдкреНрд░рддрд┐ рдХреБрдВрдЬреА), рдЬреЛ рдЕрднреА рднреА рдирдИ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдП рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ) рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИред
/ MDd рдиреЗ рдбрд┐рдмрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ) рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо / D _DEBUG (рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ) рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рд╕реЗ, SCL рдиреЗ _SECURE_SCL рджреНрд╡рд╛рд░рд╛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдЪреЗрдХ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЯ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреЛрд╕реНрдЯ-рдЗрдиреНрдХреНрд░реАрдореЗрдВрдЯ рдХреЛ 8 рдЧреБрдирд╛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛, рдФрд░ 3 рдмрд╛рд░ рдорд┐рд╕рдХреИрд░реЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡-рдЗрдВрдХреНрд░реАрдореЗрдВрдЯред
/ RTC1 рдореЗрдВ рд╕реНрдЯреИрдХ рд╡рд┐рдлрд▓рддрд╛ рдЪреЗрдХ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдбрд┐рд╕реНрдореИрд╕ рдбрд┐рдмрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреА рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдКрдБрдЪреА рдПрдбрд╝реА рдХреЗ рдЬреВрддреЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (++; = =, * рдФрд░ рджреЛ рд╡рд┐рдзреНрд╡рдВрд╕рдХ)ред рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡рд╣ рдЗрд╕реЗ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдЯреИрдХ рдХреИрд╕реЗ рддреЛрдбрд╝рддрд╛ рд╣реИ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдХрд░ рдХреЗ 256 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рдПрд╕рдЯреАрдПрд▓ рдореЗрдВ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ (рдкреНрд░рддреНрдпреЗрдХ) рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдп-рдмрд╛рдп, рдПрдХ рдФрд░ 20% рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЯреЙрдк-рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдирд╣реАрдВ рд╣реИред
/ ZI, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдХреЛ рд░реМрдВрджрддрд╛ рд╣реИ рдФрд░ рдмреИрдВрдХ рдХреЛ рдШрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдбрд┐рдЯ рдПрдВрдб рдХрдВрдЯрд┐рдиреНрдпреВ рд╣реИред рд╕рдВрднрд╡рддрдГ рдордХреНрдЦреА рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рдореИрдВ рдЦреБрдж рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ)ред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреАрдордд рдмреНрд░реЗрдХ рд╕реЗ 3 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред
рд░рд┐рд▓реАрдЬ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдбреАрдмрдЧ рдореЗрдВ рдХреБрд▓ рдкреЛрд╕реНрдЯ-рдЗрдВрдХреНрд░реАрдореЗрдВрдЯ 291 рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (!!!)ред рдЬреЛ рддреБрд░рдВрдд рд╕рд╡рд╛рд▓ рдЙрдард╛рддрд╛ рд╣реИ: рдореЗрд░реЗ рдкрд╛рд╕ 291 рдмрд╛рд░ рдХреНрдпреЛрдВ рд╣реИрдВ, рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 95 рд╣реИрдВ? рдореИрдВ рдореВрд▓ рдкрд░реАрдХреНрд╖рд╛ рдПрдХрддреНрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдВрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдзреИрд░реНрдп рдирд╣реАрдВ рд╣реИ, рдЧрдгрдирд╛ рдХреЛ 10 рдЧреБрдирд╛ рдХрдо рдХрд░рдХреЗ, рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рд╕рдордп рдХреЛ 10 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдирд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐
it++, x86, release: 1.00
++it, x86, release: 1.00
it++, x86, debug: 275.7
++it, x86, debug: 101.9
it++, x64, release: 0.87779
++it, x64, release: 0.87753
it++, x64, debug: 83.2849
++it, x64, debug: 27.1557
рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореЗрд░реЗ x86 рд╕реЗ рд░рд┐рд╣рд╛рдИ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ 13% рдХрд╛ рдЖрдпрдХрд░ рд▓рд┐рдпрд╛, рдФрд░ рдбрд┐рдмрдЧ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд▓реВрдЯ рд▓рд┐рдпрд╛, рдХреЗрд╡рд▓ рдЬрд╛рдВрдШрд┐рдпрд╛, рдореЛрдЬрд╝реЗ рдФрд░ рдЪрдкреНрдкрд▓ рдЫреЛрдбрд╝рдХрд░ред рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВред рд╡реИрд╕реЗ рднреА, рдореИрдВ XP рдХреЛ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╛рдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рд╣реА рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ, рд╕рд╛рде рд╣реА рд╣рдо рд╕рд░реНрд╡рд┐рд╕ рдкреИрдХ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдб рдХреЗ рдирд╛рд░рдХреАрдп рдмреНрд░реЗрдХ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реЗ рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЬрд╛рдПред 2 рдмрд╛рд░ рдЗрд╕реЗ рдЦрд╛рддрд╛ рд╣реИ _SECURE_SCL, 5 рдмрд╛рд░ рдЕрдиреБрдХреВрд▓рди рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, 3 рдЧреБрдирд╛ (++ рдпрд╣) рд╕реЗ 8 рдЧреБрдирд╛ (рдпрд╣ ++) рдЧрдбрд▓реНрд╕ рдХреЛ _DEBUG, 1.2 рдмрд╛рд░ / RTC рдХреЗ рддрд╣рдд рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ 3 рдмрд╛рд░ / ZI рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, 2 рдФрд░ * рел * a * рез.реи * рей = реи 1.2,, рдЕрдирд╛рдЬ рд╕реЗ рдПрдХ рдЪрд┐рдХрди, рдкреВрд░реЗ рдХреЛрдб рдореЗрдВ рд╣реИ ... рдЪреЗрдХ, рдмреНрд░реЗрдХ рейрежреж (рддреАрди рд╕реМ) рдмрд╛рд░ рд╣реИрдВред рд╣рд╛рде рдЪрд┐рдХрди рдЦрд╛рддреЗ рд╣реИрдВ, рдмреЗрд╢рдХред рд╢рд╛рд╢реНрд╡рдд рддреАрди рдореЗрдВ рд╕реЗ, рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ рд╢реЗрд╖ рд╣реИ: рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рддрдХред рд╣рд╛рд▓рд╛рдБрдХрд┐, 2 рдорд┐рдирдЯ рдореЗрдВ рдЖрдк 2 рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдк рдПрдбрд┐рдЯ рдПрдВрдб рдХрдВрдЯрд┐рдиреНрдпреВ (рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдирд┐рдпрдорд┐рдд рд╕реЛрд╡рд┐рдпрдд PDBs рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрдврд╝ рдЗрдЪреНрдЫрд╛рд╢рдХреНрддрд┐ рд╡рд╛рд▓рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 5 рдЧреБрдирд╛ рдирд╣реАрдВ, рддреЛ 3 рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред 2, / RTC рдЪреЗрдХ рдбрд┐рд╕реЗрдмрд▓, рдмреЗрд╢рдХ, рдХреВрд▓ред рд╣рд╛рд▓рд╛рдВрдХрд┐! MSDN рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреНрд░рдо_рдЪреЗрдХ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред рдЙрдиред рдЖрдк рдЗрди рдЪреЗрдХ рдкреЙрдЗрдВрдЯ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдкреВрд░реЗ STL рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдмрд╛рд╣рд░реА рдХреЛ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред
#pragma runtime_checks("",off)
...
#pragma runtime_checks("",restore)
рдЬрдм рд╣рдо ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ 7 рд╕реЗрдХрдВрдб рдХреЗ рдмрдЬрд╛рдп 2 рд╕реЗрдХрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо 18 рд╕реЗрдХрдВрдб рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рдИрдорд╛рдирджрд╛рд░ 6 рд╕реЗрдХрдВрдб рд╡рд╛рдкрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИред рдмрд┐рдХреНрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд▓рдЧрднрдЧ 3 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИред рд▓рд╛рдн! рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЬреЛ рдореВрд▓ рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдпрд╣ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ x86 рдкрд░ред
vanilla
it++, x86, debug: 275.7
++it, x86, debug: 101.9
#pragma runtime_checks, /Zi instead of /ZI
it++, x86, debug: 102.2
++it, x86, debug: 30.0
рдПрдХ рдмреБрд░рд╛, рдХреБрдЯрд┐рд▓, рдмреЗрдХрд╛рд░ рдФрд░ рдЖрджрд┐рдо рдЕрдВрдбрд░-рд╡реЗрдХреНрдЯрд░, рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдбрд┐рдмрдЧ рдореЗрдВ рдЕрдкрдиреА рдИрдорд╛рдирджрд╛рд░ 0.066 рд╕реЗрдХрдВрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЙрдиред рдпрд╣ ++ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 90 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдпрд╛ ++ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ 30 рдЧреБрдирд╛ рд╣реИред рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рдЧрднрдЧ 100 рдмрд╛рд░ рдореИрдВрдиреЗ
рдЭреВрда рдмреЛрд▓рд╛ ред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЪреЗрдХ рд╣реИ: рдкрд╣реБрдВрдЪ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рд╢реБрджреНрдзрддрд╛ (рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗрдХреНрдЯрд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЪреЗрдХ рдХреЗ рд▓рдЧрднрдЧ 99% рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ); рдкреВрд░реНрд╡ рдФрд░ рдмрд╛рдж рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдзреНрдпрд╛рди рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд▓реЗрдЦрдХ рдХреБрдЫ рднреА рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд╣реИред рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ 3 рдорд┐рдирдЯ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдЙрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрд╕рдЯреАрдПрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдб рдЧрддрд┐ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ; рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рддреНрдпрд╛рдкрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛; рд╕рддреНрдп рд╣рдореЗрд╢рд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рдПрдЧрд╛ред
_SECURE_SCL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ, _DEBUG рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, #pragma runtime_checks рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдкреНрд░рднрд╛рд╡, mneee, рддреЗрдЬрд╕реНрд╡реА рд╣реИред (рдЕрдВрддрд░ рдиреЗ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдВрдд рдореЗрдВ 300 рдмрд╛рд░ рдорд╛рд░ рджрд┐рдпрд╛ред рдФрд░ 3 рд╕реЗ 5 рдмрд╛рд░ рдХреЗ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг / ZI рдХреЗ рдмрдЬрд╛рдп / Zi рдХреЗ рдмрд╛рдж рднреА рд▓рд╛рд╢ рдХреЛ рдЦрд╛рдпрд╛ред "рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ред")
рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдмреЗрдВрдЪрдорд╛рд░реНрдХред рдФрд░ рддреНрд╡рд░рд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧред