powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / О применимость языков
25 сообщений из 296, страница 8 из 12
О применимость языков
    #39040585
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А. Прошу прщения. В SciMark есть сишная имплементация LU, FFT e.t.c. По тексту репорта совершенно было неочевидно.
...
Рейтинг: 0 / 0
О применимость языков
    #39040739
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглСтарые ссылки:
http://www.sql.ru/forum/412782-1/benchmarki-c-c-java-delphi
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
> lzma b
LZMA 15.06 beta : Igor Pavlov : Public domain : 2015-08-09
AMD Athlon(tm) II X2 250 Processor (100F63)
CPU Freq:  4266  2000  4266  4000  2723  2752  3282  2985  2981
RAM size:    4095 MB,  # CPU hardware threads:   2
RAM usage:    425 MB,  # Benchmark threads:      2

                       Compressing  |                  Decompressing
...
----------------------------------  | ------------------------------
Avr:             174   2591   4499  |              195   2881   5625

> java -showversion SevenZip.LzmaAlone b
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

LZMA (Java) 4.61  2008-11-23
       Compressing                Decompressing
...
---------------------------------------------------
  1456 KB/s    1715 MIPS      19893 KB/s    1954 MIPS    Average
Типа, це-код рвёт жабный, как тузик грелку.
Но есть нестыковка: ява-код не обновлялся с версии 4.61 (ноябрь 2008) и он однопоточный, а ядер у моего проца два и lzma.exe честно грузит оба.
Я считаю, что
-если размер обрабатываемых данных в памяти существенно больше кода в памяти, то на сваппинг можно забить
-в остальных случаях - объем кода имеет значение в двух больных местах - вымывании кэша процессоров и page faultsВы уже профилировили "пофигу что" или ваше утверждение следует из общей эрудиции и банальной логики?
Я, например, знаю пример, когда желание экомонить ресурсы (отложенная инициализация) создало вполне реальные проблемы.
Более того, я знаю , что это была экономия на спичечных опилках.
-на разных задачах сравнить футпринт размещения на диске и в оперативной памяти всего фреймворка.
-оценить, насколько в системах с ВМ, повторно используется код фреймворка в памяти. Т.к.возможность динамического изменения кода может потребовать своей копии каждой задаче.
-засечь page faults при различных задачах (разнообразное использование фреймворка.vs.много обрабатываемых данных) по мере занятости памяти системы"Код, сестра! Код!"
...
Рейтинг: 0 / 0
О применимость языков
    #39040753
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, можешь подчеркнуть цифры которые сравниваешь. Ни пса нипонятно в этом отчете.
...
Рейтинг: 0 / 0
О применимость языков
    #39040786
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, у Це-кода - ~2600Mips против 1700 и (пропало в трёх точках) ~2600 КiB /s против 1450 KB /s на упаковке.
На распаковке проигрыш примерно втрое по КБ/сек.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
> lzma b

LZMA 15.06 beta : Igor Pavlov : Public domain : 2015-08-09

AMD Athlon(tm) II X2 250 Processor (100F63)
CPU Freq:  4266  2000  4266  4000  2723  2752  3282  2985  2981

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

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

22:       4409   171   2506   4289  |      67426   199   2910   5797
23:       4338   173   2556   4420  |      65136   195   2918   5679
24:       4184   176   2553   4499  |      61791   194   2818   5460
25:       4192   174   2749   4787  |      62122   193   2878   5564
----------------------------------  | ------------------------------
Avr:             174   2591   4499  |              195   2881   5625
Tot:             184   2736   5062



> java -showversion SevenZip.LzmaAlone b
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)


LZMA (Java) 4.61  2008-11-23


       Compressing                Decompressing

   741 KB/s     873 MIPS      13837 KB/s    1359 MIPS
  1599 KB/s    1884 MIPS      20277 KB/s    1992 MIPS
  1621 KB/s    1909 MIPS      21787 KB/s    2140 MIPS
  1640 KB/s    1932 MIPS      21903 KB/s    2152 MIPS
  1640 KB/s    1932 MIPS      20177 KB/s    1982 MIPS
  1620 KB/s    1907 MIPS      21903 KB/s    2152 MIPS
  1640 KB/s    1932 MIPS      20177 KB/s    1982 MIPS
  1640 KB/s    1932 MIPS      21903 KB/s    2152 MIPS
  1640 KB/s    1932 MIPS      20177 KB/s    1982 MIPS
  1640 KB/s    1932 MIPS      20177 KB/s    1982 MIPS
