Задать вопрос
  • Почему двумерные массивы работают чуть быстрее одновременых?

    mayton2019
    @mayton2019
    Даниил, я честно говоря не помню как DotNet расставляет элементы в памяти. Но ты словил эффект удачного попадания в кеш для многомерных массивов а для одномерного почему-то расклад был неудачен.
  • Почему двумерные массивы работают чуть быстрее одновременых?

    mayton2019
    @mayton2019
    Сделай тест подлиннее. Хотя-бы в 1 минуту на каждую матрицу.
    И попробуй перевернуть индексы местами (i,j).

    И еще неплохо-бы размеры строк матриц выровнять под границу в 64 байта.
  • Как сделать много вставок в HashMap за минимальное время?

    mayton2019
    @mayton2019
    Eugene-Usachev, в мае месяце ты хотел вкатиться в айти а в июле уже критикуешь структуры данных Rust.

    Молодца..

    Вообще async созданы для операций I/O. Условия таковы. Есть к примеру одно устройсво. Сетевушка или диск.
    Оно не параллелится нифига. Такова его природа. И оно блокирует 1000000 потоков. Потоки-ждуны.
    Сидят и ждут пока медленное устройство раздуплиться. Вот. Но ждать можно по разному. Вот технология
    async это один из видов ожидания.

    А ты чего хотел вообще от асинка получить в данном примере?
  • Как сделать много вставок в HashMap за минимальное время?

    mayton2019
    @mayton2019
    В синхронной версии всё работает, но медленно (во-первых, я вынужден вызывать get у map дважды, во-вторых, писать синхронно в целом долго).

    Сколько времени у тебя занимает загрузка 3 млн ключей в синхронной версии?
  • Как приложение синхронизирует данные с разных операционных систем?

    mayton2019
    @mayton2019
    Saashmalysh, я не смог. Для решения моих задач надо сливать этому чяту бизнес информацию. Так вот чтоб закинул вопрос и получил ответ - не выходит. Груминг на пару дней. А какие с ним пару дней когда у него 16 килобайт контекста всего.
  • Как приложение синхронизирует данные с разных операционных систем?

    mayton2019
    @mayton2019
    Saashmalysh,

    А как эти данные на этот сервер помещаются? Нужно как-то договариватся с какой-то серверной типо, чтобы она предоставила место для моего приложения? Я вот вообще не шарю. Это всё же программированием делается, нет? Как это вообще сделать короче, чтобы они там хранились?

    Подожди годика полтора. Появиться искусственный интелект с No-Code. И будешь
    устные приказы отдавать. Типа - а ну создай сервер! Синхронизируй! Так-то!

    Я не шучу.

    P.S. Оптимальность решения правда не гарантирована.
  • Как лучше развернуть двумерный массив?

    mayton2019
    @mayton2019
    А может тебе лучше исходный массив вот так задавать?

    let arr =
        [
        1,2,3,
        1,2,3,
        1,2,3
        ]


    Тогда формула проще выходит. И вращать и отражать и гиперкубы делать.
  • Идеальное хеширование без чтения из памяти параметров h2(k)?

    mayton2019
    @mayton2019
    floppa322,

    А contains(k) у PerfectHashTable фактически единственный метод


    если тебе нужен только contains - то посмотри в сторону Фильтра Блума. Это - probabalistic проверка но она
    надежно работает для закрытие большего числа запросов.

    Вобщем я выдохся. Я думаю что твой тюнинг он - очень специфичен. И его нельзя решать только теоретически.
    У тебя должно быть как минмум 3 макета софта. Под open-adressing и под separate-chaining и под твой идеальный квадрат. Я напомню что самые лучшие реализации алгоритмов - обладают сильной когерентностью по памяти.
    Это связано с кешами в железе. Поэтому твои теоретические обоснования могут сильно ошибаться в практике.
    Вот. И результатом этих трех макетов должны быть 3 бенчмарка где ты показываешь практически
    время инициализации структуры и среднее время доступа.

    Вобшем все. Коллеги. Прошу отписать ваше мнение.
  • Идеальное хеширование без чтения из памяти параметров h2(k)?

    mayton2019
    @mayton2019
    floppa322, я все таки хочу понять мотивацию. Тебе нужна вспомогательная стуктура для алгоритма. Если ты уже дошел до такой ситуации что тебе нужна мемоизация расчетов (max(id)) то будь добр - потрать время на подготовку.
    Основной алгоритм отработает быстро. Если хочешь идеальное хешировние - то по ссылке которую ты приводишь все равно нет гарантий что идеальная генерация закончится в 1 итерацию. Тоесть полюбому построение таблицы у тебя - слабое место. Ищи компромиссы.
  • Идеальное хеширование без чтения из памяти параметров h2(k)?

    mayton2019
    @mayton2019
    floppa322, дружище если ты оптимизируешь время загрузки данных в таблицу - то ты сразу проиграл. Бери метод списков и все будет работать чудесно.

    Хочешь открытая адресация с майнингом - попробуй не удваивать а умножать на 10% размер массива. Там именно массив а не бакеты. Я думаю что через 2-3 итерации все сойдется.

    By the way. Я понимаю что ты - теоретик. Но мне всегда интересна практическая сторона вопроса. Какие ключи
    ты хочешь хранить? Строки? Числа? Сколько из будет? Какой лимит времени ты хотел-бы потратить на
    инициализацию системы? Вот меня как дата-инженера это в первую очередь беспокоит. А вовсе не нелинейность.
  • Идеальное хеширование без чтения из памяти параметров h2(k)?

    mayton2019
    @mayton2019
    floppa322, вот вики пишет

    Данная технология применяется в различных словарях и базах данных, в алгоритмах со статической (известной заранее) информацией.


    я вот как себе это понимаю. Есть справочники которые редко меняются. Страны. Валюты. Языки. Всякие там биржевые тикеры. У тебя всегда есть достаточно времени чтобы расчитать эту таблицу почти идеально.

    Вариант с 2 таблицами я-бы сразу выкинул. Неэффективное использование памяти. И выигрыш - ничтожный.
  • Идеальное хеширование без чтения из памяти параметров h2(k)?

    mayton2019
    @mayton2019
    Пишу как-бы мозговой штурм по теме.

    Хеш таблицы (ХТ) бывают двух видов. В основном. Это метод списков и открытая адресация.
    В промышленности и в бизнесе (насколько я видел) в основном используется первый тип ХТ. У них
    нет проблемы которую ты нарисовал. Никакие двухуровневые таблицы им не нужны. И этот тип реализован в С++/Java/C# e.t.c. библиотеках поддержки коллекций. В некоторых современных вариантах списки могут
    превращаться в красно-черные деревья. Поэтому может быть гибрид хеш+R&B.

    Второй тип подходит для редких кейсов типа хранения примитивов достаточно компактно. Но надо тонко
    подбирать грань keys/capacity чтоб не попасть в ситуацию 3 и 4 и 5 обращения к памяти. Там будет резкий
    рост времени отклика.

    Твое идеальное хеширование в принципе сводится ко 2 типу. Надо только подбирать keys/capacity до тех пор пока нет коллизий и нет повторных чтений. Учитывая что у тебя идеальное хеширование (ключи не меняются) то можно майнить такие
    конфигурации. Тоесть подбирать их длительное время для достижения почти идеального результата.

    Эффективность твоего метода также зависит от выбора менеджмента памяти. Допустим для Java там возможностей не очень много а для С++/C можно играть union поинтеров и самих данных и достигать каких-то более лучших
    результатов. Например делая вспомогательные структуры более компактными.
  • Как подключить третий монитор к компьютеру?

    mayton2019
    @mayton2019
    Ну я сдаюсь. Если автор - охранник которому просто надо следить за 3 камерами - то можно и так.
  • Как подключить третий монитор к компьютеру?

    mayton2019
    @mayton2019
    Виктор, ну да бог. Тестируйте. Как оно будет. VGA здесь вобщем-то не в тему. Это стандарт 90х-2000х.
    Уходящий стандарт. Аналогвый и в цифре он бы занимал самую малую полосу. У него даже разрешения
    были низкие из-за электрических характеристик кабеля. Больше просто нельзя было поднять.
  • Слетят ли рут права на телефоне хiaomi при выходе из mi аккаунта?

    mayton2019
    @mayton2019
    maxsmeller, прошу прощения если я тегнул лично. Рука дрогнула.
    Но я не пью и вам надо быть толерантнее.
  • Слетят ли рут права на телефоне хiaomi при выходе из mi аккаунта?

    mayton2019
    @mayton2019
    непонятна причина беспокойства. Человек смог порутать свой аккаунт. Значит
    есть методика. Да пускай выходит хоть 100 раз и снова рутает заново.

    Чем здесь хабр поможет? Или какие гарантии хабр даст?

    Хей братэлоова. Конешно выходи не бойся...
  • Почему не вносятся данные в бд MySQL сайта на Django?

    mayton2019
    @mayton2019
    AntonTsiklop, наивный мальчик. При работе с базами данных ты должен где-то в коде обеспечить
    проверку результата любой операций DML (insert/update). Они могут не сработать. По разным причинам.
    Место в базе закончилось. Или ты вставляешь в базу строку которая вызывает primary key violation.
    Да много чего может быть. Короче читай документацию по ORM Django. Там должно быть описано
    как это делать.
  • Почему не вносятся данные в бд MySQL сайта на Django?

    mayton2019
    @mayton2019
    Какой код ошибки при вставке в другие таблицы?
  • Как подключить третий монитор к компьютеру?

    mayton2019
    @mayton2019
    z4_ln, каждый дополнительный монитор аллоцирует память и ресурсы видяшки.
    Не думай что это совсем бесплатно.

    Я не знаю как работает USB card, но главная задача которая ставилась при разработке HDMI
    например - это пропускная способность и лаг. USB технически здесь не подходит. И результат
    работы этого зоопарка тебе скорее всего сильно не понравиться.

    Можешь зайти сюда и отписать потом по результатам.