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

vlad

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

Под виндой у них была страшная поделка на .net. Сомневаюсь, что на юбунте будет лучше.
Спасибо.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #31 : Ноябрь 30, 2016, 05:52:04 pm »
Там браузера кошерного совсем нема?
Так то конечно дам доступ.

Под виндой у них была страшная поделка на .net. Сомневаюсь, что на юбунте будет лучше.
Спасибо.
Не, там прямо через веб-морду в браузере можно нажать на кнопку "New pull request". Без установки и запуска каких-либо приложений десктопных.
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #32 : Ноябрь 30, 2016, 06:41:27 pm »
Не, там прямо через веб-морду в браузере можно нажать на кнопку "New pull request". Без установки и запуска каких-либо приложений десктопных.

Я нажимал эту кнопку и не понял чего от меня хотели. Похоже я должен был сначаоа бранч сделать или ХЗ что еще. А у меня на руках был просто clone твоего репозитория.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #33 : Ноябрь 30, 2016, 07:04:40 pm »
Не, там прямо через веб-морду в браузере можно нажать на кнопку "New pull request". Без установки и запуска каких-либо приложений десктопных.

Я нажимал эту кнопку и не понял чего от меня хотели. Похоже я должен был сначаоа бранч сделать или ХЗ что еще. А у меня на руках был просто clone твоего репозитория.
Да, скорее всего отбранчеваться а потом на кнопаку эту жать.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #34 : Ноябрь 30, 2016, 07:15:11 pm »
Нус, первое решение есть. На вскидку, работает корректно (пока запускал на своем десктопе, там тоже SSD, ограничение в 128Мб соблюдалось). На гигабайтном файле отработало за такое время:

real 2m25.166s
user 1m51.277s
sys 0m10.533s

Напоминаю, что складывать и смотреть исходники можно тут: https://github.com/valexey/bigbench
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #35 : Ноябрь 30, 2016, 08:51:49 pm »
Ещё +2 решения на c++ прилетело.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #36 : Декабрь 01, 2016, 12:07:08 pm »
  • Третий этап - берем самую быструю реализацию из второго этапа и пытаемся её воспроизвести на своем ЯП дословно, т.е. максимально близко к оригиналу. В идеале - буква к букве, настолько, насколько это возможно
И как вот такое переводить буква к букве?
  std::sort(block.begin(), block.end());

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #37 : Декабрь 01, 2016, 12:28:49 pm »
  • Третий этап - берем самую быструю реализацию из второго этапа и пытаемся её воспроизвести на своем ЯП дословно, т.е. максимально близко к оригиналу. В идеале - буква к букве, настолько, насколько это возможно
И как вот такое переводить буква к букве?
  std::sort(block.begin(), block.end());
А в чем проблема? Итератор можно сделать в любом ЯП, только сахара будет меньше. А шаблоны в рантайме роли не играют.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #38 : Декабрь 01, 2016, 02:47:07 pm »
Кстати, я правильно понимаю, что BB не может файлы больше двух гигабайт?
FileInfo = POINTER TO RECORD
next: FileInfo;
name: Name;
length: INTEGER;
type: Type
modified: RECORD
year, month, day, hour, minute, second: INTEGER
END;
attr: SET
END;

Судя по полю length типа INTEGER коий 32битный знаковый.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #39 : Декабрь 01, 2016, 05:24:14 pm »
А в чем проблема? Итератор можно сделать в любом ЯП, только сахара будет меньше.
А причем там итератор?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #40 : Декабрь 01, 2016, 05:36:44 pm »
А в чем проблема? Итератор можно сделать в любом ЯП, только сахара будет меньше.
А причем там итератор?
Хм. А какие еще тут проблемы могут быть? Функцию аналогичную std::sort написать проблема?
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #41 : Декабрь 01, 2016, 05:51:04 pm »
Так задача в этом и состоит, не? 

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #42 : Декабрь 01, 2016, 06:04:58 pm »
Так задача в этом и состоит, не?
У меня есть большие сомнения, что std::sort является идеальным алгоритмом для сортировке внутри большого файла (ну и тем более qsort таковым не является). Но, в принципе, если оно так и окажется, то да, надо будет реализовать этот алгоритм на своем любимом ЯП, а потом сравним что где как работает. Но это ж фазы 2 и 3, а мы пока на первой топчемся :-)

Первая фаза самая творческая и наименее занудная конечно.
Y = λf.(λx.f (x x)) (λx.f (x x))

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #43 : Декабрь 01, 2016, 07:40:48 pm »
Вот в этих фазах, особенно в последней, смысла совсем не вижу.
Тут еще подумалось, вот в q есть встоенная функция, умеющая быстро сотрировать большие файлы. Если вдуг оказалось бы, что она быстрее всех представленных, как бы ее переписывалт буква в букву?

Насчет std::sort тоже не уверен в данных условиях (кстати, почему qsort тем более? Это же одно и то же практически). Но во времена, когда 640K хватало каждому, забавлялся с сортировкой. Лучшие результаты получались как раз с  quicksort. Тогда приходилось сложную схему пейджинга городить, а сейчас можно просто замапить файл.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Расширенный тест на производительность.
« Ответ #44 : Декабрь 01, 2016, 08:24:37 pm »
Вот в этих фазах, особенно в последней, смысла совсем не вижу.
Тут еще подумалось, вот в q есть встоенная функция, умеющая быстро сотрировать большие файлы. Если вдуг оказалось бы, что она быстрее всех представленных, как бы ее переписывалт буква в букву?

Насчет std::sort тоже не уверен в данных условиях (кстати, почему qsort тем более? Это же одно и то же практически). Но во времена, когда 640K хватало каждому, забавлялся с сортировкой. Лучшие результаты получались как раз с  quicksort. Тогда приходилось сложную схему пейджинга городить, а сейчас можно просто замапить файл.

Такие вопросы надо решать экспериментальным путем - пришли решение (можно даже сюда, но лучше таки обычным путем - на гитхаб) на си с qsort, затестим.
Y = λf.(λx.f (x x)) (λx.f (x x))