Hi,
Background - I'm serving files (text, images) to a browser via my Rails application as the user needs to be authenticated too. The files are on file system, however references are in the database, as I'm using PAPERCLIP. Using AUTHLOGIC for authentication. I'm finding the response times are quite bad, as each request for HTML/image etc have to go through the Rails layers I guess of AUTHLOGIC, PAPERCLIP then stream back.
Q1 - How can I get benchmark times that start right from the first point the HTTP request hits the rails app, through to when it's ready to start streaming back the request (i.e. to avoid network traffic variations)?
I'm using "benchmark" in my controller however I'm pretty sure I'm missing other delays like: authentication via AuthLogic, etc... For example I'm roughly doing
def find
self.class.benchmark("BENCHMARK REPORT") do
search_path = params[:path] * "/"
webfile = Webfile.find_by_path( search_path )
if webfile
send_file webfile.file.path , :type => webfile.file_content_type, :disposition => 'inline'
else
render :text => "COULD NOT FIND YOUR FILE WITH PATH = #{params [:path]}"
end
end
end
Q2 - Given I want users to authenticate for HTML & associated files (CSS, images) then page needs, is there any obvious way to get an order of magnitude improvement? I guess I could save in session state the list of children files a HTML page needs & get its file location path, until the subsequent requests come, and that would some a database lookup (at the expense of using session state)?
thanks