faster_rubygems 0.12.5 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. data/README +47 -37
  2. data/VERSION +1 -1
  3. data/benchmarks.txt +87 -81
  4. data/lib/rubygems_plugin.rb +8 -4
  5. metadata +4 -4
data/README CHANGED
@@ -1,42 +1,42 @@
1
1
  = Faster Rubygems =
2
2
 
3
3
 
4
-
5
- This gem makes loading rubygems *much* faster.
6
-
7
- What it does is cache the location of files in your gem dirs, ex:
8
-
9
- /lib/ruby/gems/1.8/jruby/{active_support, active_record}
10
-
11
- it creates this file:
12
-
13
- /lib/ruby/gems/1.8/jruby/.faster_rubygems_cache
14
-
15
- Then it uses *that* instead of loading full blown rubygems.
16
-
17
-
18
- Timing (on doze with ~ 50 gems installed):
19
-
20
- no rubygems at all:
21
-
22
- $ jruby -e 1
23
- 0.68s.
24
-
25
- require 'rubygems' time:
26
-
27
- $ jruby -rubygems -e 1
28
-
29
- 2.36s normal rubygems: -> 0.94s with faster_rubygems
30
-
31
- time to do a rake -V (get rake version):
32
-
33
- $ jruby -S rake -V
34
-
35
- 2.48s with normal rubygems: -> 1.50s with faster_rubygems
36
-
37
- (rake installed into site_ruby and loaded without rubygems takes 1.41s).
38
-
39
- Thus we see that loading of rubygems has decreased from 1.4s to between 0.1s and 0.3s
4
+
5
+ This gem makes loading rubygems *much* faster.
6
+
7
+ What it does is cache the location of files in your gem dirs, ex:
8
+
9
+ /lib/ruby/gems/1.8/jruby/{active_support, active_record}
10
+
11
+ it creates this file:
12
+
13
+ /lib/ruby/gems/1.8/jruby/.faster_rubygems_cache
14
+
15
+ Then it uses *that* instead of loading full blown rubygems.
16
+
17
+
18
+ Timing (on doze with ~ 50 gems installed):
19
+
20
+ no rubygems at all:
21
+
22
+ $ jruby -e 1
23
+ 0.68s.
24
+
25
+ require 'rubygems' time:
26
+
27
+ $ jruby -rubygems -e 1
28
+
29
+ 2.36s normal rubygems: -> 0.94s with faster_rubygems
30
+
31
+ time to do a rake -V (get rake version):
32
+
33
+ $ jruby -S rake -V
34
+
35
+ 2.48s with normal rubygems: -> 1.50s with faster_rubygems
36
+
37
+ (rake installed into site_ruby and loaded without rubygems takes 1.41s).
38
+
39
+ Thus we see that loading of rubygems has decreased from 1.4s to between 0.1s and 0.3s
40
40
 
41
41
 
42
42
  with mingw (windows).
@@ -53,6 +53,14 @@ with faster_rubygems:
53
53
  0.19s
54
54
 
55
55
 
56
+ linux:
57
+
58
+ $ time ruby -S whichr whichr
59
+ ruby 1.9: 0.6s -> 0.13s
60
+ ruby 1.8: 0.17s -> 0.09s
61
+
62
+ Thus we see that it helps startup time for 1.9 on Linux, but not much for 1.8 on Linux.
63
+
56
64
  == installation ==
57
65
 
58
66
  $ gem install faster_rubygems # installs faster_rubygems into your site lib, overrides normal rubygems
@@ -70,6 +78,7 @@ now there is a manual step that must be followed:
70
78
 
71
79
  Note that full rubygems will still be loaded when necessary (for example when installing new gems). This is automatic.
72
80
 
81
+ Also note that using this reduces the memory footprint of your application by not having to load full rubygems, with its files and accompanying gemspecs, which are traditionally all re-loaded every time, but not with faster_rubygems.
73
82
 
74
83
  == Rails ==
