LINUX.ORG.RU
ФорумTalks

MSVC vs. ICC vs. GCC - почему первый всех делает?


0

2

p7zip native, gcc 4.5.1 -march=native -O3

[user@localhost ~]$ 7z b

7-Zip 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15
p7zip Version 9.13 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

RAM size:    3659 MB,  # CPU hardware threads:   4
RAM usage:    850 MB,  # Benchmark threads:      4

Dict        Compressing          |        Decompressing
      Speed Usage    R/U Rating  |    Speed Usage    R/U Rating
       KB/s     %   MIPS   MIPS  |     KB/s     %   MIPS   MIPS

22:    6295   331   1852   6123  |    75520   392   1737   6813
23:    6382   346   1881   6503  |    74658   392   1743   6832
24:    6321   358   1899   6796  |    73610   390   1749   6829
25:    6082   360   1930   6944  |    72659   390   1753   6832
----------------------------------------------------------------
Avr:          348   1890   6592               391   1746   6827
Tot:          370   1818   6709

7z 9.15 under Wine 1.3.35:

[user@localhost ~]$ wine 7z.exe b

7-Zip 9.15 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-06-20

RAM size:    2047 MB,  # CPU hardware threads:   4
RAM usage:    850 MB,  # Benchmark threads:      4

Dict        Compressing          |        Decompressing
      Speed Usage    R/U Rating  |    Speed Usage    R/U Rating
       KB/s     %   MIPS   MIPS  |     KB/s     %   MIPS   MIPS

22:    7032   295   2319   6841  |   106827   391   2465   9638
23:    7062   306   2349   7195  |   103812   385   2470   9500
24:    6976   321   2337   7501  |   104299   393   2465   9676
25:    6830   333   2345   7799  |   102760   393   2460   9663
----------------------------------------------------------------
Avr:          314   2337   7334               390   2465   9619
Tot:          352   2401   8477

7z 9.15 native under Windows XP SP3:

7-Zip 9.15 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-06-20

RAM size:    2047 MB,  # CPU hardware threads:   4
RAM usage:    850 MB,  # Benchmark threads:      4

Dict        Compressing          |        Decompressing
      Speed Usage    R/U Rating  |    Speed Usage    R/U Rating
       KB/s     %   MIPS   MIPS  |     KB/s     %   MIPS   MIPS

22:    7395   318   2261   7194  |   109051   400   2460   9839
23:    7495   321   2382   7636  |   106873   399   2451   9780
24:    7414   326   2441   7971  |   105774   400   2453   9813
25:    7146   331   2468   8159  |   103761   396   2462   9757
----------------------------------------------------------------
Avr:          324   2388   7740               399   2456   9797
Tot:          361   2422   8769



Последнее исправление: tempuser002 (всего исправлений: 1)

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

Вы это серьёзно, или не выспались?

[kozi@zenbook shm]$ egrep '(mips|MHz)' /proc/cpuinfo 
cpu MHz		: 2100.000
bogomips	: 4201.72
[kozi@zenbook shm]$ xz -d <kernel26-2.6.35.7-1-x86_64.pkg.tar.xz |pipebench >/dev/null
Summary:                                                                       
Piped  113.04 MB in 00h00m03.45s:   32.75 MB/second
[kozi@zenbook shm]$ dd if=kernel26-2.6.35.7-1-x86_64.pkg.tar of=~/111
231520+0 записей считано
231520+0 записей написано
 скопировано 118538240 байт (119 MB), 0,998285 c, 119 MB/c
>это в 2 раза выше чем скорость записи на обычную флешку и близко к скорости записи на достаточно фрагментированную ФС
Бугога.
То, что у вас ~/ на флэшке/ужасно фрагментирован раздел/слишком маленький размер блока фс не значит, что у всех так же.
Кстати, это ноутбучный hdd+ext4 без журнала.

>все равно узким местом будет запись на диск
4.2

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

Если не верите - могу записать скринкаст этого безобразия.

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

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

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia
[kozi@zenbook ~]$ dd if=/dev/zero of=111 bs=1M count=2000
2000+0 записей считано
2000+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 27,4336 c, 76,4 MB/c

>кеш записи )
У меня всего-то 2G ram.
Или предлагаете монтировать фс с sync и перевести винт в udma1, чтобы подогнать результаты под ваши слова?

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

Piped 604.75 MB in 00h01m01.03s: 9.90 MB/second


скорость _чтения_ на ext3 (rw,relatime,errors=continue,data=writeback)

tar -c / | pipebench > /dev/null

