Нет, селектор «предыдущего сиблинга» отсутствует.
В соответствующей заметке ~
используется для общего брака-последователя (это означает, что элемент появляется после этого, но не обязательно сразу после) и является селектором CSS3. +
для следующего родного брата и является CSS2.1.
См. Комбинированный смежный блок-класс из Селектора уровня 3 и 5.7 Смежные селекторные ролики из Каскадные таблицы стилей Уровень 2 Редакция 1 (CSS 2.1) Спецификация .
Часть моего текущего задания является уходом и питанием большого JAVA-приложения, которое было разработано для выполнения с большим объемом памяти (в настоящее время приблизительно 8 Гбит), главным образом из-за продолжающихся вычислений с большим количеством кэшированных данных. Я сделал начальное развертывание со стандартной установкой GC, главным образом потому что не было простого способа моделировать продуктивную среду, работающую изо всех сил.
Шаг за шагом, за следующие несколько месяцев, я настроил настройки GC. Обычно самая большая доступная кнопка, кажется, корректирует частоту и величину возрастающего gc - самое большое улучшение было в обменивании крупного периодического gc для меньших и более частых. Но мы определенно были в состоянии видеть повышения производительности.
я не собираюсь отправлять свои определенные настройки потому что a) они характерны для нашей установки и b) потому что у меня нет их удобными:). Но в целом, то, что я нашел,
Вот хорошая ссылка из предыдущего stackoverflow обсуждения.
Подавляющее большинство разработчиков никогда не будет иметь к (или хотеть к), GC мелодии. Я работал с людьми, которые должны были настроить его, и вот совет:
, Прежде чем Вы попытаетесь настроить сборщик "мусора", делают 100% уверенными, что Вы проверили с профилировщиком. что продолжается. Как только Вы начинаете настраиваться, удостоверяются, что Вы проверяете с профилировщиком, что это имело положительное влияние.
необходимо также пересмотреть изменения с каждой версией VM, на котором Вы работаете (другой VMs будет иметь различные настраивающие стратегии).
я когда-то помог кому-то с проблемой GC, которая оказалась ими не закрывающий наборы результатов JDBC (или некоторая проблема как этот). Эта вызванная память, которая никогда не будет освобождаться (его код, сохраненный на них по некоторым причинам). Устранение той проблемы заставило программу перейти с 20 минут к чему-то как 30 секунд или несколько минут. Использование памяти пошло путем вниз также.
Я должен сказать, что у меня не было потребности самого для использования настройки очень. Но я работаю в тесном сотрудничестве с людьми, которые пишут код, где задержка очень важна: они очень используют такую настройку - определение, какой алгоритм GC использовать, макс. времена паузы, отношения оставшегося в живых и т.д.
я предполагаю, что ответ поэтому: , если задержка очень важна для приложения, Вы, возможно, должны были бы посмотреть на настройку Вашего GC
Я сказал бы, что наиболее распространенной вещью настроиться является максимальная емкость памяти. Большинство других параметров памяти имеет разумные значения по умолчанию и часто по настроенному, по моему скромному мнению. т.е. Набор, когда это действительно не имеет большого значения. Я часто вижу, что люди устанавливают много опций, когда половина из них является значением по умолчанию в любом случае.;)
Используя профилировщика самый полезный способ улучшить поведение GC (путем сокращения количества созданных объектов)
Я имею, но не недавно. Приложение, что я продолжал работать, было рендерингом в реальном времени видеопотока, созданного из отдельных изображений JPEG движения. В то время (приблизительно JDK 1.2 и 1.3), -Xincgc
установка переключила бы клиентский сборщик "мусора" от большего количества очистки большого взрыва до режима, где немного мусора регулярно очищалось. В результате распределение задержек кадра было намного ниже, произведя впечатление более гладкого видео (вместо 1-2-3-pause, 1-2-3-pause).
я не посмотрел на тот код в довольно долгое время, но я сильно подозреваю, что, с современными алгоритмами сборки "мусора", -Xincgc
на самом деле уменьшил бы производительность.
В современном мире, я сказал бы, что стандартный скептицизм оптимизации должен всегда применяться: представьте профиль профиля. Вы уверены, что узкое место является действительно сборщиком "мусора"...?
Короче говоря, да, это очень полезно для настройки любого серьезного JAVA-приложения. Мы часто находили, что в производственных сценариях вот в чем разница между стабильным приложением и абсолютно непредсказуемым приложением. Это - конечно, не первая вещь, которую я делаю, но как только Вы имеете работу приложения и можете применить действительную нагрузку к ней, это - одна из первых вещей заняться расследованиями в той точке.