---------------------------------------------------
  1456 KB/s    1715 MIPS      19893 KB/s    1954 MIPS    Average
...
Рейтинг: 0 / 0
О применимость языков
    #39040820
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНо есть нестыковка: ява-код не обновлялся с версии 4.61 (ноябрь 2008) и он однопоточный, а ядер у моего проца два и lzma.exe честно грузит оба.
Для чистоты эксперимента надо ампутировать одно ядро :)
В 7-ке вызвать msconfig, вкладка "Загрузка", кнопка "Дополнительно"
...
Рейтинг: 0 / 0
О применимость языков
    #39040822
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, круть. Спасибо за тестинг.

Еще попробуй плиз выставить ключик -XX:CompileThreshold=1.
(со ссылкой на http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html)

Спасибо.
...
Рейтинг: 0 / 0
О применимость языков
    #39040833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TBasil A. SidorovНо есть нестыковка: ява-код не обновлялся с версии 4.61 (ноябрь 2008) и он однопоточный, а ядер у моего проца два и lzma.exe честно грузит оба.
Для чистоты эксперимента надо ампутировать одно ядро :)
В 7-ке вызвать msconfig, вкладка "Загрузка", кнопка "Дополнительно"
Согласен. Ценное замечание. Я-бы еще поигрался с ключами

Код: plaintext
1.
start /NUMA ? /AFFINITY ? java .... 



Счастливые обладатели пингвина или чорта в кедах - тоже теоретически
имеют контроль над защёлкиванием процесса на ядрах но как это
сделать щас - не скажу. Не помню.
...
Рейтинг: 0 / 0
О применимость языков
    #39040837
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ задача упаковка/распаковка не совсем корректна для таких тестов. Она заточена под прямой доступ к памяти, т.е. изначально в пользу С/С++. Не удивлюсь что еще есть заточка на уровне проца, т.к. задача распространенная и ресурсоемкая, могли какие-нибудь команды для ускорения добавить.

Надо что-то что обычно решают на высокоуровневых языках.
...
Рейтинг: 0 / 0
О применимость языков
    #39040852
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то я из любопытства разбирал sun-вские пакеты zip/gzip/gif сжатия и дошёл
до того что их реализация Deflater сокрыта в виде native кода. Но я надеюсь что в данном
тесте это не так. В противном случае этот тест был-бы фикцией т.к не являлся-бы
pure-java.
...
Рейтинг: 0 / 0
О применимость языков
    #39040854
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕще попробуй плиз выставить ключик -XX:CompileThreshold=1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
> java -XX:CompileThreshold=1 SevenZip.LzmaAlone b

LZMA (Java) 4.61  2008-11-23


       Compressing                Decompressing

  1131 KB/s    1332 MIPS      13128 KB/s    1289 MIPS
  1601 KB/s    1885 MIPS      26256 KB/s    2579 MIPS
  1662 KB/s    1957 MIPS      23813 KB/s    2339 MIPS
  1682 KB/s    1981 MIPS      26256 KB/s    2579 MIPS
  1682 KB/s    1981 MIPS      26256 KB/s    2579 MIPS
  1662 KB/s    1957 MIPS      26256 KB/s    2579 MIPS
  1660 KB/s    1955 MIPS      26256 KB/s    2579 MIPS
  1662 KB/s    1957 MIPS      26256 KB/s    2579 MIPS
  1662 KB/s    1957 MIPS      23813 KB/s    2339 MIPS
  1660 KB/s    1955 MIPS      23953 KB/s    2353 MIPS
---------------------------------------------------
  1585 KB/s    1867 MIPS      23233 KB/s    2282 MIPS    Average[/quot]
