Показать сообщение отдельно
Старый 11.08.2007, 19:34   #34  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
На досуге (сижу в субботу на работе) решил добить до конца тестирование скорости выполнения различных операций вставки значений в контейнер.

Вот Job, с помощью которого замерялась скорость выполнения.
X++:
#define.LoopCount(50000)
#LocalMacro.Start
    timeBefore = WinApi::getTickCount();
#EndMacro
#LocalMacro.Reset
    timeAfter = WinApi::getTickCount();
    info(num2str((timeAfter - timeBefore) /1000, 0, 4, 2, 0));
    con = conNull();
    len = 1;
#EndMacro

static void tutorial_SpeedTestContainerOperations(Args _args)
{
    container   con;
    int         i;
    int         len = 1;
    int         timeBefore;
    int         timeAfter;
    ;
    #Start
    for (i = 1; i < #LoopCount; i++)
        con += i;
    #Reset

    #Start
    for (i = 1; i < #LoopCount; i++)
        con = con + i;
    #Reset

    #Start
    for (i = 1; i < #LoopCount; i++)
        con = conIns(con, conLen(con)+1, i);
    #Reset

    #Start
    for (i = 1; i < #LoopCount; i++)
    {
        con = conIns(con, len, i);
        len++;
    }
    #Reset

    #Start
    for (i = 1; i < #LoopCount; i++)
        con = conPoke(con, conLen(con)+1, i);
    #Reset

    #Start
    for (i = 1; i < #LoopCount; i++)
    {
        con = conPoke(con, len, i);
        len++;
    }
    #Reset
}
P.S. Допустил ошибочку
Сейчас код уже подправил. Спасибо glibs за наводку и продолжение тестирования.
Итак, как видно из обновленных результатов - предложенный мной выше вариант намного лучше всех остальных.
Исходя также из результатов, полученных glibs, использования Foundation Classes дает очень неплохие результаты.

Вот результаты, которые я получил на своей системе:
Изображения
 

Последний раз редактировалось kashperuk; 12.08.2007 в 16:51. Причина: ошибочка, блин :)
За это сообщение автора поблагодарили: mazzy (5).