LINUX.ORG.RU
ФорумTalks

Общая производительность в Linux


0

0

Сразу прошу не забрасывать тапками.

Давно обратил внимание, что программы в Linux работают намного медленнее, чем в Windows, Mac OS X, FreeBSD. Примеров - масса, начиная от архиваторов и заканчивая проигрыванием FullHD в одних и тех же плеерах одних и тех же версий с отключенным аппаратным ускорением. Но вот чтобы не быть голословным, конкретные цифры. Померил в разных системах с помощью одной и той же версии архиватора 7zip командой «7za b». Получил такие результаты:

Linux - 2400 попугаев Windows - 3600 Mac OS X - 3300 FreeBSD - 2900

Удивительно, поразительно, но факт. Проверял несколько раз на только что загруженных системах, никаких задач больше на машинах не крутилось (до запуска 7za top в Linux показывал 99.9 idle). Все системы 32 битные (Mac специально грузил с ключом 32 бита, в 64 - оно быстрее).

Результат меня шокировал. В чём тут дело? Ладно, Windows. Возможно, там компилировали в VC++ и код получился лучше. Но вот в Mac OS X и FreeBSD - откуда прирост? Ведь тот же gcc, притом, там из-за проблем с лицензией - более старый gcc, который делает «худший» код. Linux'ы пробовал разные: gentoo, arch, debian, ubuntu - результат везде идентичен, везде был включён режим performance.

И это просто конкретный пример. То же самое происходит с vlc под разными системами с выключенным аппаратным ускорением. В том же Mac OS X - чуть не в 2 раза быстрее работает, а в Linux видео 1280x720 - уже может тормозить с теми же самыми настройками vlc.

Известная ли это проблема? Или «что я делаю не так»? Откуда такая разница? Ядро? Библиотеки C (так с чего бы?)?


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

Попугаи в топике - с рабочей 8-ядерной машины, к которой нет сейчас доступа. А на домашней 2-ядерной я приводил выше, примерно тот же разрыв, что и у Вас.

maxkit
() автор топика
Ответ на: комментарий от megabaks

кстати - почему в лин версии есть «HugeFiles=on», а в вин нет?
и ведут тесты себя по-разному - сама отрисовка результатов

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

В случае icc разница заметна лишь в распаковке, и то...

Hokum ☆☆☆☆
()
Ответ на: комментарий от megabaks

Ещё раз перечитываем тот мой пост.
Долго думаем.

про латентность, скорость переключения планировщика

Как-бы пох на это всё, если только один процесс активен, не?

anon_666
()
C:\Program Files\7-Zip>7z.exe b

7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30

RAM size:     239 MB,  # CPU hardware threads:   1
RAM usage:    211 MB,  # Benchmark threads:      1

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

22:     756    99    739    735  |    11093   100   1001   1001
23:     712   100    725    725  |    10906   100   1000    998
24:     626    95    710    674  |     9483    90    974    880
----------------------------------------------------------------
Avr:           98    725    711                97    992    960
Tot:           97    858    835

===================================================================
CFLAGS="-s -Os -march=pentium4 -pipe -funroll-all-loops"

7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.CP1251,Utf16=on,HugeFiles=on,1 CPU)

RAM size:     233 MB,  # CPU hardware threads:   1
RAM usage:    211 MB,  # Benchmark threads:      1

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

22:     510    86    575    496  |     8074   100    728    729
23:     572    98    596    582  |     7973   100    729    730
24:     458    83    595    492  |     7358    94    725    682
----------------------------------------------------------------
Avr:           89    589    524                98    728    714
Tot:           93    658    619

===================================================================
CFLAGS="-s -g0 -O3 -pipe -march=native -mtune=native -fomit-frame-pointer --param l2-cache-size=256"

7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.CP1251,Utf16=on,HugeFiles=on,1 CPU)

RAM size:     233 MB,  # CPU hardware threads:   1
RAM usage:    211 MB,  # Benchmark threads:      1

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

22:     702   100    683    683  |     9281   100    837    838
23:     670   100    683    683  |     9139   100    836    836
24:     528    85    669    567  |     8562    96    831    794
----------------------------------------------------------------
Avr:           95    679    645                99    835    823
Tot:           97    757    734

