<p dir="auto">Hi!<br>
I test some <code class="notranslate">big</code> images which <code class="notranslate">exifRotation</code> is 90.<br>
When using okhttp, it showed very very slow, about <code class="notranslate">5 - 10</code> seconds.<br>
But, showed fast if not using okhttp!</p>
<p dir="auto">When using okhttp:<br>
If set <code class="notranslate">diskCacheStrategy(DiskCacheStrategy.SOURCE)</code>, it will show faster!<br>
If set <code class="notranslate">override()</code> with a smaller size, it is also showed faster!<br>
If <code class="notranslate">exifRotation</code> is 0, it is also showed faster!</p>
<p dir="auto">My test images is: (put into sdcard, load from sdcard)<br>
<a href="https://cloud.githubusercontent.com/assets/6055764/3547973/bc1e4710-08a3-11e4-99e9-4d26f2f1f67e.jpg" rel="nofollow">https://cloud.githubusercontent.com/assets/6055764/3547973/bc1e4710-08a3-11e4-99e9-4d26f2f1f67e.jpg</a><br>
<a href="https://cloud.githubusercontent.com/assets/6055764/3547974/be3b85b2-08a3-11e4-8e0b-eb4a484c8654.jpg" rel="nofollow">https://cloud.githubusercontent.com/assets/6055764/3547974/be3b85b2-08a3-11e4-8e0b-eb4a484c8654.jpg</a><br>
<a href="https://cloud.githubusercontent.com/assets/6055764/3547975/c0b52726-08a3-11e4-9437-bdb5c777d0b5.jpg" rel="nofollow">https://cloud.githubusercontent.com/assets/6055764/3547975/c0b52726-08a3-11e4-9437-bdb5c777d0b5.jpg</a></p>
<p dir="auto">Is it the same problem? <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="43637612" data-permission-text="Title is private" data-url="https://github.com/bumptech/glide/issues/150" data-hovercard-type="issue" data-hovercard-url="/bumptech/glide/issues/150/hovercard" href="https://github.com/bumptech/glide/issues/150">#150</a></p>
<p dir="auto">First, load image from all, when the task is not completed, then load image only Retrieve From Cache,<br>
will block on load image only Retrieve From Cache.</p>
<p dir="auto">Engine load</p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="   .....
    EngineJob&lt;?&gt; current = jobs.get(key);
    if (current != null) {
         current.addCallback(cb);
          if (Log.isLoggable(TAG, Log.VERBOSE)) {
              logWithTimeAndKey(&quot;Added to existing load&quot;, startTime, key);
          }
          return new LoadStatus(cb, current);
     }
     ....."><pre class="notranslate">   .....
    <span class="pl-smi">EngineJob</span>&lt;?&gt; <span class="pl-s1">current</span> = <span class="pl-s1">jobs</span>.<span class="pl-en">get</span>(<span class="pl-s1">key</span>);
    <span class="pl-k">if</span> (<span class="pl-s1">current</span> != <span class="pl-c1">null</span>) {
         <span class="pl-s1">current</span>.<span class="pl-en">addCallback</span>(<span class="pl-s1">cb</span>);
          <span class="pl-k">if</span> (<span class="pl-smi">Log</span>.<span class="pl-en">isLoggable</span>(<span class="pl-c1">TAG</span>, <span class="pl-smi">Log</span>.<span class="pl-c1">VERBOSE</span>)) {
              <span class="pl-en">logWithTimeAndKey</span>(<span class="pl-s">"Added to existing load"</span>, <span class="pl-s1">startTime</span>, <span class="pl-s1">key</span>);
          }
          <span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-smi">LoadStatus</span>(<span class="pl-s1">cb</span>, <span class="pl-s1">current</span>);
     }
     .....</pre></div>