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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I recommend <a href="https://github.com/zmwangx/ets" class="inline-onebox" rel="noopener nofollow ugc">GitHub - zmwangx/ets: Command output timestamper · GitHub</a> as a tool to show you how much each step of a command took (with the caveat that each step must output a new line in the terminal).</p>
<p>The incremental mode does not always work so I just use the elapsed mode i.e.</p>
<pre data-code-wrap="bash"><code class="lang-bash">ets -s -c -f '[%T.%f]' ping google.com
</code></pre>
<p>I’ve used this many times to help me identify slow spots.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376428" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-376428" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376428"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="376447" data-post-id="376447">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I <a href="https://github.com/elixir-lang/elixir/commit/3e18aafa0a8b3ec2737c6aa19f71611f33430b20" rel="nofollow">pushed a commit</a> that measures what is happening within those 10 seconds, so you can try the v1.19 branch. In a nutshell, we do two things:</p>
<ol>
<li>we write files to disk</li>
<li>we consolidate protocols</li>
</ol>
<p>Then let me know the times reported.</p>
<p>I don’t think it is the “writing to disk” bit, cause that was happening before anyway, but I was able to optimize it anyway (a project with 1000 modules went from 1s to 333ms on my machine). I don’t think the gain will be noticeable in practice though, unless you are using containers or network drives.</p>
<p>On the other hand, we did change considerably how protocol consolidation works on v1.19, so perhaps a regression there?</p>
<hr>
<p>I created a project with 10 protocols with 200 implementations each, and the consolidation pass is 3 seconds:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">protos =
  for i &lt;- 1..10 do
    defprotocol Module.concat(Proto, "M#{i}") do
      def foo_bar(x)
    end

    Module.concat(Proto, "M#{i}")
  end

for j &lt;- 1..200 do
  defmodule Module.concat(Foo, "M#{j}") do
    defstruct [:foo]

    for proto &lt;- protos do
      defimpl proto do
        def foo_bar(x), do: x
      end
    end
  end
end
</code></pre>
<p>So in case both the writing and consolidation are fast in your case, you may need to add some debugging statements to find the root cause.</p>
<hr>
<p>PS: I also saw that you changed Erlang/OTP versions. Try running v1.19 with the same OTP version to rule out an issue with OTP!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376447" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-376447" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376447"
                     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 #13"></div>
  </section>
</div>
    <div class="postbit" id="376468" data-post-id="376468">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a>!</p>
<p>Findings:</p>
<ul>
<li>1.19 slowdown confirmed to be in “after compile callback”.</li>
<li>1.20 introduces additional slowdown in “group pass check” (1.4 → 6.4 seconds)</li>
<li>OTP version not relevant.</li>
</ul>
<p>Details:<br>
I re-ran it in 1.18 just to confirm that the protocol consolidation / file writing was faster in 1.18:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[profile] Finished compilation cycle of 1648 modules in 20759ms
# About 3 seconds in 1.18, which matches the overall time
[profile] Finished group pass check of 1648 modules in 1069ms
&lt;- Ran mix compile.elixir in 23795ms
</code></pre>
<p>I can also confirm that OTP has no impact (i.e. 1.19 with older OTP version is also slow)</p>
<p>Compiling with the latest changes gives the following output:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 1648 modules in 21185ms
[profile] Finished writing modules to disk in 284ms
[profile] Finished after compile callback in 8216ms
[profile] Finished group pass check of 1648 modules in 6402ms
&lt;- Ran mix compile.elixir in 36360ms
</code></pre>
<p>So “after compile callback” is indeed slow, but strangely “group pass check” is also slower in 1.20.</p>
<p>So I started from 1.19.1’s source and just added the “after compile callback” output and got back the quicker “group pass check”:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 1648 modules in 21974ms
[profile] Finished after compile callback in 9124ms
[profile] Finished group pass check of 1648 modules in 1398ms
&lt;- Ran mix compile.elixir in 34360ms
</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="376468" data-batch-url="/posts/batch_likers">
                        7
                      </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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-376468" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376468"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="376479" data-post-id="376479">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>So “after compile callback” is indeed slow, but strangely “group pass check” is also slower in 1.20.</p>
