Skip to content

Instantly share code, notes, and snippets.

@yuki24
Last active August 29, 2015 14:20
Show Gist options
  • Save yuki24/51d23760772e1d74084a to your computer and use it in GitHub Desktop.
Save yuki24/51d23760772e1d74084a to your computer and use it in GitHub Desktop.
memory optimization of DidYouMean::WordCollection - round 2

Total allocated 35900

Total retained 2

allocated memory by gem

3838000  did_you_mean/lib
  16800  ruby-2.2.2/lib

allocated memory by file

2273600  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb
1516400  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb
  48000  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb
  16800  /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/delegate.rb

allocated memory by location

1797600  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:17
1357200  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32
 476000  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:18
  71200  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:21
  32000  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb:11
  24000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:48
  16800  /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/delegate.rb:87
  16000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:47
  16000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:22
  16000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:19
  16000  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb:17
   8000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:56
   8000  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:55

allocated objects by gem

 35800  did_you_mean/lib
   100  ruby-2.2.2/lib

allocated objects by file

 18500  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb
 17000  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb
   300  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb
   100  /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/delegate.rb

allocated objects by location

 16900  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32
 14800  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:17
  2200  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:18
   500  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:21
   300  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:48
   200  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:47
   200  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:22
   200  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:19
   200  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb:11
   100  /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/delegate.rb:87
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:56
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:55
   100  /GitHub/did_you_mean/lib/did_you_mean/levenshtein.rb:17

retained memory by gem

   256  did_you_mean/lib

retained memory by file

   144  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb
   112  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb

retained memory by location

   144  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:21
   112  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:17

retained objects by gem

     2  did_you_mean/lib

retained objects by file

     1  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb
     1  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb

retained objects by location

     1  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:21
     1  /GitHub/did_you_mean/lib/did_you_mean/jaro_winkler.rb:17

Allocated String Report

   300  "start_with?"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:19
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:22

   100  "unpack"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "ascii_only?"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "valid_encoding?"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "b"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "force_encoding"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "encoding"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "rpartition"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "partition"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "slice!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "slice"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "sum"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "each_codepoint"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "each_char"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "each_byte"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "each_line"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "squeeze!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "delete!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "tr_s!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "tr!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "count"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "squeeze"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "delete"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "tr_s"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "tr"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "rstrip!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "lstrip!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "strip!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "chomp!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "chop!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "gsub!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "sub!"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "rstrip"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "lstrip"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "strip"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "chomp"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "chop"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "gsub"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "sub"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "center"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "rjust"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "ljust"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "scan"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "end_with?"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "include?"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "ord"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "to_sym"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "intern"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "crypt"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

   100  "prepend"
   100  /GitHub/did_you_mean/lib/did_you_mean/word_collection.rb:32

Retained String Report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment