LINUX.ORG.RU

Сравнение производительности различных сборок OOo

 , ,


0

0

На сайте oooninja.com появилось занятное сравнение производительности различных сборок пакета OpenOffice под разные платформы:

  • Ubuntu Go-oo 3.0.0;
  • Ubuntu PPA: Неофициальная PPA-сборка OpenOffice.org 3.0.1 на основе Go-oo;
  • Ubuntu StarOffice 9;
  • Ubuntu Vanilla OpenOffice.org 3.0.1 (сборка http://www.openoffice.org);
  • Windows Vanilla 3.0.1 без Java;
  • Windows Portable: Компактная версия OpenOffice.org 3.0.1;
  • Windows StarOffice 9.

Результаты сравнения следующие:

  • В режиме холодного старта все тестируемые сборки шли «ноздря в ноздрю», с небольшим отрывом в лучшую сторону версии Ubuntu-PPA.
  • А в режиме горячего старта производительность всех трех представленных windows-сборок оказалась выше на 44%! Автор тестирования полагает, что такая несправедливость происходит из-за использования компилятора MSVС9, который в данном случае оказался эффективнее GCC, используемого в linux-сборках.

Ходит слух, что в следующей версии ООо 3.1 разработчики обещают множество полезных и приятных исправлений, положительно влияющих на производительность.

>>> Подробности



Проверено: svu ()
Ответ на: комментарий от Sylvia

>Silvy (*) (30.04.2009 16:26:47)

ну и что не так? у Вас процессор 1700 мгц -user 0m0.490s у меня 700 -user 0m1.088

почти пропорционально частоте и вышло

но все равно согласитесь - программу из одной строчки около секунды компилить слишком жирно

она должна обрабатываться сотые доли секунды а потеря во времени возникает из-за препроцессинга и обработки заново кода заголовков весом 800 кб

unkn55
()
Ответ на: комментарий от unkn55

мне кажется не показатель, там компиляция как таковая занимает меньше времени чем загрузка самого компилятора, заголовков и библиотек, ICC кстати по размеру несколько потолще, что кстати и сказалось на времени выполнения - на Хелло Ворлд он медленнее на 15-20% чем GCC , смешно тестировать компиляцию одной строчкой,

хотите сравнить скорость сборки С++ кода ?
можно взять aria2 например

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

aria2 1.3.2
SQLite3: yes
GnuTLS: yes
LibXML2: yes
Libz: yes
Epoll: yes
Bittorrent: yes
Metalink: yes

Core2 2000 Mhz / make -j3

GCC 4.3 -O0
real 0m48.629s
user 1m23.135s
sys 0m7.256s

GCC 4.3 -O3 -fomit-frame-pointer
real 1m38.132s
user 2m59.885s
sys 0m8.079s


ICC 10.1
fail to compile

ICC 11.0
fail to compile

что не дает сравнить скорость, но показывает явное преимущество GCC в сборке aria2, если что - предложите что-нибудь другое на С++

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>смешно тестировать компиляцию одной строчкой,

int main(){}

time g++ -O0 m.cc

real 0.358 user 0.220 sys 0.656

вот код без подключения заголовков -время в несколько раз меньше

а вот просто компиляция с препроцессингом без линковки:

без заголовков: $time g++ -c -O0 m1.cc

user 0.044

тот же код c заголовками: $time g++ -c -O0 m1.cc

user 0.900

что самое интересое-даже не на загрузку компилятора время тратится, а б0льшая часть времени именно на препроцессинг работа препроцессора плюс заново обрабтка кода заголовков компилятором

unkn55
()
Ответ на: комментарий от unkn55

загрузка компилятора видимо была в первом случае, когда время компиляции оказалось 5 секунд, либы видимо остаются в памяти- без повторной загрузки

unkn55
()
Ответ на: комментарий от unkn55

ну разве тест на таком коде это тест?

lzma-4.32.7 (LZMA SDK C++ , lzma-utils)

Core 2 2 Ghz / make -j1

GCC 4.3 -O0
real 0m3.005s
user 0m2.317s
sys 0m0.560s

GCC 4.3 -O3 -fomit-frame-pointer
real 0m7.533s
user 0m6.710s
sys 0m0.563s

ICC 10.1 -O0
real 0m3.566s
user 0m2.636s
sys 0m0.747s

ICC 10.1 -O3 -fomit-frame-pointer
real 0m5.924s
user 0m4.853s
sys 0m0.897s


да, результат с оптимизацией не в пользу GCC, и результат по скорости работы кода будет не в его пользу в данном случае тоже на ~5-7%

Тем не менее, без оптимизации скорость сборки у него быстрее чем у Intel C++
Ну и напомню о том что для *nix нет альтернатив в выборе компилятора, особенно свободного, ICC применим в бесплатном варианте лишь в дистрибутивах типа Gentoo (где пользователи сами собирают код на своих компьютерах) , либо допустим вариант приобретения коммерческой версии ICC для централизованной сборки пакетов, но это будет достаточно ограничивающая практика и дистрибутивы типа Debian на такое никогда например не пойдут точно.

PS: еще раз, прошу не делать больше тестов на коде из нескольких строчек, есть много свободного кода для тестов, многое вполне собирается различными компиляторами , а не только GCC

Sylvia ★★★★★
()
Ответ на: комментарий от unkn55

>либы видимо остаются в памяти- без повторной загрузки

кеш диска

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>PS: еще раз, прошу не делать больше тестов на коде из нескольких строчек

я просто специально сделал чтобы показать на что время тратится

unkn55
()
Ответ на: комментарий от unkn55

Вариант с pch
(libQtCore 4.5.1)

c++ v 4.3.3 -mmmx -msse2 -march=pentium4 -mtune=pentium4 -mfpmath=sse -g0 -O2 -fomit-frame-pointer -ftree-vectorize

real 0m29.826s
user 0m48.940s
sys 0m3.070s

тут pch не поддержался
ICC 10.1 -g0 -O2 -fomit-frame-pointer -xW
real 0m44.757s
user 1m14.405s
sys 0m6.636s


+ в пользу GCC

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

кстати, мне удалось сделать .gch файлы стандартных заголовков для g++,

стало работать сравнимо по скорости с вариантом без заголовков:

$time g++ -c m1.cc user 0.084

быстрее всего выходит если подключить все заголовки в отдельный файл и его преобразовать в gch, а как сделать чтобы автоматическое создание gch файла происходило(как pch в msvs) пока не разобрался

unkn55
()
Ответ на: комментарий от unkn55

>и вроде в gcc pch в стандартной сборке нет

чушь. от версии конечно зависит

euses pch
pch - Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only)

