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

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #15 : Ноябрь 29, 2016, 05:55:13 pm »
А что, файлы предполагаются многогигабватными? Ну, можно на вторую наминацию и не претендовать. А банальный mmap+qsort трудно будет переплюнуть.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #16 : Ноябрь 29, 2016, 06:00:21 pm »
А что, файлы предполагаются многогигабватными? Ну, можно на вторую наминацию и не претендовать. А банальный mmap+qsort трудно будет переплюнуть.
Файлы могут быть в несколько гигабайт, да. Большой файл это большой файл. Сейчас файлом в 300 Мб никого не удивишь :-)

PS. Я далеко не уверен, что mmap + qsort будет работать быстро и уложится в требования.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #17 : Ноябрь 29, 2016, 06:21:07 pm »
Т.е. тут у нас примерно как в жизни - мутненькое ТЗ.
Да просто тебе лень полноценное ТЗ составить, а потом ещё на Вирта бочку катишь из-за его 17 страниц ))
На самом деле эта задача есть уточненное и конкретизированное тестовое задание в одну компанию. В оригинале требования ещё более мутные были :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #18 : Ноябрь 30, 2016, 07:26:39 am »
А что, файлы предполагаются многогигабватными? Ну, можно на вторую наминацию и не претендовать. А банальный mmap+qsort трудно будет переплюнуть.

mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #19 : Ноябрь 30, 2016, 07:36:06 am »
Машина little-endian?
Куда класть исходник?

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #20 : Ноябрь 30, 2016, 09:13:00 am »
mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).
Не противоречит. Нужна ведь не память, а адресное пространство.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #21 : Ноябрь 30, 2016, 12:49:05 pm »
mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).
Не противоречит. Нужна ведь не память, а адресное пространство.

Да. Ладно, пусть valexey прояснит. Но я подозреваю, что оно все равно быстро не будет. Если только в частном случае - когда памяти в ОС реально дофига (под файловый кэш), а задче искуственно выставлено ограничение в размере хипа.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #22 : Ноябрь 30, 2016, 01:05:03 pm »
mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).
Не противоречит. Нужна ведь не память, а адресное пространство.

Да. Ладно, пусть valexey прояснит. Но я подозреваю, что оно все равно быстро не будет. Если только в частном случае - когда памяти в ОС реально дофига (под файловый кэш), а задче искуственно выставлено ограничение в размере хипа.
Проверить можно экспериментально :-) А так - использовать mmap/CreateFileMapping/etc можно. Обломится - ваши проблемы.

Моя имха на эту тему - на 32битной машине под файло не всегда адресного пространства хватит. На 64битной машине - должно хватить (кстати, реальное адресное пространство на 64битной машине не 64бита).

Если в задаче сказано что RAM у нас 128Мб, то и файловый кеш будет не более 128Мб. Тестовое окружение это дело смоделирует как надо.

Да, я подумал, тесты будут гоняться с разными размерами файла. Чтобы у ограниченных решений (говорят например в А2 нельзя работать с файлами больше 2 гиг) были хоть какие-то шансы хоть как-то показать себя.

Задача не только соревновательная, но и исследовательская.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #23 : Ноябрь 30, 2016, 01:16:14 pm »
Машина little-endian?
Да. Т.е. в самой исходной задаче (на которой базируется наша) это сказано не было, но по факту - да, little endian. Тем более что так просто найти машину с bigendian'ом не получится.

Куда класть исходник?
Пулреквестом в этот репозиторий: https://github.com/valexey/bigbench
Создаешь папку со своим username or nickname, в ней подкаталог с названием решения (вдруг у тебя будет несколько вариантов и захочется протестить их все), а в нём, кроме исходников, либо makefile либо build.sh чтобы собрать можно было.

Можно еще ридмишку - что в системе нужно иметь, чтобы собралось.

Как-то так.
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #24 : Ноябрь 30, 2016, 02:08:31 pm »
Машина little-endian?
Да. Т.е. в самой исходной задаче (на которой базируется наша) это сказано не было, но по факту - да, little endian. Тем более что так просто найти машину с bigendian'ом не получится.

OK, т.е. можно сразу читать в 32-битный int.

Пулреквестом в этот репозиторий: https://github.com/valexey/bigbench

А как сделать pull request из CLI?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #25 : Ноябрь 30, 2016, 02:22:14 pm »
Машина little-endian?
Да. Т.е. в самой исходной задаче (на которой базируется наша) это сказано не было, но по факту - да, little endian. Тем более что так просто найти машину с bigendian'ом не получится.

OK, т.е. можно сразу читать в 32-битный int.
Угу. Точнее в uint32_t - беззнаковые чиселки ведь.

Пулреквестом в этот репозиторий: https://github.com/valexey/bigbench

А как сделать pull request из CLI?
Народ предлагает пользоваться этим: https://hub.github.com/
( http://stackoverflow.com/questions/4037928/can-you-issue-pull-requests-from-the-command-line-on-github )
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #28 : Ноябрь 30, 2016, 04:10:36 pm »
А через гитхаб-гуйню не вариант?

К меня старый еее PC с юбунтой. Может ты мне дашь доступ пушать?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #29 : Ноябрь 30, 2016, 04:25:10 pm »
А через гитхаб-гуйню не вариант?

К меня старый еее PC с юбунтой. Может ты мне дашь доступ пушать?
Там браузера кошерного совсем нема?
Так то конечно дам доступ.
Y = λf.(λx.f (x x)) (λx.f (x x))