- 18 8月, 2015 1 次提交
-
-
由 amitkumarsuroliya 提交于
-
- 11 8月, 2015 2 次提交
-
-
由 Kasper Timm Hansen 提交于
-
由 Derek Prior 提交于
Browsers have not been limited to two connections per host for quite some time now. With more connections allowed, the trade-off involved in asset host distribution isn't so clear and it becomes more important that developers measure actual performance before and after.
-
- 20 7月, 2015 1 次提交
-
-
由 schneems 提交于
I wrote a utility that helps find areas where you could optimize your program using a frozen string instead of a string literal, it's called [let_it_go](https://github.com/schneems/let_it_go). After going through the output and adding `.freeze` I was able to eliminate the creation of 1,114 string objects on EVERY request to [codetriage](codetriage.com). How does this impact execution? To look at memory: ```ruby require 'get_process_mem' mem = GetProcessMem.new GC.start GC.disable 1_114.times { " " } before = mem.mb after = mem.mb GC.enable puts "Diff: #{after - before} mb" ``` Creating 1,114 string objects results in `Diff: 0.03125 mb` of RAM allocated on every request. Or 1mb every 32 requests. To look at raw speed: ```ruby require 'benchmark/ips' number_of_objects_reduced = 1_114 Benchmark.ips do |x| x.report("freeze") { number_of_objects_reduced.times { " ".freeze } } x.report("no-freeze") { number_of_objects_reduced.times { " " } } end ``` We get the results ``` Calculating ------------------------------------- freeze 1.428k i/100ms no-freeze 609.000 i/100ms ------------------------------------------------- freeze 14.363k (± 8.5%) i/s - 71.400k no-freeze 6.084k (± 8.1%) i/s - 30.450k ``` Now we can do some maths: ```ruby ips = 6_226k # iterations / 1 second call_time_before = 1.0 / ips # seconds per iteration ips = 15_254 # iterations / 1 second call_time_after = 1.0 / ips # seconds per iteration diff = call_time_before - call_time_after number_of_objects_reduced * diff * 100 # => 0.4530373333993266 miliseconds saved per request ``` So we're shaving off 1 second of execution time for every 220 requests. Is this going to be an insane speed boost to any Rails app: nope. Should we merge it: yep. p.s. If you know of a method call that doesn't modify a string input such as [String#gsub](https://github.com/schneems/let_it_go/blob/b0e2da69f0cca87ab581022baa43291cdf48638c/lib/let_it_go/core_ext/string.rb#L37) please [give me a pull request to the appropriate file](https://github.com/schneems/let_it_go/blob/b0e2da69f0cca87ab581022baa43291cdf48638c/lib/let_it_go/core_ext/string.rb#L37), or open an issue in LetItGo so we can track and freeze more strings. Keep those strings Frozen ![](https://www.dropbox.com/s/z4dj9fdsv213r4v/let-it-go.gif?dl=1)
-
- 29 6月, 2015 1 次提交
-
-
由 Anton Kolomiychuk 提交于
-
- 16 4月, 2015 2 次提交
-
-
由 Mehmet Emin İNAÇ 提交于
-
由 Anton Davydov 提交于
Added informations about :host options for each url helper (#javascript_url, #video_url, #stylesheet_url, etc) based on #asser_url method.
-
- 14 9月, 2014 1 次提交
-
-
由 Matthew Draper 提交于
This reverts commit 21ec7fef. Per #16911, there's actually a good reason for a "blank" value to have a useful `to_s` here. So let's also add some tests to prove that.
-
- 15 7月, 2014 1 次提交
-
-
由 Jolyon Pawlyn 提交于
Return an absolute instead of relative path from an asset url in the case of the `asset_host` proc returning nil
-
- 04 7月, 2014 1 次提交
-
-
由 Akshay Vishnoi 提交于
-
- 17 6月, 2014 1 次提交
-
-
由 Kuldeep Aggarwal 提交于
see cc255d34
-
- 31 5月, 2014 1 次提交
-
-
由 Manuel Meurer 提交于
Update documentation for setting asset_host to a Proc, mention that the request parameter might not be supplied [ci skip]
-
- 27 5月, 2014 1 次提交
-
-
由 Aditya Kapoor 提交于
-
- 25 5月, 2014 1 次提交
-
-
由 Juanito Fatas 提交于
-
- 09 5月, 2014 1 次提交
-
-
由 Hubert Łępicki 提交于
Updated CHANGELOG.md with entry about :host in asset_url
-
- 08 5月, 2014 1 次提交
-
-
由 Hubert Łępicki 提交于
-
- 02 5月, 2014 1 次提交
-
-
由 phoet 提交于
-
- 04 9月, 2013 1 次提交
-
-
由 namusyaka 提交于
-
- 20 6月, 2013 1 次提交
-
-
由 Piotr Sarnacki 提交于
-
- 17 6月, 2013 1 次提交
-
-
由 David Celis 提交于
Context: https://gist.github.com/radar/5793814 The `URI_REGEXP` that various AssetUrl helpers use is currently case sensitive when checking for a URI scheme. This means if you try to pass a URL like `HTTP://www.example.com/path/to/image.jpg`, you end up with a bogus asset path: `/assets/HTTP://www.example.com/path/to/image.jpg`. URLs are case insensitive, so this regexp should be as well. Signed-off-by: NDavid Celis <me@davidcel.is>
-
- 15 5月, 2013 1 次提交
-
-
由 Sean Walbran 提交于
-
- 22 1月, 2013 1 次提交
-
-
由 Piotr Sarnacki 提交于
Historically serving assets from a mountable engine could be achieved by running ActionDispatch::Static as a part of engine middleware stack or to copy assets prefixed with an engine name. After introduction of assets pipeline this is not needed as all of the assets are served or compiled into main application's assets. This commit removes the obsolete line making asset_path always generate paths relative to the root or config.relative_url_root if it's set. (closes #8119)
-
- 02 12月, 2012 1 次提交
-
-
由 Alvaro Pereyra 提交于
-
- 16 10月, 2012 1 次提交
-
-
由 Joshua Peek 提交于
-
- 15 10月, 2012 3 次提交
-
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
-
- 13 10月, 2012 6 次提交
-
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
Add asset_path/url helper for a consolidated entry point Expose compute_asset_path as a public API Expose compute_asset_host as a public API Move RAILS_ASSET_ID to its own module, AssetIdHelper Removed AV::AssetPaths
-
由 Joshua Peek 提交于
-
由 Joshua Peek 提交于
-
- 26 9月, 2012 3 次提交
-
-
由 Nihad Abbasov 提交于
[ci-skip]
-
由 Nihad Abbasov 提交于
This will set image's both width and height attributes to value passed in size option.
-
- 28 8月, 2012 1 次提交
-
-
由 Piotr Sarnacki 提交于
Automatically handling mime types for things other than :rss and :atom is not functionality that justifies dependency on Mime::Type from actionpack.
-
- 21 8月, 2012 1 次提交
-
-
由 Janko Marohnić 提交于
-
- 01 7月, 2012 1 次提交
-
-
由 Nick Howard 提交于
-
- 18 5月, 2012 1 次提交
-
-
由 Kirill Lashuk 提交于
-