Более длительное выполнение через оболочку Java, чем через консоль?

У меня есть скрипт на Python, который выполняет некоторые вычисления. Когда я запускаю этот скрипт в консоли, это занимает около 7 минут, но когда я запускал его, думал, что оболочка Java занимает в три раза больше времени. Я использую следующий код для выполнения сценария на Java:

this.p = Runtime.getRuntime().exec("script.py --batch", envp);

this.input = new BufferedReader(new InputStreamReader(p.getInputStream()));
this.output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
this.error = new BufferedReader(new InputStreamReader(p.getErrorStream()));

Есть ли у вас какие-либо предложения, почему скрипт Python выполняется на Java в три раза дольше, чем в консоли?

обновление (29.12.2010)

Вычисление происходит следующим образом:

  1. Java отправляет данные в Python .
  2. Python читает данные.
  3. Python генерирует дерево решений - это долгая операция.
  4. Python отправляет подтверждение, что дерево готово.
  5. Java получает подтверждение.

Позже происходит ряд взаимодействий между Java и Python, но это занимает всего несколько секунд.

обновление (29.12.2010)

Спасибо за все ваши комментарии и предложения. Мне потребовался один рабочий день, чтобы выяснить, что мое предположение ошибочно. В коде, который я использовал, была «ошибка», и фактически в консоли и в оболочке выполнялись разные вычисления. Когда я исправил это, время вычислений было таким же.

Сводка : Время вычисления скрипта, запущенного в консоли и в оболочке Java, почти одинаково. Дополнительное время для инициализации Java VM и обмена данными ввода-вывода незначительно.

6
задан czuk 29 December 2010 в 08:47
поделиться