Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch ActiveSupport::FileUpdateChecker generically #57

Open
lowjoel opened this issue Jun 28, 2015 · 2 comments
Open

Patch ActiveSupport::FileUpdateChecker generically #57

lowjoel opened this issue Jun 28, 2015 · 2 comments

Comments

@lowjoel
Copy link

lowjoel commented Jun 28, 2015

I think it would give us a bit of a performance win if we switch all FileUpdateChecker reloaders generically. Another potentially slow bit of code in ActiveSupport is the code that checks for updated i18n files. In a large project, there could be many yaml files in the checker.

In my project, there are 57 files in the checker, leading to ~3100 IO operations per request (about 10% of total I/O operations)

I see that Sprockets takes a very long time as well, so maybe that can be patched somehow, but the way to do that is not obvious (to me)

@thedarkone
Copy link
Owner

I'll think about monkey-patching i18n reloader into the async module.

I had multiple reports of Sprockets somehow interfering with rails-dev-boost, but no reproducible test case (#36, #43, #50).

@lowjoel
Copy link
Author

lowjoel commented Jul 2, 2015

My analysis (on Windows) has been that Sprockets is slow only because of the incredibly large number of I/O operations it does on every page load. The Rack profiler indicates > 50% of my page load time is on Sprockets (and about that percentage of I/O operations as well, over the entire page load)

Installing this gem does not slow down page loads for my app (Coursemology/Coursemology2) but installing it together with wavii/rails-dev-tweaks does. (okay, it does slow things down by < 3%, but within measurement error)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants