Russian Qt Forum
Май 05, 2024, 21:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сравнение компиляторов по скорости выполнения программы  (Прочитано 8105 раз)
Cyrax
Гость
« : Октябрь 26, 2006, 18:00 »

Хочу сравнить скорость выполнения простенькой программы, освобождающей память, написанной на C++ и на C#. В С++-коде освобождаю сам, в C#-коде - мусорщик...
Для начала скомпилил (g++ -O3) код:
Код:

int main(void)
{ char *ptr;  
  for(int i=0; i++; i<1000)
  { for(int j=0; j++; j<100)
     ptr = new char[1024];  // 1Кб
     delete[] ptr;
  };
  return 0;
};

Получил 15451 байт.

Далее скомпилил в VS2005 код:
Код:

#include "stdafx.h"
int main(void)
{ char *ptr;  
  for(int i=0; i++; i<1000)
  { for(int j=0; j++; j<100)
     ptr = new char[1024];  // 1Кб
     delete[] ptr;
  };
  return 0;
};

Получил 5632 байта.
Это что, выходит в VS2005 компилятор втрое лучше оптимизирует код, чем g++ ?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Октябрь 26, 2006, 22:33 »

оптимизация и размер кода разные понятия!
после gcc к примеру используют программку strip
а во время компиляции VC что то типа /ref команды

оптимизация чаще оценивается на скорости! а не на выделении памяти!
Записан
Вудруф
Гость
« Ответ #2 : Октябрь 27, 2006, 07:06 »

Во-первых, я поменял местами сравнение и инкремент.

strip --strip-unneeded
В моём случае итоговый размер программы получился равен 44344 (21365 после strip).
Но! -o3 - это агрессивная оптимизация, помимо всего прочего, она может раскручивать циклы, что естественно приведёт к увеличению размера программы (но сократит время выполнения). Впрочем, в данном случае размер программы получается одинаковым.

И ещё - не надо гнаться за размером. Это не показатель.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 22.