FPC VS DCC32

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: FPC VS DCC32

Сообщение sign » 01.09.2014 08:46:02

Написал указанный выше тест.
У меня так:
а) заполнение массива строками с вызовом IntToStr(i):
- lazarus - 4063 мс;
б) холостой проход по циклу через for:
- lazarus - 31 мс;
в) заполнение массива пустыми строками:
- lazarus - 672 мс;

Накидал функцию преобразования int32 в строку (методом div) и получил
г) Заполнение массива строками с вызовом самопальной функции MyToStr(i)
- lazarus - 2328

Кстати, если преобразование оформить не функцией, а процедурой
Код: Выделить всё
for i := 0 to SIZE_TST_ARRAY - 1 do
      MyToStr(i, mas[i]);

то получаем
г) Заполнение массива строками с вызовом самопальной процедурой MyToStr(i, Res)
- lazarus - 1718
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: FPC VS DCC32

Сообщение pupsik » 01.09.2014 17:32:19

хмм. весьма интересно:

взял для теста функцию номер один :). В результате 3238,
убрав лишний "проход", получил 2449...

отсюда вывод: то что удобно (знакомо и т.д.), не есть всегда быстро....


в результате функция стала:

Код: Выделить всё
var
   i: int32;
   ms: DWORD;
   s : string;
begin
  ms := GetTickCount;
  for i := 0 to SIZE_TST_ARRAY - 1 do
      System.Str(i, mas[i]);
  System.Str(GetTickCount - ms, s);
  lblResult1.Caption := s;


Добавлено спустя 1 час 32 минуты 4 секунды:
а используя while ... do begin получился результат 1700 - 1800...

Есть нюанс: все тесты в лине... По практике, в винде должно быть быстрее.

Как в дельфине будет не знаю и знать не желаю :twisted:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru