693c66dfde891a5d540dc4cdc0c712495c31100c
				
			
			
		
	The intent of the previous concatenation was to minimize object
allocations, which can end up being a slow killer.  However, it turns
out that under MRI 2.4.x, the shove-strings-in-an-array-and-join method
is not only arguably more common but (in this particular case) actually
allocates *fewer* objects than the string concatenation.
Or, at least, that's what I gather by running this:
    words = %w(palmettoes nudged hibernation bullish stockade's tightened Hades
    Dixie's formalize superego's commissaries Zappa's viceroy's apothecaries
    tablespoonful's barons Chennai tollgate ticked expands)
    a = Account.first
    KeywordMute.transaction do
      words.each { |w| KeywordMute.create!(keyword: w, account: a) }
      GC.start
      s1 = GC.stat
      re = String.new.tap do |str|
        scoped = KeywordMute.where(account: a)
        keywords = scoped.select(:id, :keyword)
        count = scoped.count
        keywords.find_each.with_index do |kw, index|
          str << Regexp.escape(kw.keyword.strip)
          str << '|' if index < count - 1
        end
      end
      s2 = GC.stat
      puts s1.inspect, s2.inspect
      raise ActiveRecord::Rollback
    end
vs this:
    words = %w( palmettoes nudged hibernation bullish stockade's tightened Hades Dixie's
    formalize superego's commissaries Zappa's viceroy's apothecaries tablespoonful's
    barons Chennai tollgate ticked expands
    )
    a = Account.first
    KeywordMute.transaction do
      words.each { |w| KeywordMute.create!(keyword: w, account: a) }
      GC.start
      s1 = GC.stat
      re = [].tap do |arr|
        KeywordMute.where(account: a).select(:keyword, :id).find_each do |m|
          arr << Regexp.escape(m.keyword.strip)
        end
      end.join('|')
      s2 = GC.stat
      puts s1.inspect, s2.inspect
      raise ActiveRecord::Rollback
    end
Using rails r, here is a comparison of the total_allocated_objects and
malloc_increase_bytes GC stat data:
                 total_allocated_objects        malloc_increase_bytes
string concat    3200241 -> 3201428 (+1187)     1176 -> 45216 (44040)
array join       3200380 -> 3201299 (+919)      1176 -> 36448 (35272)
		
	
Mastodon Glitch Edition
Now with automated deploys!
So here's the deal: we all work on this code, and then it runs on dev.glitch.social and anyone who uses that does so absolutely at their own risk. can you dig it?
- You can view documentation for this project at glitch-soc.github.io/docs/.
 - And contributing guidelines are available here and here.
 
Description
				
					Languages
				
				
								
								
									Ruby
								
								57.6%
							
						
							
								
								
									JavaScript
								
								26.6%
							
						
							
								
								
									SCSS
								
								10%
							
						
							
								
								
									Haml
								
								5.5%
							
						
							
								
								
									HTML
								
								0.2%