Улучшается только первая итерация, но в нормальном тесте просто отбрасывают лучший и худший результат.
Серверная JVM и так достаточно агрессивна:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
SciMark 2.0a

Composite Score: 568.3506218310973
FFT (1048576): 66.55551614455881
SOR (1000x1000):   935.8544791529565
Monte Carlo : 424.90769440670203
Sparse matmult (N=100000, nz=1000000): 634.2520724473486
LU (1000x1000): 780.1833470039207

java.vendor: Oracle Corporation
java.version: 1.8.0_45
os.arch: amd64
os.name: Windows 7
os.version: 6.1

SciMark 2.0a

Composite Score: 561.6350935539
FFT (1048576): 72.16917306462969
SOR (1000x1000):   944.7948166789479
Monte Carlo : 412.18495821043985
Sparse matmult (N=100000, nz=1000000): 619.292424683843
LU (1000x1000): 759.7340951316397

java.vendor: Oracle Corporation
java.version: 1.8.0_45
os.arch: x86
os.name: Windows 7
os.version: 6.1

SciMark 2.0a

Composite Score: 547.9017122140733
FFT (1048576): 72.56086544151044
SOR (1000x1000):   940.1591993585062
Monte Carlo : 397.97696153370623
Sparse matmult (N=100000, nz=1000000): 610.6141753418613
LU (1000x1000): 718.1973593947819

java.vendor: Oracle Corporation
java.version: 1.8.0_45
os.arch: x86
os.name: Windows 7
os.version: 6.1
...
Рейтинг: 0 / 0
О применимость языков
    #39040855
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Dima TИМХУ задача упаковка/распаковка не совсем корректна для таких тестов. Она заточена под прямой доступ к памяти, т.е. изначально в пользу С/С++. Не удивлюсь что еще есть заточка на уровне проца, т.к. задача распространенная и ресурсоемкая, могли какие-нибудь команды для ускорения добавить.


А лучше всего под такие задачи на OpenCL писать. Если графическая карточка в компе имеется. )
...
Рейтинг: 0 / 0
О применимость языков
    #39040859
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далеко не все GPU-вычисления "лучше": как только требуется доставить до видимокарты (много) исходных данных и забрать (большой) результат - всё резко плохеет.
...
Рейтинг: 0 / 0
О применимость языков
    #39040866
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GPU-вычисления так и останутся в сегменте невостребованного. Там где нужна широкая
шина взаимодействия с I/O и портами будет неизбежный провал. Архитектура такова ибо.

Ковыряние bitcoin-ов это другое дело. Но как часто нам по жизни оно надо? У меня вот
узкое место - это собственно процесс компилляции проекта. Уж чего только не придумывал.
Почти принципиально неоптимизируемый процесс. Можно только структуру проекта
побить на модули разве что.
...
Рейтинг: 0 / 0
О применимость языков
    #39040909
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
maytonGPU-вычисления так и останутся в сегменте невостребованного.


Как раз Ваша идея о проверке производительности CPU с помощью алгоритма рендеринга 3D-графики - классический пример востребованности. )
Работа с графикой и видео - туда же.
Проекты Folding@home и Rosetta@home убедительно доказали, что перенос части расчета на GPU дает колоссальный выигрыш и в научных вычислениях.
...
Рейтинг: 0 / 0
О применимость языков
    #39040912
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxmaytonGPU-вычисления так и останутся в сегменте невостребованного.


Как раз Ваша идея о проверке производительности CPU с помощью алгоритма рендеринга 3D-графики - классический пример востребованности. )
Работа с графикой и видео - туда же.
Проекты Folding@home и Rosetta@home убедительно доказали, что перенос части расчета на GPU дает колоссальный выигрыш и в научных вычислениях.
Я-же говорил что я не претендую на ПРАВИЛЬНОСТЬ обоснования задачи.
Предложите ваши варианты. Должны быть охвачены сегменты CPU/Memory/IO.
По отдельности.
...
Рейтинг: 0 / 0
О применимость языков
    #39040915
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
maytonЯ-же говорил что я не претендую на ПРАВИЛЬНОСТЬ обоснования задачи.
Предложите ваши варианты. Должны быть охвачены сегменты CPU/Memory/IO.
По отдельности.

Ничего против Вашей задачи я не имею. То, что она идеально ложится на связку CPU+GPU не означает, что она не подходит для сравнения языков по CPU. Впрочем, я о классе задач, возможно предложенный Вами вариант на GPU и не ложится. Нужно смотреть детально алгоритм.
...
Рейтинг: 0 / 0
О применимость языков
    #39040922
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходник на сях уже готов. Возможно сегодня опубликую отдельным топиком. Осталось портировать его
на Java/C#/Python.
...
Рейтинг: 0 / 0
О применимость языков
    #39040923
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если развести философию по теме, то С/С++ такой же фрэймворк/виртуальная машина над ассемблером, как и другие языки. Только наиболее близко опущенный до уровня асма. У каждого проца есть свои плюсы и минусы, но в связи с тем что даже x86/x64 процов целый зоопарк (Intel на каждом шаге добавляет новые команды и оптимизирует старые), то уже никто не заморачивается на подгонку софта под проц. Заметил когда баловался расчетом простых чисел , небольшая подстройка алгоритма меняет скорость работы в разы на одном компе и почти не влияет на другом. Т.е. идеал - подстройка асм-кода под конкретный проц, т.е. учесть имеющийся набор команд, размер кэшей и т.д. Уверен что есть куча рекомендаций от производителей процов по этому поводу, но т.к. писать под весь зоопарк на асме задача неподъемная (большинству), то был придуман С (точнее он был придуман в эпоху предыдущего зоопарка, но не суть). Благодаря его широкому распространению выгодно дорабатывать компиляторы, поэтому тот же самый код собранный более свежим компилятором работает быстрее. На 100% уверен что EXE после современного компилятора не заработает на первом 32-битном проце Intel 386. Более того, пытаясь поставить линукс на не столь старый ноут с Pentium M, удивился что он не встает, т.к. там нет какого-то поднабора команд для работы с большими наборами памяти, интел тогда счел их ненужными для ноутов.

Выше приведенный аргумент что виртуальные машины/интерпретаторы/jit-компиляторы написаны на С/С++ не выдерживает никакой критики. А чего не на асме с учетом особенностей конкретного проца? Может было бы быстрее на 10-200%.

Тесты производительности тоже ниочем. Ну получили производительность в 2-3 раза быстрее, а завтра надо будет расшириться в 100 раз и все равно упремся в предел, что делать? Какая разница если предел есть? Не важно наступит он завтра или послезавтра, главное что наступит.

Поэтому пофиг на чем писать (задачи требующие реалтайм опускаем). Главное писать так чтобы при наступлении пределов был четкий план как их обойти. Вопрос ресурсов тут вторичный, т.е. сколько денег на железо потребуется. Но если это не прогнозировать, то в один прекрасный день наступит понимание что проблема усилением железа не решается и надо начинать разработку с нуля, а это на порядки больше денег.
...
Рейтинг: 0 / 0
О применимость языков
    #39040943
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TЕсли развести философию по теме, то С/С++ такой же фрэймворк/виртуальная машина над ассемблером, как и другие языки. Только наиболее близко опущенный до уровня асма. У каждого проца есть свои плюсы и минусы, но в связи с тем что даже x86/x64 процов целый зоопарк (Intel на каждом шаге добавляет новые команды и оптимизирует старые), то уже никто не заморачивается на подгонку софта под проц.
Если ты не в курсе, то ассемблер это не самый нижний уровень. Есть еще уровень внутреннего микрокода конкретного процессора. На нем надо писать.

Вообще то я писал, что реальная производительность сейчас упирается не в скорость вычислений (качество компилятора), а в размеры ресурсов для его обслуживания. Т.е. считаем вроде быстро, но следующий кусок кода приходится подгружать с другой планеты (диска).
...
Рейтинг: 0 / 0
О применимость языков
    #39040945
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглЕсли ты не в курсе, то ассемблер это не самый нижний уровень. Есть еще уровень внутреннего микрокода конкретного процессора. На нем надо писать.
Если честно - не в курсе. На асме писал 20 лет назад.

ЗимарглВообще то я писал, что реальная производительность сейчас упирается не в скорость вычислений (качество компилятора), а в размеры ресурсов для его обслуживания. Т.е. считаем вроде быстро, но следующий кусок кода приходится подгружать с другой планеты (диска).
Если мои выводы почитал, то понял бы что пофиг откуда последний кусок кода берется. В итоге такого "успешного" кода будет тупик требующий полной переписки кода. Еще раз: главное алгоритмы позволяющие масштабируемость, на чем они реализованы - вторично, т.е. пофиг на чем написано.
...
Рейтинг: 0 / 0
О применимость языков
    #39040993
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглЕсли ты не в курсе, то ассемблер это не самый нижний уровень. Есть еще уровень внутреннего микрокода конкретного процессора. На нем надо писать.
Если вы писали - то поделитесь полезными юзкейсами. Ту инфу которую я собирал по этому вопросу
можно количественно охарактеризовать как "ноль инфы". Всё недокументировано. Vendor-depends.
В некоторых форумах спецы по железу фиксили проблемы конкретных моделей или линеек накатывая
микрокод от производителя.
...
Рейтинг: 0 / 0
О применимость языков
    #39041073
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглЭто неверно. Проверяется следующим образом - щелкаем по интерфесу дНетовской софтинки и смотрим как меняется показатель "Ошибки страниц" в Диспетчере задач. Это подгрузка с диска интерфейсных классов.
Это верно при первом запуске. Пока они не попали в кэш диска ОС.
Включил комп. Запускаю MSSQL Managment Studio 2012 (.Net 4.0) Процесс ssms.exe: Хрустит винтом секунд 7-8, Ошибок страниц 38 000.
Закрываю. Запускаю снова, 1-2 секунды, ошибок страниц 39 000, винта не слышно.

Все потому что нужный код уже в кэше ОС. Формально ошибка страницы это когда код/данные отсутствуют в памяти процесса, а вот откуда они будут подгружаться - это данный параметр никак не учитывает. При достаточном количестве оперативки проблемы чтения с HDD неактуальна. Остается только проблема со скоростью записи.
...
Рейтинг: 0 / 0
О применимость языков
    #39041079
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C# пока только начинаю осваивать, поэтому знаю чуть-чуть теории и 0 практики.
Как понимаю основные тормоза при старте тяжелого приложения из-за JIT-компиляции, которая идет при каждом запуске. Но этого можно избежать если откомпилировать сборку заранее https://msdn.microsoft.com/ru-ru/library/6t9t5wcf(v=vs.110).aspx
Там правда как-то все мутно и не просто, но думаю если разобраться, то вполне применимо.
...
Рейтинг: 0 / 0
О применимость языков
    #39041113
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно встретил у Лафоре, но не уверен, актуальна ли эта фраза:
Robert Lafore OOP in C++ fourth editionOf the object-oriented programming languages, C++ is by far the most widely used. Java, a recent addition to the field of OO languages, lacks certain features-such as pointer, templates, and multiply inheritance - that make it less powerfull and versatile than C++.
...
Рейтинг: 0 / 0
О применимость языков
    #39041188
Cpt. Gray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryНедавно встретил у Лафоре, но не уверен, актуальна ли эта фраза:
Robert Lafore OOP in C++ fourth editionOf the object-oriented programming languages, C++ is by far the most widely used. Java, a recent addition to the field of OO languages, lacks certain features-such as pointer, templates, and multiply inheritance - that make it less powerfull and versatile than C++.
Роберту нужно было в начале предложения добавить "ИМХО"
Говорить, что Джава "слабее, из-за того, что в ней нет множественного наследования, указателей и шаблонов как-то уж очень холли варно..
...
Рейтинг: 0 / 0
25 сообщений из 296, страница 8 из 12
Форумы / Программирование [игнор отключен] [закрыт для гостей] / О применимость языков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]