Сообщение 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Гб исходного файла падает до нуля примерно![](/Forum/Images/frown.gif)
vaa>Стырил код слияния с сабжа:
vaa>Чанки
vaa>Теперь давайте замерим ваш код сортировки через базку.
vaa>только честно: замеряем время с временем создания таблицы, ключ обязательно составной (строка+номер). желательно как у меня все строки случайные без повторов).
Я уже замерял — +- одинаково. Главное что вы потратите пол дня на написание а я 15 минут.
vaa>Это допустимо при любом размере файла. ReadLines читает файл построчно(размер строки ~ 100 английский символов).
Но какой объект возвращает, массив строк?
Попробуй создать массив такой:
var b1 = new byte[2L * 1024 * 1024 * 1024 — 57];
Ок.
А теперь такой:
var b2 = new byte[2L * 1024 * 1024 * 1024 — 56];
Облом?
vaa>Однако, да скорость после 1Гб исходного файла падает до нуля примерно
![](/Forum/Images/frown.gif)
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Гб исходного файла падает до нуля примерно![](/Forum/Images/frown.gif)
vaa>Стырил код слияния с сабжа:
vaa>Чанки
vaa>Теперь давайте замерим ваш код сортировки через базку.
vaa>только честно: замеряем время с временем создания таблицы, ключ обязательно составной (строка+номер). желательно как у меня все строки случайные без повторов).
Я уже замерял — +- одинаково. Главное что вы потратите пол дня на написание а я 15 минут.
Berkeley DB и Leve DB специально созданы для гигабайтов данных — так хранят блокчейн Bitcoin-а того же — 400 Гб. Гарантированно работает. Там нет таблиц, время на их создание не тратится.
Ваше решение на больших данных скорее всего будет работать медленнее. Проверять времени нет — даже те же 600 Мб. сортируются около 2 десятков секунд. А нужно хотя бы 60 Гб. проиндексировать — это уже займет около часа. Да и не хочется ресурсы SSD расходовать на пустяки.
vaa>Это допустимо при любом размере файла. ReadLines читает файл построчно(размер строки ~ 100 английский символов).
Но какой объект возвращает, массив строк?
Попробуй создать массив такой:
var b1 = new byte[2L * 1024 * 1024 * 1024 — 57];
Ок.
А теперь такой:
var b2 = new byte[2L * 1024 * 1024 * 1024 — 56];
Облом?
vaa>Однако, да скорость после 1Гб исходного файла падает до нуля примерно
![](/Forum/Images/frown.gif)
vaa>Стырил код слияния с сабжа:
vaa>Чанки
vaa>Теперь давайте замерим ваш код сортировки через базку.
vaa>только честно: замеряем время с временем создания таблицы, ключ обязательно составной (строка+номер). желательно как у меня все строки случайные без повторов).
Я уже замерял — +- одинаково. Главное что вы потратите пол дня на написание а я 15 минут.
Berkeley DB и Leve DB специально созданы для гигабайтов данных — так хранят блокчейн Bitcoin-а того же — 400 Гб. Гарантированно работает. Там нет таблиц, время на их создание не тратится.
Ваше решение на больших данных скорее всего будет работать медленнее. Проверять времени нет — даже те же 600 Мб. сортируются около 2 десятков секунд. А нужно хотя бы 60 Гб. проиндексировать — это уже займет около часа. Да и не хочется ресурсы SSD расходовать на пустяки.