<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="18231" data-post-id="18231">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dsissitka" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dsissitka
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Oooh, let’s see. Same test as before:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Erlang/OTP 19 [erts-8.1] [source-e7be63d] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Elixir 1.3.4
Benchmark suite executing with the following configuration:
warmup: 2.0s
time: 10.0s
parallel: 1
inputs: none specified
Estimated total run time: 36.0s

Benchmarking jiffy...
Benchmarking poison...
Benchmarking tiny...

Name             ips        average  deviation         median
jiffy        39.40 K       25.38 μs    ±81.69%       20.00 μs
tiny         24.06 K       41.55 μs    ±65.97%       32.00 μs
poison       19.16 K       52.19 μs    ±53.85%       42.00 μs

Comparison: 
jiffy        39.40 K
tiny         24.06 K - 1.64x slower
poison       19.16 K - 2.06x slower
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="18231" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/93">Post #92</a>
	                </div>
	            </div>
              <div id="likers-container-18231" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="18231"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #92"></div>
  </section>
</div>
    <div class="postbit" id="18256" data-post-id="18256">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="orestis" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/orestis/120/1949_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  orestis
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>For what it’s worth, my PR that classifies Phoenix as full stack (and compares it to cowboy) was merged yesterday. So at least at the next round we can filter the noise and have meaningful comparisons.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="18256" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/94">Post #93</a>
	                </div>
	            </div>
              <div id="likers-container-18256" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="18256"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #93"></div>
  </section>
</div>
    <div class="postbit" id="18374" data-post-id="18374">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="orestis" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/orestis/120/1949_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  orestis
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have also started some work on “optimizing” phoenix here:</p>
<p><a href="https://github.com/orestis/FrameworkBenchmarks" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/orestis/FrameworkBenchmarks</a></p>
<p>By optimizing I mean just fixing some default values. I have no idea what I’m doing so I would appreciate experienced phoenix devs to have a look.</p>
<p>I haven’t tried to actually benchmark things to see if my optimizations make any difference. I do plan to write some tests though to ensure I don’t break anything.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="18374" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/95">Post #94</a>
	                </div>
	            </div>
              <div id="likers-container-18374" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="18374"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #94"></div>
  </section>
</div>
    <div class="postbit" id="18384" data-post-id="18384">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="keathley" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/keathley/120/2652_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  keathley
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><s>Is this already supported in Phoenix? I know that you can swap out the json_decoder in plug but I’m not sure if something similar exists in phoenix for encoding.</s></p>
<p>Nevermind. Answered my own question: <a href="https://hexdocs.pm/phoenix/Phoenix.Template.html#content" rel="noopener nofollow ugc">https://hexdocs.pm/phoenix/Phoenix.Template.html#content</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="18384" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/96">Post #95</a>
	                </div>
	            </div>
              <div id="likers-container-18384" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="18384"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #95"></div>
  </section>
</div>
    <div class="postbit" id="19214" data-post-id="19214">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Ajaxdone" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Ajaxdone/120/961_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Ajaxdone
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Sorry just found <a class="mention" href="/u/thousandsofthem" rel="nofollow">@thousandsofthem</a> already post the result above.</p>
<p>Here is their round 13 result:<br>
<a href="http://9to.one/B7ymuN" class="onebox" target="_blank" rel="noopener nofollow ugc">http://9to.one/B7ymuN</a></p>
<p>I previous use Play framework, Servlet, I don’t think they can even match Phoenix.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="19214" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/97">Post #96</a>
	                </div>
	            </div>
              <div id="likers-container-19214" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="19214"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #96"></div>
  </section>
</div>
    <div class="postbit" id="65419" data-post-id="65419">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="brightball" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/120/17192_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  brightball
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Disclaimer: See many previous discussions about being wary of benchmarks and be more-so wary about benchmarks of Elixir since they’re almost never representative of real world code. Assorted other benchmarks like <a href="https://github.com/tbrand/which_is_the_fastest" rel="noopener nofollow ugc">Which Framework is Fastest</a> or <a href="https://medium.com/unbabel-dev/a-tale-of-three-kings-e0be17a16e2b" rel="noopener nofollow ugc"> A Tale of 3 Kings</a> provide other view into things are good for perspective.</p>
<p>That said…the <a href="https://www.techempower.com/benchmarks/previews/round15/" rel="noopener nofollow ugc">Round 15 preview</a> is out. It’s based on the code that existed back in Nov, but overall things are about the same. Source code for the <a href="https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Elixir" rel="noopener nofollow ugc">Elixir tests is here</a>.</p>
<p>I know we had some folks talking about doing PR’s in the <a href="https://forum.elixirforum.com/t/techempower-benchmarks-round-14/5036" rel="nofollow">Round 14 thread</a>.</p>
<p>It would be nice to see the results with the faster <a href="https://github.com/michalmuskala/jason" rel="noopener nofollow ugc">Jason</a> JSON parser too. I saw another thread discussing HiPE and the Jason docs even mention that it outperforms Jiffy when compiled with HiPE. I’ve never touched HiPE but what I saw seemed to indicate that if all of the code wasn’t HiPE compatible that there would be high switching costs. Would it make sense to turn on HiPE here and how can we identify if there would be switching costs?</p>
<p>I know they aren’t representative, but at the least it’s still worth keeping things up to date since they will be looked at.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65419" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/98">Post #97</a>
	                </div>
	            </div>
              <div id="likers-container-65419" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65419"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #97"></div>
  </section>