#2 cli-only
7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.CP1251,Utf16=on,HugeFiles=on,1 CPU)

RAM size:     233 MB,  # CPU hardware threads:   1
RAM usage:    211 MB,  # Benchmark threads:      1

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

22:     710   100    690    690  |     9317   100    841    841
23:     693   100    706    706  |     9163   100    838    838
24:     650    99    702    699  |     9010   100    835    836
----------------------------------------------------------------
Avr:          100    699    698               100    838    838
Tot:          100    769    768

причем, в винде если через графику запускать, показатели другие будут

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

пока самый лучший результат

megabaks@desktop ~ $ 7za b

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

RAM size:    2025 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    3798   147   2513   3694  |    54491   190   2595   4920
23:    3879   156   2541   3953  |    53941   191   2591   4939
24:    3817   159   2585   4104  |    52822   189   2591   4901
25:    3766   162   2662   4300  |    51919   188   2598   4883
----------------------------------------------------------------
Avr:          156   2575   4013               189   2594   4911
Tot:          173   2585   4462
makefile.machine
#
# makefile for Linux (x86, PPC, alpha ...)
#

OPTFLAGS=-O2 -march=i686  --param l2-cache-size=3072 -pipe -g0 -Wno-all

ALLFLAGS=${OPTFLAGS} -pipe -m32 \
    	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
	-DNDEBUG -D_REENTRANT -DENV_UNIX \
	-D_7ZIP_LARGE_PAGES \
	$(LOCAL_FLAGS)

CXX=i686-pc-linux-gnu-g++ $(ALLFLAGS) -DHAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden
CC=i686-pc-linux-gnu-gcc $(ALLFLAGS)
CC_SHARED=-fPIC
LINK_SHARED=-fPIC -shared
ASM=nasm -f elf

PRE_COMPILED_HEADER=StdAfx.h.gch

LOCAL_LIBS=-lpthread
LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl

CPU=x86
OBJ_CRC32=$(OBJ_CRC32_x86)

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

> Простого юзверя не интересует статистика и репрезентативность. Он просто сел, посмотрел и сравнил.

Простому пользователю и тесты эти фиолетовы. Ему важно решение нужной задачи наиболее эффективным способом. Если при этом будет куча свисто-перделок, то это будет плюсом.

andreyu ★★★★★
()
Ответ на: комментарий от megabaks
megabaks@desktop ~ $ 7za b

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

RAM size:    2025 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    4091   156   2545   3980  |    53330   190   2533   4815
23:    4040   160   2572   4116  |    52711   190   2533   4826
24:    3921   161   2623   4216  |    52488   192   2535   4870
25:    3886   165   2696   4437  |    51203   190   2538   4816
----------------------------------------------------------------
Avr:          160   2609   4187               191   2535   4832
Tot:          176   2572   4510
#
# makefile for Linux (x86, PPC, alpha ...)
#

OPTFLAGS=-O3 -march=i686 -pipe -g0 -Wno-all

ALLFLAGS=${OPTFLAGS} -pipe -m32 \
    	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
	-DNDEBUG -D_REENTRANT -DENV_UNIX \
	-D_7ZIP_LARGE_PAGES \
	$(LOCAL_FLAGS)

CXX=i686-pc-linux-gnu-g++ $(ALLFLAGS) -DHAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden
CC=i686-pc-linux-gnu-gcc $(ALLFLAGS)
CC_SHARED=-fPIC
LINK_SHARED=-fPIC -shared
ASM=nasm -f elf

PRE_COMPILED_HEADER=StdAfx.h.gch

LOCAL_LIBS=-lpthread
LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl

CPU=x86
OBJ_CRC32=$(OBJ_CRC32_x86)
megabaks@desktop ~ $ wine /var/ftp/stuff/7za913/7za.exe b

7-Zip (A) 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

RAM size:    2025 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    4546   151   2932   4422  |    64174   189   3062   5794
23:    4414   153   2930   4498  |    62519   187   3064   5724
24:    4382   157   2992   4712  |    61834   188   3058   5738
25:    4303   160   3070   4913  |    60612   188   3032   5701
----------------------------------------------------------------
Avr:          155   2981   4636               188   3054   5739
Tot:          172   3018   5188

разрыв ~15%

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

причем, в винде

Вы там 7z запускали, а надо 7za. У меня есть разница, 7za - быстрее, т.к. там статически всё вкомпилено, вроде.

maxkit
() автор топика
Ответ на: комментарий от andreyu

Простому пользователю и тесты эти фиолетовы

Ну, как сказать. Например, запускает пользователь кино, а оно - slideshow рисует. Про аппаратные ускорения мы не говорим сейчас.

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

7z это «обёртка» для 7za, а разница будет даже при последующих запусках 7z.

и сравнение неадекватно, конечно. нужен кроссплатформенный тест-код на C, который потом собирается и запускается разными способами под нужными ОС на одной машине

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

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

А вообще вся эта котовасия к топику отношения не имеет, так как субъективно оценивать скорость ОС по архиватору нереально

Hokum ☆☆☆☆
()

Пацаны как запускать эти тесты в винде и маке?

В уже линуксе запустил:

7-Zip 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.utf8,Utf16=on,HugeFiles=on,2 CPUs)

RAM size:    2999 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    3073   140   2129   2990  |    40230   174   2090   3632
23:    3209   148   2213   3270  |    37475   164   2086   3431
24:    3421   167   2202   3678  |    44218   196   2096   4103
25:    3326   169   2243   3797  |    43441   196   2084   4086
----------------------------------------------------------------
Avr:          156   2197   3434               182   2089   3813
Tot:          169   2143   3623

Обязуюсь запустить на том же железе в маке и винде.

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

А вот тут 7za b

7-Zip (A) 9.04 beta  Copyright (c) 1999-2009 Igor Pavlov  2009-05-30
p7zip Version 9.04 (locale=ru_RU.utf8,Utf16=on,HugeFiles=on,2 CPUs)

RAM size:    2999 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    3343   154   2118   3252  |    45511   195   2103   4109
23:    3219   154   2124   3280  |    44461   193   2106   4071
24:    3425   168   2196   3683  |    44003   195   2093   4083
25:    3375   172   2244   3854  |    43944   197   2098   4133
----------------------------------------------------------------
Avr:          162   2171   3517               195   2100   4099
Tot:          178   2135   3808
Absolute_Unix
()
Ответ на: комментарий от Hokum

А вообще вся эта котовасия к топику отношения не имеет, так как субъективно оценивать скорость ОС по архиватору нереально

Очень даже имеет. Речь ведь не о том, что «в Linux всё тормозит и вообще плохо, выпустите меня отсюда», я давно в сообществе, притом, по собственной воле, правда, больше в BSD. Но понять природу некоторых явлений - хочется.

Скажем, есть примеры видео в HD, которые в плейере VLC, даже с отключенным выводом на экран (чтобы не вмешивать графические драйверы) в Windows съедает 45%, а в Linux - оба ядра на 100% загружены. При тех же настройках декодера. И таких примеров - масса. Ничего плохого в том, чтобы работать в направлении улучшения производительности - не вижу.

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

Вот еще вброс:

linux host: $ dd if=/dev/zero of=./file.2G bs=64k count=32768 
32768+0 records in 
32768+0 records out 
2147483648 bytes (2.1 GB) copied, 34.6085 s, 62.1 MB/s 
 
 
linux guest: $ dd if=/dev/zero of=/tmp/file.2G bs=64k count=32768 
32768+0 records in 
32768+0 records out 
2147483648 bytes (2.1 GB) copied, 50.8771 s, 42.2 MB/s

P.S. kvm + lvm2

Винда в том же kvm с диском на lvm2

C:\>C:\usr\local\bin\date.exe 
Wed Aug 25 09:22:11  2010 
 
C:\>dd2.exe if=/dev/zero of=file.1G bs=64k count=16384 
rawwrite dd for windows version 0.6beta3. 
Written by John Newbigin <jn@it.swin.edu.au> 
This program is covered by terms of the GPL Version 2. 
 
16384+0 records in 
16384+0 records out 
 
C:\>C:\usr\local\bin\date.exe 
Wed Aug 25 09:22:51  2010 
 
 
 
C:\>bc -l 
1024/40 
25.60 MB/s
sdio ★★★★★
()
Ответ на: комментарий от Absolute_Unix

