10

레일 3.2 프로젝트에서 랙 미니 프로파일 러를 사용하고 있습니다. gemfile에서rack-mini-profiler에서 json 응답을 반환하는 레일 컨트롤러를 프로파일하는 방법은 무엇입니까?

:

gem 'rack-mini-profiler' 

모든 것이 잘 작동합니다. 하지만 제 응용 프로그램은 대부분 json 끝점 집합입니다. 따라서 html 페이지의 성능을 검사하는 것이 매우 유용하지만 json을 반환하는 컨트롤러의 성능을 볼 수도 있습니다. 내 컨트롤러의

예 : 내가 localhost:3000/users/json_method에 가면

class UsersController < BaseController 
    def json_method 
    # you don't see the mini profiler ui for this controller 
    render json: { users: [:foo, :bar]} 
    end 
end 

, 내 JSON 응답 있지만 프로파일 UI를 참조하십시오.

답변

1

는 첫 번째 해결 방법으로, 당신은 HTML의 형식을 설정할 수 있으며, HTML 페이지 내에서 렌더링 :

컨트롤러 :

class UsersController < BaseController 
    def json_method 
    @users_json { users: [:foo, :bar]} 
    render 'index', formats: ['html'] 
    end 
end 

그리고 응용 프로그램에서

/뷰/사용자/index.html을 .erb :

Users:<br/> 
<%= @json.inspect %> 

내 json 결과에 대해서는별로 신경 쓰지 않아, 이제 프로파일 링 UI가 있습니다.

내 컨트롤러를 변경하지 않고 프로필 링 UI가있는 솔루션이 훨씬 더 좋을 것입니다.

14

기본적으로 랙 미니 프로파일 러 gem은 이전 JSON 호출을 수집하여 HTML 페이지에서 액세스 할 수있는 메뉴에 표시합니다. 코드를 변경할 필요가 없습니다.

그래서 JSON 요청을 한 다음 다른 HTML 페이지를 누르면 목록에서 사용할 수 있습니다. 우리는 이것을 큰 효과를 내기 위해 사용합니다. 당신의 레일 응용 프로그램이 JSON API 서비스 전용의 경우, 적어도 다음과 같은 충돌이 공용 폴더에으로 404.html이 있는지 확인 :

http://localhost/404.html 
+1

열린 두 개의 탭이 되세요. JSON 호출을 만든 다음 JSON이 아니고 voilà 인 페이지를 새로 고치면 JSON 호출이 맨 위에 표시됩니다. 가장 효율적인 것은 아니지만 확실히 작동합니다! –

3

랙 미니 프로파일 러는 결과를 표시 할 수없는 경우 다음 HTML 페이지에서 볼 수있을 때까지 수집합니다. 그래서, 내가 사용하는 솔루션은 다음과 같습니다.

JSON 요청을 만들고 은 내가 선택한 HTML 페이지를 누르십시오. 결과가 최신 HTML 프로필과 함께 나타납니다. json으로 하나, * * JSON이 아닌 모든 페이지에 대한 다른 :

http://tech.eshaiju.in/blog/2016/02/25/profile-api-endpoints-using-rack-mini-profiler/

관련 문제