</blockquote>
<p>It is slower because we are already doing even more inference on v1.20. We will probably need to improve the performance though before we ship it, but we can postpone this conversation a bit.</p>
<hr>
<p>Back to the issue at hand, I recommend measuring some times here:</p>
<p><a href="https://github.com/elixir-lang/elixir/blob/22b47d7f48f2284f31bdca6e8799df0e5dbcc078/lib/mix/lib/mix/compilers/elixir.ex#L1131-L1136" class="onebox" target="_blank" rel="noopener nofollow">https://github.com/elixir-lang/elixir/blob/22b47d7f48f2284f31bdca6e8799df0e5dbcc078/lib/mix/lib/mix/compilers/elixir.ex#L1131-L1136</a></p>
<p>And I assume <code>maybe_consolidate</code> is the slow one:</p>
<p><a href="https://github.com/elixir-lang/elixir/blob/22b47d7f48f2284f31bdca6e8799df0e5dbcc078/lib/mix/lib/mix/compilers/elixir.ex#L1386-L1403" class="onebox" target="_blank" rel="noopener nofollow">https://github.com/elixir-lang/elixir/blob/22b47d7f48f2284f31bdca6e8799df0e5dbcc078/lib/mix/lib/mix/compilers/elixir.ex#L1386-L1403</a></p>
<p>So you may need to break Mix.Compilers.Protocol down. Unfortunately I could not reproduce it by brute forcing (compiling hundreds of protocols), so there may be something project specific.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376479" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-376479" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376479"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="376491" data-post-id="376491">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>To my surprise, <code>Protocol.extract_protocols</code> takes about 4.4 seconds while <code>consolidate</code> takes 3.7 seconds, so both of these are significantly slower.</p>
<p>Consolidation per protocol (de-parallelized for easy timing) doesn’t reveal any particular outlier:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">14 IEx.Info
15 Hex.Solver.Constraint
16 List.Chars
30 Collectable
34 Enumerable
51 String.Chars
68 JSON.Encoder
71 Enaia.CRE.Deal.Timeline.Event
77 Browser.Ua
77 Cldr.DisplayName
79 Enaia.Comments.Commentable
81 Cldr.Chars
81 Scrivener.Paginater
83 Phoenix.HTML.FormData
85 Ecto.Queryable
85 FunWithFlags.Group
88 Bamboo.Formatter
88 Table.Reader
89 LogfmtEx.ValueEncoder
93 Enaia.ActivityTracker.Trackable
94 Appsignal.Metadata
94 EnaiaWeb.Live.Helpers.ColumnItemGenerator
94 Phoenix.HTML.Safe
97 Enaia.CRE.Account.Address
97 Enaia.SpaceRenderable
98 Enaia.Documents.PDFConvertible
98 Timex.Protocol
100 DBConnection.Query
104 Poison.Decoder
109 Number.Conversion
110 Phoenix.Param
113 FunWithFlags.Actor
116 Bandit.WebSocket.Socket
116 Plug.Exception
116 Timex.Comparable
118 Cldr.LanguageTag.Chars
130 Bandit.HTTPTransport
131 ExTwilio.JWT.Grant
133 Oban.Met.Value
135 Ecto.DevLogger.PrintableParameter
157 Solid.Block
167 Inspect
204 Solid.Matcher
204 Solid.Renderable
207 ExAws.Operation
215 Bandit.WebSocket.Frame.Serializable
236 Enaia.Errors.Reportable
262 Poison.Encoder
279 Bandit.HTTP2.Frame.Serializable
597 Jason.Encoder
</code></pre>
<p>I don’t have time to dig much further today</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376491" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-376491" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376491"
                     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 #16"></div>
  </section>
</div>
    <div class="postbit" id="376505" data-post-id="376505">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is very weird indeed, because <code>extract_protocols</code> did not change at all! I can only think that somehow <code>:beam_lib.chunks</code> is way more expensive now? Do you see a large difference in .beam file sizes?</p>
<p>PS: I pushed a new commit to the v1.19 branch if you want to validate this theory.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376505" data-batch-url="/posts/batch_likers">
                        3
                      </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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-376505" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376505"
                     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 #17"></div>
  </section>
</div>
    <div class="postbit" id="376619" data-post-id="376619">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks and thanks for confirming <code>extract_protocols</code> has not changed.<br>
I wanted to double check what’s going on in 1.18.4 but I get a compilation error in a dependency when I compile from source, very strange.<br>
I probably won’t have time to check further until next Tuesday.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376619" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-376619" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376619"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="380353" data-post-id="380353">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This has been fixed here and backported to v1.19: <a href="https://github.com/elixir-lang/elixir/commit/995f7fc2c4080d2c0d1f78a7d896366b0c715178" class="inline-onebox" rel="nofollow">Optimize protocol consolidation · elixir-lang/elixir@995f7fc · GitHub</a></p>
<p>Since it changes how protocol consolidation works, I want to give it a try locally for a few days, and we can probably ship a new version on the new year.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380353" data-batch-url="/posts/batch_likers">
                        11
                      </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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-380353" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380353"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="380378" data-post-id="380378">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="marcandre" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marcandre/120/31790_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  marcandre
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Great news! Thank you so much <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a> <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380378" 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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-380378" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380378"
                     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 #20"></div>
  </section>
</div>
    <div class="postbit" id="381531" data-post-id="381531">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As promised: <a href="https://forum.elixirforum.com/t/elixir-v1-19-5-released/73923" class="inline-onebox" rel="nofollow">Elixir v1.19.5 released</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="381531" data-batch-url="/posts/batch_likers">
                        6
                      </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/elixir-1-19-compilation-performance-have-you-noticed-a-difference/73030/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-381531" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="381531"
                     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 #21"></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/73030/load_more?page=3">Load more posts (7 remaining)</a>
</div></template></turbo-stream>