Nếu bạn đăng nội dung của nhật ký khi yêu cầu đầu tiên được xử lý thì có lẽ chúng tôi có thể tìm ra điều gì làm cho nó quá chậm. Ví dụ: đây là nhật ký của tôi khi người dùng đầu tiên truy cập vào trang web
Booting Mongrel (use 'script/server webrick' to force WEBrick)
Rails 2.1.0 application starting on http://0.0.0.0:3000
Debugger enabled
Call with -d to detach
Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/mime_type.rb:66: warning: already initialized constant CSV
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.
Processing SessionsController#new (for 127.0.0.1 at 2009-05-26 12:26:00) [GET]
Session ID: de2acf074759026e1ed6205724f547a9
Parameters: {"action"=>"new", "controller"=>"sessions"}
Rendering sessions/new
Completed in 0.00587 (170 reqs/sec) | Rendering: 0.00298 (50%) | DB: 0.00092 (15%) | 200 OK [http://localhost/]
Tôi nghĩ 170 reqs/giây là tốt cho ứng dụng của chúng tôi nhưng những người khác có thể thấy chậm. Bạn có thể thấy từ số liệu thống kê mà đường ray cung cấp rằng một nửa thời gian cần thiết được dành để hiển thị phản hồi - trong trường hợp này tạo HTML cho màn hình đăng nhập. Nếu yêu cầu này mất nhiều thời gian, cổng gọi đầu tiên của tôi sẽ là lượt xem và người trợ giúp được liên kết với màn hình đăng nhập.
Nếu bạn có một hệ thống mất nhiều thời gian để tự khởi chạy trong lần yêu cầu đầu tiên thì tại sao không lén lút và viết chương trình khởi động của riêng bạn trước tiên chạy đường ray rồi gửi yêu cầu giả mạo qua curl. Bằng cách đó người dùng của bạn không bao giờ thấy sự cố.
Chris
Nguồn
2009-05-26 11:30:56
Cảm ơn bạn đã gợi ý. Đây là logfile của tôi: http://pastie.org/private/ih2mpcmjpofp5jmfsvw Đôi khi, nó kéo dài hơn 1600 ms để trả lời yêu cầu của tôi. Tôi thực sự không có một đầu mối ... – Stefan
Bạn đang sử dụng phiên bản đường ray nào? Hoàn thành trong 10367ms (Xem: 1572, DB: 450) | 200 OK [http: // localhost/search? Search = stefan +] Có vẻ như mất 10 giây để trả lời yêu cầu đầu tiên. Tôi đoán rằng tìm kiếm một lần nữa cho cùng một truy vấn "stefan" là nhanh hơn nhiều? Mất bao lâu để tìm một bản ghi khác? Cuối cùng mất bao lâu để tìm kiếm một bản ghi không tồn tại? –