75
84
 
@@ -102,7 +111,8 @@ http://github.com/fabien/minigems/tree/master
102
111
  1.9's gem_prelude
103
112
  http://www.ruby-forum.com/topic/191673
104
113
  the Builder gem
114
+ http://github.com/jeremyevans/zozo
105
115
 
106
116
  Source/feedback:
107
117
 
108
- http://www.github.com/rdp/faster_rubygems
118
+ http://www.github.com/rdp/faster_rubygems
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.12.5
1
+ 0.12.6
data/benchmarks.txt CHANGED
@@ -1,92 +1,98 @@
1
-
2
-
3
- benchmarks runing [$ whichr whichr] (the whichr gem just behaves like the "which" command in Linux), best time seen:
4
-
5
- mingw 1.8
1
+
2
+ benchmarks runing [$ whichr whichr] (the whichr gem just behaves like the "which" command in Linux), best time seen:
3
+
4
+ mingw 1.8
6
5
 
7
6
  normal rubygems
8
7
  0.77
9
8
 
10
9
  faster_rubygems with cache
11
- 0.14
12
-
13
- faster_rubygems without cache:
10
+ 0.14
11
+
12
+ faster_rubygems without cache:
14
13
  0.20
15
-
16
- mingw 1.9
17
-
14
+
15
+ (on an older computer with 1.8 1s -> 0.3s)
16
+
17
+ mingw 1.9
18
+
18
19
  normal rubygems:
19
20
  3.79
20
21
 
21
22
  faster_rubygems with cache:
22
- 0.19
23
-
24
- faster_rubygems without cache:
25
- 0.50
26
-
27
- jruby, 1.8 mode
28
-
29
- normal rubygems:
30
- 2.31
31
-
32
- faster_rubygems without cache (deleted the cache file temporarily to force it to not use it):
33
- 1.15
34
-
35
- faster_rubygems with cache:
36
- 1.11
37
-
38
-
39
- rails 2.3.8 [ $ ruby script\runner -e production "puts 3" ]
40
- Unfortunately rails requires a load of full rubygems. So currently faster_rubygems doesn't help it much.
41
-
42
- faster_require (other gem) seems to help, however.
43
-
44
- 1.9
45
- normal gem_prelude[RUBYOPT=]
46
- 20.85
47
-
48
- faster_rubygems without cache [RUBYOPT=-rfaster_rubygems]
49
- 20.7
50
-
51
- faster_rubygems with cache [RUBYOPT=-rfaster_rubygems --disable-gems]:
52
- 12.10
53
-
54
- normal gem_prelude, with faster_require gem [RUBYOPT=-rfaster_require]:
55
- 8.93
56
-
57
- faster_rubygems, without cache, with faster_require [RUBYOPT=-rfaster_rubygems -rfaster_require]:
58
- 8.99
59
-
60
- * recommend this configuration for ruby 1.9 and rails.
61
-
62
- faster_rubygems, with cache [RUBYOPT=--disable-gems -rfaster_rubygems -rfaster_require]
63
- fail (gotta fix that, then will probably be fastest option)
64
-
65
- 1.8
66
-
67
- normal rubygems:
68
- 6.54
69
-
70
- faster_rubygems without cache:
71
- 6.12
72
-
73
- faster_rubygems with cache:
74
- 6.48
75
-
76
- normal rubygems, faster_require:
77
- 3.53
78
-
79
- faster_rubygems with cache and with faster_require (have to use it as require 'faster_require')
80
- 2.97
81
-
82
- * recommend this configuration, which means you'll have to add a require 'faster_require' to your rails script at the beginning, like in boot.rb
83
-
84
- faster_rubygems without cache and with faster_require
85
- 3.31
86
-
87
-
88
- TODO:
23
+ 0.19
24
+
25
+ faster_rubygems without cache:
26
+ 0.50
27
+
28
+ jruby, 1.8 mode
29
+
30
+ normal rubygems:
31
+ 2.31
32
+
33
+ faster_rubygems without cache (deleted the cache file temporarily to force it to not use it):
34
+ 1.15
35
+
36
+ faster_rubygems with cache:
37
+ 1.11
38
+
39
+
40
+ rails 2.3.8 [ $ ruby script\runner -e production "puts 3" ]
41
+ Unfortunately rails requires a load of full rubygems. So currently faster_rubygems doesn't help it much.
42
+
43
+ faster_require (other gem) seems to help, however.
44
+
45
+ 1.9
46
+ normal gem_prelude[RUBYOPT=]
47
+ 20.85
48
+
49
+ faster_rubygems without cache [RUBYOPT=-rfaster_rubygems]
50
+ 20.7
51
+
52
+ faster_rubygems with cache [RUBYOPT=-rfaster_rubygems --disable-gems]:
53
+ 12.10
54
+
55
+ normal gem_prelude, with faster_require gem [RUBYOPT=-rfaster_require]:
56
+ 8.93
57
+
58
+ faster_rubygems, without cache, with faster_require [RUBYOPT=-rfaster_rubygems -rfaster_require]:
59
+ 8.99
60
+
61
+ * recommend this configuration for ruby 1.9 and rails.
62
+
63
+ faster_rubygems, with cache [RUBYOPT=--disable-gems -rfaster_rubygems -rfaster_require]
64
+ fail (gotta fix that, then will probably be fastest option)
65
+
66
+ 1.8
67
+
68
+ normal rubygems:
69
+ 6.54
70
+
71
+ faster_rubygems without cache:
72
+ 6.12
73
+
74
+ faster_rubygems with cache:
75
+ 6.48
76
+
77
+ normal rubygems, faster_require:
78
+ 3.53
79
+
80
+ faster_rubygems with cache and with faster_require (have to use it as require 'faster_require')
81
+ 2.97
82
+
83
+ * recommend this configuration, which means you'll have to add a require 'faster_require' to your rails script at the beginning, like in boot.rb
84
+
85
+ faster_rubygems without cache and with faster_require
86
+ 3.31
87
+
88
+ jruby linux:
89
+ $ jruby -S whichr whichr
90
+ 2.35s -> 1.5s
91
+
92
+
93
+
94
+ TODO:
89
95
  jruby spawning itself was *so slow* it seemed (timer.rb)
