У меня есть переводчик, написанный на Java. Я пытаюсь проверить результаты работы различных оптимизаций в интерпретаторе. Для этого я разбираю код, а затем повторно запускаю интерпретатор над кодом, это продолжается до тех пор, пока я не получу 5 прогонов, которые отличаются очень небольшим отрывом (0,1 с в раз ниже), среднее значение берется и печатается. В интерпретаторе нет ввода-вывода или случайности. Если я снова запустить интерпретатор я получаю различное время работы:Производительность Java Несоответствие
91.8s
95.7s
93.8s
97.6s
94.6s
94.6s
107.4s
Я пытался без толка сервера и клиент VM, последовательный и параллельный гх, большие столы и окна и Linux. Они находятся на 1.6.0_14 JVM. У компьютера нет процессов, работающих в фоновом режиме. Поэтому я спрашиваю, что может вызвать эти большие вариации или как я могу узнать, что это такое?
actualy проблема была вызвана тем, что программа должна была итерацию к раствору фиксированной точки, а значения были сохранены в HashSet. Хешированные значения отличались между прогонами, что приводило к другому порядку, что в свою очередь приводило к изменению количества итераций, необходимых для достижения решения.
Куча установлена как -Xms1024M -Xmx1024M. – Molehill
что вы пытались? – akf