Пацаны как запускать эти тесты в винде и маке?

Точно так же: 7za b

Обязуюсь запустить на том же железе в маке и винде.

А в первой таблице у Вас что? А то я не пойму, чем отличаются условия запуска в первой таблице и во второй, хоть результаты немного разные.

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

Проблема в том, что ваши цифры не повторяются, а субъективные наблюдения не разделяются многими здесь. Отчего интересно?

Hokum ☆☆☆☆
()
Ответ на: комментарий от maxkit

>Точно так же: 7za b

Ага ясно.

А в первой таблице у Вас что? А то я не пойму, чем отличаются условия запуска в первой таблице и во второй, хоть результаты немного разные.

В первой 7z b

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

Проблема в том, что ваши цифры не повторяются, а субъективные наблюдения не разделяются многими здесь. Отчего интересно?

Как же не повторяются, если у всех в Linux на 20% медленнее. Какова природа этого явления - уже другой вопрос.

maxkit
() автор топика
Ответ на: комментарий от megabaks

Так представьте, если это всё по-человечески допилить, это ж на Марсе будут яблони цвести.

maxkit
() автор топика
Ответ на: комментарий от maxkit
megabaks@desktop ~ $ 7za b

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

RAM size:    2025 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

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

22:    4512   158   2771   4389

Decoding Error
megabaks ★★★★
()
Ответ на: комментарий от eugene2k

>Лучше собери из исходников одним и тем же компилятором на всех ОСях с одинаковыми опциями.

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

xtron
()

Windows Seven x64 :

7-Zip [64] 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

RAM size:    2944 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:    5219   288   1763   5077  |    75174   350   1936   6782
23:    5190   298   1774   5288  |    75493   355   1946   6908
24:    4639   283   1760   4987  |    74865   362   1919   6945
25:    4976   314   1808   5682  |    74717   370   1900   7026
----------------------------------------------------------------
Avr:          296   1776   5259               359   1925   6915
Tot:          328   1851   6087

Gentoo ~amd64 (2.6.35.1-zen (BFS+SLUB) + gcc 4.6.0 nightly)

7-Zip (A) [64] 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15
p7zip Version 9.13 (locale=C,Utf16=off,HugeFiles=on,4 CPUs)

RAM size:    2944 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:    5168   304   1651   5027  |    75159   364   1862   6781
23:    5134   309   1690   5231  |    74058   367   1845   6777
24:    5052   318   1709   5432  |    73553   370   1846   6824
25:    4892   324   1725   5585  |    74040   372   1872   6962
----------------------------------------------------------------
Avr:          314   1694   5319               368   1856   6836
Tot:          341   1775   6077

Числодробильная разница в пределах погрешности. ЧЯДНТ?

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

>и сравнение неадекватно, конечно. нужен кроссплатформенный тест-код на C, который потом собирается и запускается разными способами под нужными ОС на одной машине

во-во

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

И на генте через 7z:

7-Zip [64] 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15
p7zip Version 9.13 (locale=C,Utf16=off,HugeFiles=on,4 CPUs)

RAM size:    2944 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:    5272   305   1679   5129  |    76352   369   1867   6888
23:    5095   308   1687   5191  |    75542   369   1874   6912
24:    4903   316   1666   5272  |    74387   369   1872   6901
25:    4857   324   1714   5545  |    73066   369   1862   6871
----------------------------------------------------------------
Avr:          313   1686   5284               369   1869   6893
Tot:          341   1777   6089
devl547 ★★★★★
()
Ответ на: комментарий от maxkit

>И не ломается гента? Или у Вас он не компилятор по умолчанию?

Нет, не ломается (по крайней мере не вся).
Он как основной + 4.4.4 для того, что не собралось.

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

ну я тут пообщался...в общем зависит от версий и того и другого
т.е. либо 9.04(p7zip) либо 9.13 но только с 9-кой icc
а у меня 9.13 + 11* :)

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

CFLAGS="-march=native -O2 -falign-functions=0 -falign-jumps=0 -falign-labels=0 -pipe -g0 -s -Wno-all --param l2-cache-size=256"

native тут - это core2+sse4.2, но векторизации нет.

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