Установка среды разработки В виртуальной машине

Хотя я смотрел на другие решения, я не мог поверить, что не существует более простого способа (или способов, столь же простых, как принятый ответ, без необходимости воссоздания Map, промежуточных новых списков и т. Д.). Вот 3 (из многих ;-)) решений, которые я придумал:

  1. Использование ключей и сопоставление значений позже:

    (mapA.keys.asSequence() + mapB.keys)
        .associateWith {
          sequenceOf(mapA[it], mapB[it]) // one of the sides may have null values in it (i.e. no entry in the map)...
              .filterNotNull()
              .distinct()
              .toList() // or if you require/prefer, do the following instead: joinToString()
        }
    
  2. [ 1121] Используя groupingBy и fold (или взгляните на: Группируйте по ключу и складывайте каждую группу одновременно (KEEP) ): [1121 ]
    (mapA.asSequence() + mapB.asSequence())
      .groupingBy { it.key }
      .fold(mutableSetOf()) { accumulator, element ->
        accumulator.apply {
          add(element.value)
        }
      }
    

    Вы также можете просто использовать пустой String и объединять в операции сгиба так, как вам это нужно. Мой первый подход просто использовал sequenceOf вместо MutableSet. Это зависит от того, что вам нужно и что вы хотите сделать с результатом впоследствии.

  3. Использование Javas Map.merge , но игнорирование дубликатов в значении и просто конкатенация значений:

    val mergedMap: Map = mapA.toMutableMap().apply {
      mapB.forEach { key, value ->
        merge(key, value) { currentValue, addedValue ->
          "$currentValue, $addedValue" // just concatenate... no duplicates-check..
        }
      }
    }
    

    Это, конечно, также можно записать по-другому , но таким образом мы гарантируем, что mergedMap по-прежнему будет просто Map при повторном доступе.

7
задан Nick Zalutskiy 25 December 2008 в 08:08
поделиться

6 ответов

Я использую VM для разработки (работающий на моем ноутбуке) и никогда не имел проблем производительности. Другой подход, который Вы могли проявить, должен будет отобразить диск в состоянии, которое Вы хотите. Используйте Acronis или Фантом, чтобы повторно отобразить каждую машину, когда Вы должны будете. Только занимает приблизительно 5-10 минут для восстановления изображения на любом современном ПК.

8
ответ дан 6 December 2019 в 15:36
поделиться

При использовании Windows, Вы, вероятно, захотите использовать SYSPREP на основном изображении так, чтобы 'мини-установка' работала при начальной загрузке виртуальных машин впервые.

Иначе с точки зрения точки зрения Windows, машины имеют тот же самый SID, имя хоста и другие вещи - выполняющий несколько машин с тем же SID в той же сети могут вызвать тонны головных болей. Еще больше, если Вы хотите, чтобы они общались друг с другом.

1
ответ дан 6 December 2019 в 15:36
поделиться

Я выполнил websphere для zSeries на виртуальной машине VMware без проблемы, и websphere является более интенсивно использующим ресурсы затем любой стек PHP. Я нахожу, что наличие многоядерной машины или по крайней мере hyper поточная обработка заставляет его работать намного быстрее.

1
ответ дан 6 December 2019 в 15:36
поделиться

Я использую VM для всей своей "работы", поскольку она держит его отдельно от моей "игры". Настроенный позволяет мне использовать офис VPN, не выставляя мою целую машину офисной среде (которому я доверяю из Интернета.;-) Также я не должен волноваться о том, чтобы портить мою среду разработки путем попытки игр или другого программного обеспечения. Мой VM работы в настоящее время работает в VirtualBox, но я использовал VMware в прошлом. Я только заметил проблемы производительности при использовании графических интенсивных программ как Webex или Клиент Терминального сервера.

2
ответ дан 6 December 2019 в 15:36
поделиться

Это может, конечно, быть сделано. То, что выключает меня, является размером образа виртуальной машины, который обычно составлял бы несколько ГБ. Наличие его на сетевом ресурсе означает, что может занять больше времени передать затем Ваш текущий процесс установки, берет. Я предполагаю, что внешний жесткий диск был бы самым легким способом переместить его.

Производительность не была бы проблемой ни с какой веб-разработкой.

Я должен спросить, почему Ваши текущие машины должны быть "повторно отображены" каждый раз, когда Вы приступаете к работе?

1
ответ дан 6 December 2019 в 15:36
поделиться

С VMware дисковые операции медленнее. Для разработки PHP я сомневаюсь, что это была бы проблема, но Вы определенно заметите его при компиляции большого проекта C++. Существует также VirtualBox Sun, который свободен, и последняя версия довольно хороша (но я не посмотрел на то, как медленные дисковые операции все же).

1
ответ дан 6 December 2019 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: