BOOST::lexical_cast, .NET short.Parse и производительность..
От: Denis2005 Россия  
Дата: 11.11.06 16:56
Оценка:
Кхм... Опять смущает производительность библиотеки 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.