Кхм... Опять смущает производительность библиотеки
BOOST.
Тест C++/BOOST:
#include <boost/lexical_cast.hpp>
#include <iostream>
int MyStrToShort(const char *cs)
{
int res = 0;
for(int i = 0; i < 10000000; i++)
res += lexical_cast<short>(cs);
return res;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout << MyStrToShort("123");
return 0;
}
Компилятор: MS VC8.0.50727.42
Опции:
/Ox /Oy /I "C:\WORK\boost_1_32_0\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D
"_VC80_UPGRADE=0x0700" /D "_MBCS" /FD /EHsc /MT /GS- /Gy /Za /Yu"stdafx.h"
/Fp"Release\aaa.pch" /FA /Fa"Release\\" /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c
/Wp64 /Zi /TP /errorReport:prompt
/D_SECURE_SCL=0
Время работы: ~35 сек.
Тест .NET (c#):
using System;
static int MyStrToShort(string cs)
{
int res = 0;
for(int i = 0; i < 10000000; i++)
res += short.Parse(cs);
return res;
}
static void Main(string[] args)
{
Console.WriteLine( MyStrToShort("123") );
}
Опции: Release
Время работы: ~2 сек (без учета JIT-компиляции).
Я уж тут подумал на кривизну рук, но..., прошу объяснить где кривые руки в использовании boost::lexical_cast?
Раньше я пользовался C++/STL для того, чтобы обогнать .NET и прочее.
теперь, я пользуюсь .NET, чтобы обогнать C++/BOOST.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>