У меня есть два простых приложения Ruby on Rails, одно из которых использует ActiveResource для доступа к другому. Обработка ActiveResource, кажется, добавляет ~ 1000 мс накладных расходов. Это журналы трассировки:
Запрос:
Started GET "/documents/1/retrieve?name=LRActionItems" for 127.0.0.1 at 2011-07-28 17:24:07 -0400
Processing by DocumentsController#retrieve as
Parameters: {"name"=>"LRActionItems", "id"=>"1"}
retrieving persistent_data for id 1 - name LRActionItems
GET http://localhost:3333/field_value_collections/1/field_values/find_by_field_name.xml?field_name=LRActionItems
--> 200 OK 639 (1030.1ms)
Rendered text template (0.0ms)
Completed 200 OK in 1037ms (Views: 1.0ms | ActiveRecord: 1.0ms)
Ответчик:
Started GET "/field_value_collections/1/field_values/find_by_field_name.xml?field_name=LRActionItems" for 127.0.0.1 at 2011-07-28 17:24:08 -0400
Processing by FieldValuesController#find_by_field_name as XML
Parameters: {"field_name"=>"LRActionItems", "field_value_collection_id"=>"1"}
Completed 200 OK in 3ms (Views: 1.0ms | ActiveRecord: 0.0ms)
cache: [GET /field_value_collections/1/field_values/find_by_field_name.xml?field_name=ULActionItems] miss
Как видите, отвечающий отвечает в 3 мс, но запрашивающему требуется 1037 мс, поскольку для запроса ActiveResource требуется 1030,1 мс.
Я нахожусь в рабочем режиме (режим разработки на самом деле немного медленнее - 10-15 мс)
Я использую WEBrick и очень мало настраиваю из проектов, которые были сгенерированы.
Это нормальная производительность? Есть ли какая-нибудь конфигурация, которая может сделать это намного лучше?