У меня есть скрипт на 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)
Вычисление происходит следующим образом:
Позже происходит ряд взаимодействий между Java и Python, но это занимает всего несколько секунд.
обновление (29.12.2010)
Спасибо за все ваши комментарии и предложения. Мне потребовался один рабочий день, чтобы выяснить, что мое предположение ошибочно. В коде, который я использовал, была «ошибка», и фактически в консоли и в оболочке выполнялись разные вычисления. Когда я исправил это, время вычислений было таким же.
Сводка : Время вычисления скрипта, запущенного в консоли и в оболочке Java, почти одинаково. Дополнительное время для инициализации Java VM и обмена данными ввода-вывода незначительно.