rails의 캐시 속도를 측정해 봤어요.

9908 단어 Rails

개시하다


캐치에 대해서 조사를 해봤는데 실제로 측정을 해봤어요.
참고 문장
Rails의 세그먼트 캐시를 조사했습니다.
https://qiita.com/suketa/items/eeae7e2196520323f694

컨디션


1000개의user가 그걸 읽었어요.
rails dev:cache
캐치를 활성화합니다.
users_controller에서
def index
  @users = User.all
end 
뷰 열기
index.html.erb
    <h1>Users#index</h1>
    <p>Find me in app/views/users/index.html.erb</p>
    <% @users.each do |user| %>
            <%= user.first_name %>
            <%= user.last_name %>
            <%= user.phone %>
            <%= user.address %>
    <% end %>
현금을 사용하지 않은 일반적인 상태입니다.
실행해 보면

Completed 200 OK in 198ms (Views: 173.6ms | ActiveRecord: 11.2ms)
Completed 200 OK in 48ms (Views: 41.7ms | ActiveRecord: 2.4ms)
Completed 200 OK in 51ms (Views: 45.0ms | ActiveRecord: 2.6ms)
처음에는 200ms 정도였는데 그 다음에는 50ms 정도였어요.
이제 캐치를 사용해보도록 하겠습니다.
일단 이런 느낌의 코드를 써봤어요.
index.html.erb

    <h1>Users#index</h1>
    <p>Find me in app/views/users/index.html.erb</p>
    <% @users.each do |user| %>
        <% cache user do %>
            <%= user.first_name %>
            <%= user.last_name %>
            <%= user.phone %>
            <%= user.address %>
        <% end %>
    <% end %>
결국 이런 느낌.
Completed 200 OK in 993ms (Views: 976.4ms | ActiveRecord: 4.3ms)
Completed 200 OK in 364ms (Views: 343.8ms | ActiveRecord: 15.7ms)
Completed 200 OK in 393ms (Views: 386.7ms | ActiveRecord: 2.7ms)
시간이 길어졌어요...
이 캐시 방법을 찾아봤는데 자주 나오는 방법이지만 꼭 사용해야 할 부분을...
특히 내용에 대해서 뭐 딱히 없는 게 좋지 않나요?모르지만...
다음 코드
users_controller에서
def index 
   @user_cache = User.last

   @users = User.all
end 
view
index.html.erb
<% cache(@user_cache) do  %>

    <h1>Users#index</h1>
    <p>Find me in app/views/users/index.html.erb</p>
    <% @users.each do |user| %>
            <%= user.first_name %>
            <%= user.last_name %>
            <%= user.phone %>
            <%= user.address %>
    <% end %>

<% end %>
이렇게 되면 결국은...

Completed 200 OK in 214ms (Views: 197.8ms | ActiveRecord: 3.5ms)
Completed 200 OK in 32ms (Views: 28.2ms | ActiveRecord: 0.2ms)
Completed 200 OK in 34ms (Views: 29.5ms | ActiveRecord: 0.3ms)
첫 번째는 197ms로 늦었지만 이후 30ms 이하에 이르렀다.
확실히 두 번째부터는 읽기가 조금 빠를 거예요. 그런데 솔직히 캐치를 사용하지 않은 것과 다를 게 없어요. 그래서 캐치의 장점을 잘 몰라요..
아마 사용법일 거야 근데 캐치부터 쓰면 되는 건 아닌 것 같아
종결어.

좋은 웹페이지 즐겨찾기