Короткий ответ: сборка "мусора" Java является очень точно настроенным инструментом. System.gc () является кувалдой.
"куча" Java разделена на различные поколения, каждое из которых собрано с помощью различной стратегии. При присоединении профилировщика к здоровому приложению Вы будете видеть, что оно очень редко должно выполнять самые дорогие виды наборов, потому что большинство объектов поймано более быстрым коллектором копирования в молодом поколении.
Вызов System.gc () непосредственно, в то время как технически не гарантируемый сделать что-либо, на практике инициирует дорогое, stop-world полный набор "кучи". Это почти всегда неправильный поступок . Вы думаете, что сохраняете ресурсы, но Вы на самом деле тратите впустую их ни на каком серьезном основании, вынуждая Java перепроверить все Ваши живые объекты “just в case”.
, Если у Вас есть проблемы с паузами GC в течение критических моментов, Вы - более обеспеченное конфигурирование JVM для использования параллельного коллектора метки/развертки, который был специально разработан для уменьшения времени, проведенного приостановленный, чем попытка взять кувалду к проблеме и просто повреждению его далее.
документ Sun, о котором Вы думали, здесь: Java SE 6 HotSpot™ Сборка "мусора" Виртуальной машины, Настраивающаяся
(Другая вещь Вы не могли бы знать: реализация завершения () метод на Вашем объекте делает сборку "мусора" медленнее. Во-первых, это возьмет два выполнения GC для сбора объекта: один для выполнения завершают (), и рядом с гарантируют, что объект не был возрожден во время завершения. Во-вторых, объекты с завершают (), методы должен рассматривать как особые случаи GC, потому что они должны быть собраны индивидуально, они не могут просто быть выброшены оптом.)
Зависит от того, откуда он. Если это поставщик, то это обычно означает: «Мы не тестировали это в такой большой и сложной среде, как ваша, но мы скрещиваем пальцы и надеемся, что она будет масштабироваться в соответствии с вашими требованиями». Если это исходит от вашего собственного ИТ-отдела, это обычно означает: «Мы протестировали это как можно больше в нескольких из наших сред qa, и это не полностью взорвалось. Мы хотели бы протестировать это в вашей производственной среде, пожалуйста»
Enterprise Ready, в моей интерпретации, далекой от опыта работы с проектом, который заявляет об этом, - это маркетинговый жаргон, означающий, что программное обеспечение достаточно надежно для развертывания в большой среде: сотни, тысячи , или сотни тысяч пользователей. Это также включает в себя возможность поддержки большой базы пользователей, чтобы программное обеспечение не нарушало работу [надолго] в случае, если что-то пойдет не так.
В конечном счете, я думаю, что это модное слово для выхода на рынки крупных корпораций и увеличения стоимости продукта.
Обычно это означает, что это дорого.
На более серьезном примечании:
Также часто означает, что есть горячая линия поддержки, чтобы позвонить, когда что-то сломается. В аппаратном обеспечении часто используются корпоративные и потребительские классы.
У потребителя вы можете купить его в магазине, и вам может не понадобиться позвонить по телефону или по горячей линии.
Что касается предприятия, вам обычно приходится покупать через партнера и обычно заключать с ним контракт на поддержку.
Так что, в конце концов, это будет дороже, но если вы не такая действительно крупная компания, как Google, которая может сделать вашу собственную ОС и оборудование, вы лучше платите больше и получаете корпоративный класс (обычно у корпоративного уровня есть опция RMA с SLA)
Для этой фразы нет "отраслевого стандарта" определения. . На мой взгляд, это пустая фраза, используемая маркетологами, чтобы произвести впечатление на тех, кого легко впечатлить.
Обычно это должно означать следующее: