Надо пробовать. Когда вся инфраструктура построена на технологии, переходить на другую (хоть и на словах совместимую) достаточно затратно. По крайней мере дороже, чем поставить зеркало.
Для локального использования — вполне. Но бывают более сложные ситуации, когда так делать нельзя. Например, контур без интернета, но с http прокси, который смотрит в интернет.
Года четыре назад для решения этой проблемы начал делать ГУЁвую тулзу как опенсорс: https://github.com/jonasasx/envrouter. Опробовал примерно на 5ти командах, везде она очень заходит. Но нужна помощь в её развитии. Кому интересно посмотреть демо, воспользоваться или присоединиться к разработке пишите в телегу jonasasx.
Я не понимаю, как можно работать с амортизированной сложностью в данной ситуации. Если у Вас есть какие-то предложения, поделитесь, пожалуйста. Возможно, я не до конца понимаю смысл этого метода.
Да, справедливое замечание. Кстати, об этом уже написали выше.
Хотя, я думаю, разница в скорости между ОЗУ и кэшем слишком мала по сравнению со скоростями работы высокоуровневых команд. Но это только лишь моё предположение.
Согласен. Но я опять же мыслю в контексте текущей проблемы, где вставка идёт именно в середину списка. И, кстати, усреднённая точка вставки для общего случая будет с=(1+2+...+n)/n=n/2, опять же середина списка.
Да, эту проблему я тоже учитывал в тесте, вызывая сборщик мусора и паузу для его работы после каждой новой инициализации списков, но какого-то видимого изменения статистики я не увидел.
Есть следующий вопрос. Правильно ли я понимаю следующее. Сложности, которыми вы оперируете, находятся в разных координатных системах. Т.е., если у ArrayList и LinkedList параметр O(1) равен разному физическому времени, поэтому одинаковые сложности O(n) — не означают, что время вставки будет одинаково. Оно может ощутимо различаться.
Да, скорость выполнение операций — разная, а сложность — одна. Это можно сравнить с испытанием одного алгоритма на машинах разной производительности.
А если мы пробегаем не весь linkedList, а как максимум его половину — сложность точно будет O(n)? Может, O(n/2) или O(n)/2? Мы же пробегаем половину.
Кстати, в ArrayList мы тоже смещаем только половину массива.
Вообще, вопрос был с подвохом. ИМХО, если он звучал именно так, как вы написали — вы вообще не по той ветке пошли. Надо было сказать, что вставка по индексу и вставка по итератору отличаются.
Да, тут согласен, про вставку по итератору я тогда не догадался сказать.
Вопрос на собеседовании подразумевал разовую вставку именно в самую середину, поэтому я не могу воспользоваться ListIterator. А в цикле я вставлял данные, пытаясь показать, что многократное увеличение размера массива у ArrayList снижает производительность относительно LinkedList.
Сильно -- это насколько? При каких соотношениях диски/сервера?
Мы несколько кластеров эксплуатируем. Самый большой на 5Пб. Показывает себя в нагрузке лучше цефов.
А почему MinIO не подходит для этой задачи? Почему его ограничили десятками ТБ и сотнями RPS?
Надо пробовать.
Когда вся инфраструктура построена на технологии, переходить на другую (хоть и на словах совместимую) достаточно затратно. По крайней мере дороже, чем поставить зеркало.
Для локального использования — вполне. Но бывают более сложные ситуации, когда так делать нельзя. Например, контур без интернета, но с http прокси, который смотрит в интернет.
Вот ей я пользовался пока не закончился домен. И её нельзя поставить в свой контур.
Года четыре назад для решения этой проблемы начал делать ГУЁвую тулзу как опенсорс: https://github.com/jonasasx/envrouter. Опробовал примерно на 5ти командах, везде она очень заходит. Но нужна помощь в её развитии.
Кому интересно посмотреть демо, воспользоваться или присоединиться к разработке пишите в телегу jonasasx.
Скорее труба с разветвлением на конце: stdin и stderr
Хотя, я думаю, разница в скорости между ОЗУ и кэшем слишком мала по сравнению со скоростями работы высокоуровневых команд. Но это только лишь моё предположение.
Да, скорость выполнение операций — разная, а сложность — одна. Это можно сравнить с испытанием одного алгоритма на машинах разной производительности.
Кстати, в ArrayList мы тоже смещаем только половину массива.
Да, тут согласен, про вставку по итератору я тогда не догадался сказать.