`preferred_languages.expand` in browse_helper.rb is a bit expensive, due to the Locale handling that's being triggered for every single element (see stacktrace below).
However, preferred_languages are not expected to change during a request. They seem like a good candidate for caching. preferred_languages is already cached in the application_controller, but the expanded version is not. Caching should work on a request basis. After the request is done, the instance variable should be empty. Unit tests somehow don't have a concept of a request, that's why I had to manually set the value back to nil. In case an element doesn't have any tags, there isn't much point calling `feature_name`. Maybe this empty tags check could be moved from `printable_element_name` inside `feature_name`? I've seen about 50% performance improvement on top of #6338 by caching preferred_languages this way. <img width="1573" height="663" alt="locale_keys" src="https://github.com/user-attachments/assets/795494ab-366b-4dc9-9b59-4a6e9988e72c" /> You can view, comment on, or merge this pull request online at: https://github.com/openstreetmap/openstreetmap-website/pull/6344 -- Commit Summary -- * Cache preferred_languages -- File Changes -- M app/helpers/browse_helper.rb (8) M test/helpers/browse_helper_test.rb (3) -- Patch Links -- https://github.com/openstreetmap/openstreetmap-website/pull/6344.patch https://github.com/openstreetmap/openstreetmap-website/pull/6344.diff -- Reply to this email directly or view it on GitHub: https://github.com/openstreetmap/openstreetmap-website/pull/6344 You are receiving this because you are subscribed to this thread. Message ID: <openstreetmap/openstreetmap-website/pull/6...@github.com>
_______________________________________________ rails-dev mailing list rails-dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/rails-dev