![]() |
#15 |
Участник
|
На досуге (сижу в субботу на работе) решил добить до конца тестирование скорости выполнения различных операций вставки значений в контейнер.
Вот 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 } ![]() Сейчас код уже подправил. Спасибо glibs за наводку и продолжение тестирования. Итак, как видно из обновленных результатов - предложенный мной выше вариант намного лучше всех остальных. Исходя также из результатов, полученных glibs, использования Foundation Classes дает очень неплохие результаты. Вот результаты, которые я получил на своей системе: Последний раз редактировалось kashperuk; 12.08.2007 в 16:51. Причина: ошибочка, блин :) |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
|
|