black7
()
Ответ на: комментарий от lester

>> пишут, что на плюсах без pch hello world компилится 5 минут

>правду пишут, иногда и 10-15 мин, и это еще на двухядернике


это если исключительно в полнолуние! нельзя забывать столь важные вещи!

black7
()
Ответ на: комментарий от Sylvia

>т.к. Линукс версия его бесплатна при некоммерческом использовании.

там разве не нужно регаться на офсайте чтоб получить временный ключ?

black7
()
Ответ на: комментарий от unkn55

>но все равно согласитесь - программу из одной строчки около секунды компилить слишком жирно

мде. вывод потрясающей глубины. а ты посчитал сколько там оно грузится все с диска? в сравнении с к примеру компиляцией kdelibs:4.2?

black7
()
Ответ на: комментарий от Sylvia

>смешно тестировать компиляцию одной строчкой,

вово. здравая мысля

>хотите сравнить скорость сборки С++ кода ?

>можно взять aria2 например


лучше конечно побольше. qt например. у них вроде бы был профиль для icc

black7
()
Ответ на: комментарий от black7

>>и вроде в gcc pch в стандартной сборке нет

>чушь. от версии конечно зависит >pch - Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only)

стандартно в gcc в последних версиях gch используется , pch - закрытый формат ms

unkn55
()
Ответ на: комментарий от black7

>мде. вывод потрясающей глубины. а ты посчитал сколько там оно грузится все с диска? в сравнении с к примеру компиляцией kdelibs:4.2?

всмысле, hello world или компилер?

подсчитал:))

unkn55
()
Ответ на: комментарий от unkn55

>компилер примерно 3 секунды грузился, время загрузки hello world точно змерить не удалось:)

знаешь я вот читаю Silvy не первый год и вижу что у нее этот интерес серъезен. тесты, цитирование, аналитика. а у тебя извини, каша какая то антинаучная. я не спец особо по компиляторам, потому самоустраняюсь

black7
()
Ответ на: комментарий от black7

я тоже не особо спец в некоторых вещах, просто разобраться хотелось

unkn55
()
Ответ на: комментарий от black7

>>т.к. Линукс версия его бесплатна при некоммерческом использовании.
>там разве не нужно регаться на офсайте чтоб получить временный ключ?


ключ кажется постоянный, т.е. no expire

а посещение оф.сайта обязательно, для того чтобы в Интеле были уверены что все пользователи ознакомлены с EULA, ну и для подсчета статистики. Тем не менее для некоммерческого использования оно пока доступно бесплатно, регистрация же денег не стоит...

Sylvia ★★★★★
()
Ответ на: комментарий от unkn55

для pch я специально взяла Qt , там все ставится системой конфигурирования и сборки проекта,

./configure ... -pch

для Intel это не поддерживается (во всяком случае у меня не захотело), только для GCC

Sylvia ★★★★★
()
Ответ на: комментарий от black7

>лучше конечно побольше. qt например. у них вроде бы был профиль для icc

я там выше как раз собрала libQtCore (тест в пользу GCC) , все qt мне собирать не хочется, но если серьезно тестировать - да, весьма хороший пакет кода.

Sylvia ★★★★★
()
Ответ на: комментарий от unkn55

>программу из одной строчки около секунды компилить слишком жирно

из этого не следует вывод что программу из 3600 строчек будет компилировать час
)

Sylvia ★★★★★
()
Ответ на: комментарий от unkn55

>>из этого не следует вывод что программу из 3600 строчек будет компилировать час

да, ну в gcc и с заголовками не проблема- можно прекомпилировать заголовочные файлы, подключаемые к программе- можно даже стандартные - iostream как я делал- после этого начинает нормально работать

ln -s iostream{,.h} 
g++ iostream.h 
mv iostream{.h,}.gch

получается gch-файл, компилятор использует его при возможности

unkn55
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.