Информация об изменениях

Сообщение Re[14]: Тестовое задание Senior .Net - критикуйте от 22.08.2022 7:18

Изменено 22.08.2022 7:38 Shmj

Re[14]: Тестовое задание Senior .Net - критикуйте
Здравствуйте, vaa, Вы писали:

vaa>Это допустимо при любом размере файла. ReadLines читает файл построчно(размер строки ~ 100 английский символов).


Но какой объект возвращает, массив строк?

Попробуй создать массив такой:

var b1 = new byte[2L * 1024 * 1024 * 1024 — 57];

Ок.

А теперь такой:

var b2 = new byte[2L * 1024 * 1024 * 1024 — 56];

Облом?

vaa>Однако, да скорость после 1Гб исходного файла падает до нуля примерно

vaa>Стырил код слияния с сабжа:
vaa>Чанки
vaa>Теперь давайте замерим ваш код сортировки через базку.
vaa>только честно: замеряем время с временем создания таблицы, ключ обязательно составной (строка+номер). желательно как у меня все строки случайные без повторов).

Я уже замерял — +- одинаково. Главное что вы потратите пол дня на написание а я 15 минут.
Re[14]: Тестовое задание Senior .Net - критикуйте
Здравствуйте, vaa, Вы писали:

vaa>Это допустимо при любом размере файла. ReadLines читает файл построчно(размер строки ~ 100 английский символов).


Но какой объект возвращает, массив строк?

Попробуй создать массив такой:

var b1 = new byte[2L * 1024 * 1024 * 1024 — 57];

Ок.

А теперь такой:

var b2 = new byte[2L * 1024 * 1024 * 1024 — 56];

Облом?

vaa>Однако, да скорость после 1Гб исходного файла падает до нуля примерно

vaa>Стырил код слияния с сабжа:
vaa>Чанки
vaa>Теперь давайте замерим ваш код сортировки через базку.
vaa>только честно: замеряем время с временем создания таблицы, ключ обязательно составной (строка+номер). желательно как у меня все строки случайные без повторов).

Я уже замерял — +- одинаково. Главное что вы потратите пол дня на написание а я 15 минут.

Berkeley DB и Leve DB специально созданы для гигабайтов данных — так хранят блокчейн Bitcoin-а того же — 400 Гб. Гарантированно работает. Там нет таблиц, время на их создание не тратится.

Ваше решение на больших данных скорее всего будет работать медленнее. Проверять времени нет — даже те же 600 Мб. сортируются около 2 десятков секунд. А нужно хотя бы 60 Гб. проиндексировать — это уже займет около часа. Да и не хочется ресурсы SSD расходовать на пустяки.