Play Framework на Mac, проблема с производительностью - PullRequest
5 голосов
/ 22 марта 2012

Я установил Play Framework на свой MacBook Pro. Сыграйте 1.2.4 на последней 10.7.3. У меня 8 ГБ памяти и процессор i7 Quad Core (показывает 8 ядер).

Это все очень круто, и я получаю удовольствие от кодирования в игре. Но потом я просто хотел посмотреть, какую производительность я должен получить в работе, поэтому я изменил конфигурацию приложения следующим образом:

prod.application.mode=prod

Мой класс приложения имеет только 1 метод

public static void index() {
    String theman = "You are the man";
    render(theman);
}

и мой шаблон приложения для индекса:

#{extends 'main.html' /}
#{set title:'Home' /}

The man is ${theman}

Вот и все.

Когда я запускаю Apache Benchmark для этого как:

ab -n 1 -c 1 http://localhost:9000/

Я получаю хорошие цифры, но если я получаю -n 10, все просто зависает, и мой компьютер загружается на 100% на 1 ядре и просто остается там навсегда.

Я использовал для получения ошибок HEAP, но я установил это как переменную среды:

export _JAVA_OPTIONS="-Xms800m -Xmx1500m"

А теперь я больше нигде не получаю ошибок.

Мой коллега попробовал мое приложение, которое я отсканировал и разархивировал перед отправкой, он может легко выполнить -n 10000 -c 1000, а дит просто запускается и завершается за мгновение, почти мгновенно.

Итак, мой вопрос: нужно ли устанавливать какие-либо другие системные переменные или что мне нужно сделать, чтобы приложение Play запускалось на моем Mac?

Просто, чтобы прояснить ситуацию, мой Mac на сегодняшний день полностью обновлен, все на 99%, как оно пришло с завода, возможно, ближе к 100%, за исключением того, что у меня есть xcode и такие установленные.

Моя Java:

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11D50b)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

uname -sa

Darwin xxx.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64

1 Ответ

4 голосов
/ 04 апреля 2012

У меня тоже была эта проблема.

Утилита Apache Benchmark, поставляемая с Mac OS X Lion, имеет странную ошибку, которая проявляется в Play 2.0, но не в Play 1.2.x. На моей машине он дублирует каждый запрос, иногда до десятка раз.

Вы можете убедиться в этом, выполнив один тест и посмотрев, сколько обращений содержится в ваших файлах журнала.

Более поздние версии ab не имеют этой проблемы. Вы можете создать его самостоятельно или загрузить бинарный файл, который кто-то сделал .

...