много мелких файлов, я не думаю что скорость _записи_ будет выше чем скорость чтения, на этой же ФС, для этого же набора файлов.

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

Ок, при работе с мелкими файлами вылазит оверхед фс и постоянное перемещение головок диска.
Вот кэш пакетов(файлы от 1K до ~100M):

[kozi@zenbook ~]$ sync; echo 3 >/proc/sys/vm/drop_caches
[kozi@zenbook ~]$ tar -c /home/pkg/ |pipebench >/dev/null
tar: Удаляется начальный `/' из имен объектов
Summary:                                                                       
Piped    1.04 GB in 00h00m21.44s:   50.00 MB/second
>я не думаю что скорость _записи_ будет выше чем скорость чтения
Кэш же, не? Выше я не зря его сбросил.

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

Да, в случае с корнем, скорость будет никакая, из-за огромного числа мелких файлов.
tar будет больше проводить времени в fopen(), чем собственно считывать данные.
Тут вы правы, НО, не забываем про inode кэш - во второй раз скорость будет совсем другая.

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

>Я уже молчу, что 7z.exe запускается из-под Wine, что никак его не убыстряет.

Да ладно. Firefox под Wine часто работал много быстрее, чем под Linux нативный. Неужели его тоже в MSVC собирали?

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

его профилировали ) у меня с профилированием скорость получалась такая же (по peacekeeper) как и в wine у официального, а вот официальный линуксовый отставал на 20%

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

ps: p7zip профилировать особенно бесполезно, там (обычно) используется ассемблерный код собираемый nasm, поэтому с флагами колдунство может и не приносить проку... а еще я подумала что та версия где 30% у ТС разницы... она без asm , там сборка включается через makefile.machine

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

Да ладно. Firefox под Wine часто работал много быстрее, чем под Linux нативный. Неужели его тоже в MSVC собирали?

Почему бы и нет? :)

about:buildconfig для Firefox 3.6.10:

about:buildconfig

Source

Built from http://hg.mozilla.org/releases/mozilla-1.9.2/rev/16b7b02798df
Build platform
target
i686-pc-mingw32

Build tools
Compiler 	Version 	Compiler flags
cl 	14.00.50727.762 	-TC -nologo -W3 -Gy -Fdgenerated.pdb -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -GL -wd4624 -wd4952 -O1
cl 	14.00.50727.762 	-GR- -TP -nologo -Zc:wchar_t- -W3 -Gy -Fdgenerated.pdb -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -GL -wd4624 -wd4952 -O1

Configure arguments
--enable-application=browser --enable-update-channel=release --enable-update-packaging --enable-jemalloc --enable-official-branding --enable-tests 

Компилятор ... MSVC :)

Под Wine оно действительно быстрее нативного Firefox :)))))))

tempuser002
() автор топика

>gcc 4.5.1 -march=native -O3

-O3 генерирует говнокод как минимум на x86_64. Правда я смотрел на 4.4 ветке.

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

Для 7zip код получается быстрее - проверьте сами.

tempuser002
() автор топика
Ответ на: комментарий от tempuser002
Build platform
target
i686-pc-mingw32
Build tools
Compiler 	Version 	Compiler flags
d;D:\mozilla-build\msys\mozilla-build\python25\python2.5.exe -O e;D:\mozilla-build\msys\builds\moz2_slave\mozilla-central-win32-nightly\build\build\cl.py cl 	14.00.50727.762 	-TC -nologo -W3 -Gy -Fdgenerated.pdb -DNDEBUG -DTRIMMED -Zi -Zi -UDEBUG -DNDEBUG -GL -wd4624 -wd4952 -O1
d;D:\mozilla-build\msys\mozilla-build\python25\python2.5.exe -O e;D:\mozilla-build\msys\builds\moz2_slave\mozilla-central-win32-nightly\build\build\cl.py cl 	14.00.50727.762 	-GR- -TP -nologo -Zc:wchar_t- -W3 -Gy -Fdgenerated.pdb -wd4800 -DNDEBUG -DTRIMMED -Zi -Zi -UDEBUG -DNDEBUG -GL -wd4624 -wd4952 -O1
Configure arguments

--enable-application=browser --enable-update-channel=nightly --enable-update-packaging --enable-jemalloc --enable-tests

Собственно, поэтому и спрашиваю. Почти официальная сборка, но не представляю, что за компилятор.

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

ext2 неплоха, у меня портеж на ней живет... а вот что-то другое я на нежурналируемую ФС не хочу...

Sylvia ★★★★★
()
12 октября 2011 г.
Ответ на: комментарий от tensai_cirno

> но если реальная задача - дробить числа? :)))

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

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