Сообщение Re[3]: Как бы вы делали эту задачу (переходим к конкретике). от 04.09.2022 22:36
Изменено 04.09.2022 22:55 gandjustas
Re[3]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Вот решение https://github.com/gandjustas/HugeFileSort
S>Сортировка в 2.5 раза медленнее у вас, чем этот вариант: https://rsdn.org/forum/alg/8351025.1
Если рассматривать строки как ascii, то можно zero-allication код сделать, который будет до 10 раз быстрее там где не-IO. Но все равно хороший ССД даст прирост по скорости больше чем микрооптимизации.
S>Задание одно и тоже.
По факту нет. Разница unicode и ascii строк огромная.
S>Требования всем понятны.
Требования для этой задачи не полны, увы. В том числе требования быстродействия.
S>А вот как решить оптимально — вот это хрен знает. Нужна компетенция колоссальная.
Какой параметр мы оптимизируем?
Если время работы программы, то можно взять наивную реализацию на питоне или .net и поставить диски побыстрее.
Если затраты суммарные затраты, то непонятно как оценивать разницу во времени работы даже в два раза.
Если процессорное время или затраты памяти, то надо переписывать на С\C++\Rust и отказаться от управляемых сред.
Вообще само определение критерия оптимальности может занять те самые 85% времени.
S>Здравствуйте, gandjustas, Вы писали:
G>>Вот решение https://github.com/gandjustas/HugeFileSort
S>Сортировка в 2.5 раза медленнее у вас, чем этот вариант: https://rsdn.org/forum/alg/8351025.1
Автор: artelk
Дата: 04.09.22
Дата: 04.09.22
Это слишком сильное предположение как по мне. Хотя как раз на строки (преобразование и уборка мусора) тратится почти половина не-IO времени.Сделано в предположение, что файлы ASCII
Если рассматривать строки как ascii, то можно zero-allication код сделать, который будет до 10 раз быстрее там где не-IO. Но все равно хороший ССД даст прирост по скорости больше чем микрооптимизации.
S>Задание одно и тоже.
По факту нет. Разница unicode и ascii строк огромная.
S>Требования всем понятны.
Требования для этой задачи не полны, увы. В том числе требования быстродействия.
S>А вот как решить оптимально — вот это хрен знает. Нужна компетенция колоссальная.
Какой параметр мы оптимизируем?
Если время работы программы, то можно взять наивную реализацию на питоне или .net и поставить диски побыстрее.
Если затраты суммарные затраты, то непонятно как оценивать разницу во времени работы даже в два раза.
Если процессорное время или затраты памяти, то надо переписывать на С\C++\Rust и отказаться от управляемых сред.
Вообще само определение критерия оптимальности может занять те самые 85% времени.
Re[3]: Как бы вы делали эту задачу (переходим к конкретике).
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Вот решение https://github.com/gandjustas/HugeFileSort
S>Сортировка в 2.5 раза медленнее у вас, чем этот вариант: https://rsdn.org/forum/alg/8351025.1
Если рассматривать строки как ascii, то можно zero-allication код сделать, который будет до 10 раз быстрее там где не-IO. Но все равно хороший ССД даст прирост по скорости больше чем микрооптимизации.
S>Задание одно и тоже.
По факту нет. Разница unicode и ascii строк огромная.
S>Требования всем понятны.
Требования для этой задачи не полны, увы. В том числе требования быстродействия.
S>А вот как решить оптимально — вот это хрен знает. Нужна компетенция колоссальная.
Какой параметр мы оптимизируем?
Если время работы программы, то можно взять наивную реализацию на питоне или .net и поставить диски побыстрее.
Если суммарные затраты в денежном эквиваленте, то непонятно как оценивать разницу во времени работы даже в два раза.
Если процессорное время или затраты памяти, то надо переписывать на С\C++\Rust и отказаться от управляемых сред.
Вообще само определение критерия оптимальности может занять те самые 85% времени.
S>Здравствуйте, gandjustas, Вы писали:
G>>Вот решение https://github.com/gandjustas/HugeFileSort
S>Сортировка в 2.5 раза медленнее у вас, чем этот вариант: https://rsdn.org/forum/alg/8351025.1
Автор: artelk
Дата: 04.09.22
Дата: 04.09.22
Это слишком сильное предположение как по мне. Хотя как раз на строки (преобразование и уборка мусора) тратится почти половина не-IO времени.Сделано в предположение, что файлы ASCII
Если рассматривать строки как ascii, то можно zero-allication код сделать, который будет до 10 раз быстрее там где не-IO. Но все равно хороший ССД даст прирост по скорости больше чем микрооптимизации.
S>Задание одно и тоже.
По факту нет. Разница unicode и ascii строк огромная.
S>Требования всем понятны.
Требования для этой задачи не полны, увы. В том числе требования быстродействия.
S>А вот как решить оптимально — вот это хрен знает. Нужна компетенция колоссальная.
Какой параметр мы оптимизируем?
Если время работы программы, то можно взять наивную реализацию на питоне или .net и поставить диски побыстрее.
Если суммарные затраты в денежном эквиваленте, то непонятно как оценивать разницу во времени работы даже в два раза.
Если процессорное время или затраты памяти, то надо переписывать на С\C++\Rust и отказаться от управляемых сред.
Вообще само определение критерия оптимальности может занять те самые 85% времени.