Что быстрее для рекурсии: серверная часть javascript или freemarker?

#javascript #freemarker #alfresco #serverside-javascript

#javascript #freemarker #на свежем воздухе #на стороне сервера-javascript

Вопрос:

у меня есть веб-скрипт в alfresco, который написан на javascript. В этом веб-скрипте мне нужно выполнить множество рекурсий (циклов foreach), чтобы сгенерировать значения, которые используются шаблоном freemarker для построения JSON. Проблема в том, что javascript работает очень медленно (3700 миллисекунд). Я мог бы достичь тех же результатов, выполнив итерацию во freemarker, но я не знаю, стоит ли тратить время на написание сложного цикла во freemarker, потому что я не знаю, быстрее ли это, и я не знаю, как его сравнить.

Кто-нибудь знает, быстрее ли freemarker, чем javascript, или кто-нибудь знает, как протестировать freemarker?

Комментарии:

1. Может быть, какой-нибудь код может прояснить ваш вопрос?

Ответ №1:

Несколько дней назад кто-то упомянул в списке рассылки freemarker-devel, что он сравнил FreeMarker с GSP (заводные серверные страницы?). Может быть, вы можете повторно использовать некоторые из его материалов для бенчмаркинга. В его публикации в списке рассылки есть несколько ссылок.

Ответ №2:

Если вы хотите сравнить for с forEach, некоторые тесты показаны здесь .

Возможно, вы захотите установить свой собственный тест в jsperf

Ответ №3:

Если производительность является проблемой, вы могли бы попробовать вместо этого написать свой веб-скрипт на Java. Это не так уж сложно сделать, и есть несколько примеров.

В одном из примеров даже показано, как выводить JSON из Java, пропуская слой freemarker, что может помочь вам, если вы хотите, чтобы он выполнялся как можно быстрее.

Комментарии:

1. Это звучит странно, потому что мы наняли нескольких «пожилых людей» на свежем воздухе, и они заявили, что javascript быстрее java. по вашему опыту java быстрее javascript?

2. Написание JavaScript, вероятно, будет быстрее, чем написание Java, это одна из причин, почему большинство людей предпочитают JS для расширений. Для его запуска я бы ожидал, что Java будет быстрее. Есть причина, по которой ядро Alfresco написано на Java!