</div>
    <div class="postbit" id="65423" data-post-id="65423">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><em>Just a quick note to say I’ve merged all threads on this as there has been some good discussion/critiques in some of the older threads <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></em></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65423" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/99">Post #98</a>
	                </div>
	            </div>
              <div id="likers-container-65423" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65423"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #98"></div>
  </section>
</div>
    <div class="postbit" id="77317" data-post-id="77317">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pillaiindu" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pillaiindu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>“<strong>What</strong>” makes Rails perform better than all other fullstack frameworks in Multiple Queries on physical servers? Can we port that “<strong>what</strong>” to Phoenix/Ecto?</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/8/85f2c991c4b573b30494fc8192e81f117e4b1f28.jpg" data-download-href="https://forum.elixirforum.com/uploads/default/85f2c991c4b573b30494fc8192e81f117e4b1f28" title="Screenshot%20from%202018-04-07%2016-00-05" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/8/85f2c991c4b573b30494fc8192e81f117e4b1f28_2_690x379.jpg" alt="Screenshot%20from%202018-04-07%2016-00-05" data-base62-sha1="j6XFJwxZjNgjgwFY7IcZbdS6oJi" width="690" height="379" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/8/85f2c991c4b573b30494fc8192e81f117e4b1f28_2_690x379.jpg, https://forum.elixirforum.com/uploads/default/original/2X/8/85f2c991c4b573b30494fc8192e81f117e4b1f28.jpg 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/8/85f2c991c4b573b30494fc8192e81f117e4b1f28.jpg 2x" data-dominant-color="BDBCB7"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Screenshot%20from%202018-04-07%2016-00-05</span><span class="informations">969×533 98.3 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p><a href="https://www.techempower.com/benchmarks/#section=data-r15&amp;hw=ph&amp;test=query&amp;l=horym5&amp;f=zik06v-zdk7i7-zik0zj-zik0zj-zhxjwf-zik0zj-xan9xb-cn3" rel="noopener nofollow ugc">Link to the benchmark</a>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="77317" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/100">Post #99</a>
	                </div>
	            </div>
              <div id="likers-container-77317" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="77317"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #99"></div>
  </section>
</div>
    <div class="postbit" id="77273" data-post-id="77273">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="brightball" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/120/17192_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  brightball
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This will get moved to the TechEmpower mega thread, but if you look at the code you’ll see that’s it’s holding the connection for all of the queries.</p>
<p>Elixir/Ecto doesn’t really NEED to solve this one because Ecto hands back the connection after every query in case the beam moves on to another process that needs it.</p>
<p>It could be done with repo transaction or Ecto Multi IIRC.</p>
<p>I spent some time looking at the source for Ruby, Elixir and Go examples on there. They both have some very specific query tuning going on.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="77273" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/101">Post #100</a>
	                </div>
	            </div>
              <div id="likers-container-77273" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="77273"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #100"></div>
  </section>
</div>
    <div class="postbit" id="77274" data-post-id="77274">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="outlog" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  outlog
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>yeah, see the other threads..</p>
<p>the benchmark is low concurrency (256) - the top frameworks doesn’t use the DB pool - eg 256 db connections and 256 keepalive clients..</p>
<p>so these frameworks does 256 db conn checkouts for the entire benchmark - the code is weird - and some of them have like 50-60 queries per request - ecto/phoenix does individual checkouts per query - so phoenix does thousands and thousands of db conn checkouts..</p>
<p>the benchmark setup is not real world production - from anything I know about or have ever heard about running in production like this.</p>
<p>also these tests are usually heavy on json serialization - does phoenix use the newer faster Jason - or even native jiffy? (the ruby json serializer is written in c - most likely also the .net one etc.)</p>
<p>ecto 3.0 should be getting the possibility for explicit checkout of the db conn - which will be beneficial for these benchmarks and for query heavy real world endpoints(real world: I do 8-10 db queries on channel join in my app - holding the conn might be beneficial).</p>
<p>using the jason json serializer should also 2x-ish the json part of the benchmark..</p>
<p>honestly, you should not use or give any value to the techempower benchmarks..</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="77274" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/techempower-benchmarks/171/102">Post #101</a>
	                </div>
	            </div>
              <div id="likers-container-77274" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="77274"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #101"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/171/load_more?page=11">Load more posts (29 remaining)</a>
</div></template></turbo-stream>