sim3x: Т.к. за рекламу мне не платили, то конкретных названий давать не буду, но мне оглашали суммы в диапазоне 500-2000 рублей за обзор (отдельный небольшой ролик или упоминание в Топ-10 игр и тому подобное). В принципе, это неплохое вложение, т.к. весь трафик будет органический. А вот покупать установки для рейтингов не рекомендую. Там придётся потратить десятки тысяч, чтобы был эффект.
Василий: Я не гонял бенчмарки, я запустил тестирование всей поверхности диска. Меня интересовали бэд-блоки, т.к. скорость стала ниже ожидаемой. Оказалось, проблема не в бэдах, а в плохом размещении активных данных.
АртемЪ: Перечитайте, мне не нужна скорость, мне нужно наоборот... И 2ТБ SSD стоит несколько неразумных денег... Хотя, мне терабайта хватит, но брать быстрый диск для файлохранения ещё глупее, чем пытаться перенести файл в конец...
Дефрагментаторы ТЕХНИЧЕСКИ могут разместить файлы в конце, хотя бы потому, что 10 из 500 гигабайт они в конец всё-таки переносят.
Я привёл цифры линейной скорости чтения: ~120 в начале и ~60 в конце. Я хочу перенести редконужные данные в конец, потому что с нимимне скорость не важна.
АртемЪ: Пишет на все пластины одновременно (судя по равномерности падения скорости). Вам поставлена конкретная задача, её нужно решать. Вы же профессионал!
Ринат Велиахмедов: Не говоря уж о том, что формирование массива с последующей сортировкой с вероятностью 99% будет эффективнее, чем формирование словаря.
Ринат Велиахмедов: Использование map вместо vector для int увеличивает использование памяти на 500% при 64 битной адресации. И это при условии аллокатора, оптимально использующего память (int-ключ + int-значение + 2 указателя по 8 байт). Т.е вместо 4 гигабайт получается жалких 24 гигабайт для одной пары массивов. И выше уже было сказано, что массивов может быть не два.
Ринат Велиахмедов: Учитывая, что нужно синхронно сортировать массивы по 4-8 гигабайт каждый, то отсутствие временных контейнеров тут весьма уместно. Я вижу только два решения: 1 - массив индексов, 2 - своя функция сортировки. Вы бы лучше решение предложили, а не отднострочный флуд... Давайте, забацайте самое эффективное решение, раз модификация std::sort "и близко не самое эффективное"(с).
lexdevel: Вот прям сейчас у меня есть проект в 2015 студии со статической линковкой. Пришлось сделать статическую компоновку с MFC, Включить /MT и сделать статические сборки curl и boost. Работает без редистов, проверял свежезавиртуаленной семёрке. Т.е. дело точно не в 2015 студии, а проблема либо в используемых библиотеках, либо в настройках.
Ну и, самое главное, убедись, что настроил /MT именно для релизного проекта. Там диалог свойств иногда подтупливает и открывается не на активном проекте, а как ему приспичет.
lexdevel: Ищи проблему в подключаемых библиотеках. Для не MFC проектов достаточно поставить /MT, чтобы redist не требовало. Но, если какая-то из библиотек (*.lib или *.dll) не была скомпонована статически, то будет эта ошибка выпрыгивать.
Я придумал самое эффективное решение. Напиши свою версию функции сортировки, принимающую два массива, вместо одного. Возможно, std::sort скопируй и дорисуй.
dansheb: Компаратор, это class Compare{ bool operator<( int lhs, int rhs); };
std::sort( array.begin(), array.end(), Compare() );
Но я понял ошибку. Всё таки придётся создать массив с индексами первого массива и вызывать сортировку именно этого массива, но сравнения делать по первому массиву, через эти индексы и менять значения сразу в первом и втором массиве (индексы обменяются сами).