Подтвердить что ты не робот

Coldfusion 10 медленнее при использовании Java 1.7 по сравнению с 1.6

У меня есть веб-служба, работающая на Coldfusion 10 64bit. Изучая утечку памяти, я пошел обновлять JRE с 1,6 до 1,7, но заметил значительный успех. Я создал простой тестовый веб-сервис, который на JRE 1.6 я мог легко запускать 5000 запросов в минуту, как только я изменил JRE на 1.7, хотя этот показатель падает слишком 2000 или меньше в минуту. Кто-нибудь знает настройки настройки или что-то, что мне не хватает.

Предпочитаете использовать JRE 1.7, поскольку он, по-видимому, исправил проблему утечки памяти, которую я имел.

  • Запуск сервера JRE: версия java "1.7.0_51" среда выполнения Java (TM) SE (сборка 1.7.0_51-b13) 64-разрядная серверная виртуальная машина Java HotSpot TM (сборка 24.51-b03, смешанный режим) )

  • Сбор мусора в настройках JVM: -XX:+UseParallelGC

  • Измененная сборка мусора: -XX:+UseG1GC это не имело значения.

Далее рекомендации отсюда без увеличения производительности. Просмотрите с помощью jvisualvm и опубликуйте мои результаты.

Update: Java 7 изменил способ работы с синхронизаторами загрузчиков классов, и похоже, что это может быть причиной замедления.

Обновление Adobe признала ошибку и пытается ее исправить. Базовая запись об ошибке Adobe.

4b9b3361

Ответ 2

Я бы рекомендовал вам просмотреть данные JVM Thread Dump между двумя тестовыми запусками нагрузки (JRE 1.6 и JRE 1.7). Я видел проблемы загрузчика класса CF10 в прошлом, связанные с использованием cfdump и cfquery in-memory (запрос запросов).

Сосредоточьте свой анализ на любой проблеме конфликта конфликтов потоков, с которой вы можете столкнуться с JRE 1.7.

Изменение загрузчика класса, на которое вы ссылаетесь, должно фактически улучшить concurrency операций загрузки класса, но все же не исключено, что это может вызвать некоторую медлительность в вашей среде.

Еще одна рекомендация - посмотреть скорость распределения памяти GC. Для этого включите подробный: gc и сравните выходные данные между двумя прогонами. Определите, может ли увеличение скорости выделения ГК-памяти и/или частоты ГК быть основной причиной этого снижения пропускной способности.

Наконец, выполните очень тщательный обзор аргументов JVM. Убедитесь, что ваши параметры настройки кучи Java, включая размер кучи, точно такие же, как в JRE 1.6, поэтому мы можем сравнивать яблоки с яблоками.