Автор Тема: Расширенный тест на производительность.  (Прочитано 105886 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #75 : Декабрь 02, 2016, 08:54:19 pm »
А вот какие типы там есть: http://nongnu.org/gm2/type_compatibility.html
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #76 : Декабрь 02, 2016, 09:09:43 pm »
Modula-3 компилятор (64битный) тоже похоже будет работать. В общем, будут желающие на модулу - уточняйте что именно вам нужно.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #77 : Декабрь 02, 2016, 11:39:58 pm »
Между тем, появилось решение использующее вот этот компилятор (компилирует в Си, насколько я понимаю): https://github.com/ComdivByZero/vostok
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #78 : Декабрь 03, 2016, 12:13:49 am »
Новое решение работает корректно на всех размерах кроме 4Гб.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #79 : Декабрь 03, 2016, 02:28:48 pm »
Теперь тестовые прогоны делаются на сервере. Результаты в абсолютных величинах могут измениться (и изменятся).
Y = λf.(λx.f (x x)) (λx.f (x x))

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #80 : Декабрь 03, 2016, 03:15:16 pm »
Поскольку из результатов прогона исчезли действительно большие файлы (временно или навсегда?), стало интересно самому сравнить решения на своей системе именно для больших файлов, благо у меня тоже стоит SSD. Для автоматизации были написаны скрипты:

загрузка тестов:
git clone https://github.com/valexey/bigbench.git
cd bigbench
D=( comdiv/hardcore elena/files_merge elena/linux_mmap vlad/fast vlad/simple )
cd comdiv; make; mv vostok ../../; cd ..
for i in ${D[*]}
do
cd $i
./build.sh
cd ../..
done

создание input:
time dd if=/dev/urandom of=input bs=1M count=2048

прогон тестов:
D=( comdiv/hardcore elena/files_merge elena/linux_mmap vlad/fast vlad/simple )
for i in ${D[*]}
do
echo $i
time bigbench/$i/sort
md5sum output > `basename $i`.md5
echo -n "md5sum = "; cat `basename $i`.md5
rm -rf output swap.* *.TMP temp[12] output.temp
echo; echo
done

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #81 : Декабрь 03, 2016, 03:21:09 pm »
Результат прогонов для 2-х гигабайтного входного файла
comdiv/hardcore
real 0m36.022s
output md5sum = fa1637b627029ab0566230d3ef11ac1e  output

elena/files_merge
real 5m4.276s
output md5sum = fa1637b627029ab0566230d3ef11ac1e  output

elena/linux_mmap
real 1m19.969s
output md5sum = fa1637b627029ab0566230d3ef11ac1e  output

vlad/fast
real 1m37.925s
output md5sum = fa1637b627029ab0566230d3ef11ac1e  output

vlad/simple
real 4m43.026s
output md5sum = fa1637b627029ab0566230d3ef11ac1e  output
elena/files_merge работает вроде бы медленно, но на самом деле весьма хорошо, потому что потребляет мизер памяти.
elena/linux_mmap работает быстро, но без искусственных ограничений отожрало 4гигабайта памяти

Отсеиваем медленные и прожорливые решения и делаем 2-й прогон:
comdiv/hardcore
real 0m33.318s
md5sum = fa1637b627029ab0566230d3ef11ac1e  output

vlad/fast
real 1m13.470s
md5sum = fa1637b627029ab0566230d3ef11ac1e  output


valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #82 : Декабрь 03, 2016, 03:21:34 pm »
Поскольку из результатов прогона исчезли действительно большие файлы (временно или навсегда?), стало интересно самому сравнить решения на своей системе именно для больших файлов, благо у меня тоже стоит SSD.
Временно. Просто допиливал систему, переносил на сервер, тестировал - чтобы время не тратить, ограничил до 256 мб файлы.
Сейчас считается полный прогон.
Y = λf.(λx.f (x x)) (λx.f (x x))

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #83 : Декабрь 03, 2016, 03:25:52 pm »
Ага, временно - хорошо.

Создал 4-гигабайтный файл и сделал прогон для наиболее быстрых решений:
comdiv/hardcore
real 1m25.488s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

vlad/fast
real 4m9.742s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

Интересное кино получается

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #84 : Декабрь 03, 2016, 03:27:13 pm »
elena/linux_mmap работает быстро, но без искусственных ограничений отожрало 4гигабайта памяти
Адресного пространства. Практически доступное ОЗУ при этом система сама использует под кэш диска. Ну, т.е. такая масштабируемость штука идеальная на самом деле. В ход идёт всё что доступно. Другое дело что скорость не самая запредельная получается да и проблемы бывают на очень больших файлах. Плюс у измерялок памяти (чекающих сколько программа памяти отожрала) возникают проблемы - они не знают как тут что трактовать.

PS. И да, память я ограничиваю.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #85 : Декабрь 03, 2016, 03:28:52 pm »
Ага, временно - хорошо.

Создал 4-гигабайтный файл и сделал прогон для наиболее быстрых решений:
comdiv/hardcore
real 1m25.488s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

vlad/fast
real 4m9.742s
md5sum = e6d6ad0bad107695536bf8bef475f9eb  output

Интересное кино получается
Вероятно кино может от многого зависеть :-) Через часок прогон закончится, глянем результат с сервака. Подозреваю, что там результаты будут иные.
Y = λf.(λx.f (x x)) (λx.f (x x))

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #86 : Декабрь 03, 2016, 03:30:56 pm »
Для этого и были созданы скрипты, чтобы каждый мог проверить ещё и проверяющего

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #87 : Декабрь 03, 2016, 03:34:17 pm »
Практически доступное ОЗУ при этом система сама использует под кэш диска. Ну, т.е. такая масштабируемость штука идеальная на самом деле.
Не идеальная, потому что часто нужно ограничить ресурсы для конкретных программ, оставив их для более приоритетных.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #88 : Декабрь 03, 2016, 03:45:26 pm »
Практически доступное ОЗУ при этом система сама использует под кэш диска. Ну, т.е. такая масштабируемость штука идеальная на самом деле.
Не идеальная, потому что часто нужно ограничить ресурсы для конкретных программ, оставив их для более приоритетных.
Ну дык ограничь. Файловый кеш также можно ограничить как и всё остальное.
Y = λf.(λx.f (x x)) (λx.f (x x))

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #89 : Декабрь 03, 2016, 03:47:02 pm »
Для конкретной программы? Тогда - да.