2012-07-25 14 views
5

Tôi đang gặp một số vấn đề nghiêm trọng liên quan đến Play của mình! Hiệu suất ứng dụng. Tôi đã cố gắng thay đổi máy chủ và cơ sở dữ liệu, nhưng sự chậm chạp vẫn tồn tại.Lập hồ sơ ứng dụng khung Play (2.0.2) thông qua VisualVM

Sử dụng Firebug để đo lường các yêu cầu http của tôi Tôi phát hiện ra rằng chúng mất khoảng 20 giây để bắt đầu trả lời.

Vì vậy, hy vọng cuối cùng của tôi là sử dụng VisualVM để cấu hình ứng dụng của tôi và tìm cổ chai của nó. Nhưng tôi không biết cách thích hợp để truyền một số đối số như "-Dcom.sun.management.jmxremote" mà không gây rối với biến JAVA_OPTS toàn cầu.

Cảm ơn bạn lần nữa!

Trả lời

5

Dường như Metrics xử lý điều này tự động.

Thêm dòng sau vào ứng dụng phụ thuộc Build.scala của bạn:

"com.yammer.metrics" % "metrics-core" % "2.1.2" 

Và bắt đầu instrumenting mã của bạn. Sau đó khởi động ứng dụng với "play run" - VisualVM sẽ hiển thị quá trình JVM của bạn và bạn chỉ có thể kết nối trực tiếp với nó (giả sử bạn có plugin VisualVM-MBeans). Kiểm tra xem bạn có at least 1.3.4 không. Đây là những gì tôi thấy khi khởi động:

VisualVM

quá trình xsbt.boot.Boot là Play.

Nói chung, điều này thực sự hữu ích khi gỡ lỗi các khuôn khổ dựa trên Akka như Play.

+2

Liên kết github đã chết! – ajay

+0

Long live liên kết github! – fish

4

Trong trường hợp ai đó cần phải cấu hình một ứng dụng Google Play 2.3.x:

  1. Đặt thiết lập JAVA_OPTS của bạn trong ~/.activator/activatorconfig.txt (cf https://typesafe.com/activator/docs):

     
    -Dcom.sun.management.jmxremote.port=1234 
    -Dcom.sun.management.jmxremote.rmi.port=1234 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Djava.rmi.server.hostname=127.0.0.1 
    
  2. Trong VisualVM, thêm kết nối cục bộ JMX vào localhost: 1234