90
- only regenerate appropriate cache files after gem installs...I guess.
91
- only cache lib filenames, not spec files, et al...
92
- chmod after create (check if necessary first)
96
+ only regenerate appropriate cache files after gem installs...I guess.
97
+ only cache lib filenames, not spec files, et al...
98
+ chmod after create (check if necessary first)
@@ -1,13 +1,17 @@
1
1
  Gem.post_install {
2
2
  # accomodate for when they install more than one at a time...
3
3
  # a straight require won't cut it...
4
- print 'because of new gem installation '
5
- load "faster_rubygems/create_cache_for_all.rb"
4
+ @recreate_proc ||= at_exit {
5
+ print 'because of new gem installation '
6
+ load "faster_rubygems/create_cache_for_all.rb"
7
+ }
6
8
  }
7
9
 
8
10
  Gem.post_uninstall {
9
- print 'because of gem uninstallation '
10
- load "faster_rubygems/create_cache_for_all.rb"
11
+ @recreate_proc ||= at_exit {
12
+ print 'because of gem uninstallation '
13
+ load "faster_rubygems/create_cache_for_all.rb"
14
+ }
11
15
  }
12
16
 
13
17
  Gem.pre_uninstall { |gem_installer_instance|
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faster_rubygems
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 12
9
- - 5
10
- version: 0.12.5
9
+ - 6
10
+ version: 0.12.6
11
11
  platform: ruby
12
12
  authors: []
13
13
 
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-02 00:00:00 -06:00
18
+ date: 2010-07-06 00:00:00 -06:00
19
19
  default_executable: faster_rubygems
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency