回答編集履歴
3
追記
    
        answer	
    CHANGED
    
    | 
         @@ -15,4 +15,33 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
            冒頭でも述べましたが、フレームワークの実装を疑うべきです。
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
            **多くのメモリを使用しています** は ブラウザのヒープメモリに関わるエラーと思いますので、
         
     | 
| 
       18 
     | 
    
         
            -
            Google検索 [ブラウザ ヒープメモリ](https://www.google.co.jp/search?q=ブラウザ+ヒープメモリ)も調査されてはいかがでしょうか。
         
     | 
| 
      
 18 
     | 
    
         
            +
            Google検索 [ブラウザ ヒープメモリ](https://www.google.co.jp/search?q=ブラウザ+ヒープメモリ)も調査されてはいかがでしょうか。
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            ----
         
     | 
| 
      
 21 
     | 
    
         
            +
            追記
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            C言語でいう malloc free が不要となるのが ガベージコレクタです。
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            JavaScript上では malloc に類するコードは 
         
     | 
| 
      
 26 
     | 
    
         
            +
            1. 各種宣言(サブリソースを読んだ後に渡される引数)
         
     | 
| 
      
 27 
     | 
    
         
            +
            2. コールスタックへの積み込みであり
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            free される条件はガベージコレクタ依存です。
         
     | 
| 
      
 30 
     | 
    
         
            +
            1. スコープを抜け、参照が切れている
         
     | 
| 
      
 31 
     | 
    
         
            +
            2. コールスタックから外れ、参照が切れている
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            ご質問のコード:
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ```javascript
         
     | 
| 
      
 36 
     | 
    
         
            +
              document.onclick = function () {
         
     | 
| 
      
 37 
     | 
    
         
            +
                var img = document.createElement('img'); // メモリ確保
         
     | 
| 
      
 38 
     | 
    
         
            +
                img.src = 'test.jpg'; // メモリ確保量増加
         
     | 
| 
      
 39 
     | 
    
         
            +
                img.alt = '';
         
     | 
| 
      
 40 
     | 
    
         
            +
                document.getElementById('show').appendChild(img);
         
     | 
| 
      
 41 
     | 
    
         
            +
                // => 文書木に配備され、参照が固定される(すぐには開放されない)
         
     | 
| 
      
 42 
     | 
    
         
            +
             }
         
     | 
| 
      
 43 
     | 
    
         
            +
            ```    
         
     | 
| 
      
 44 
     | 
    
         
            +
            click を繰り返すと、ページがリロードされるまでにメモリリークする可能性があります。
         
     | 
| 
      
 45 
     | 
    
         
            +
            適切に 文書木から削除(``removeChild()``)して、ガベージコレクタに参照が切れたことを指示するコードがあれば状況も変わるはずです。
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            * MDN [メモリ管理](https://developer.mozilla.org/ja/docs/Web/JavaScript/Memory_Management) を再確認してください。
         
     | 
2
typo のため
    
        answer	
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            1. メモリ上にキャッシュするオブジェクト(HTMLImageElementをキーバリュー形式で管理)
         
     | 
| 
       11 
11 
     | 
    
         
             
            2. 実際に表示するオブジェクト(1. をクローンして描画)
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            たとえば、**``URL. 
     | 
| 
      
 13 
     | 
    
         
            +
            たとえば、**``URL.createObjectURL( fileBlob )`` を繰り返すと、メモリは新規に消費されるという挙動**を確認したことがあり、別の質問で回答した [CodePEN 画像のアップロードプレビュー](https://codepen.io/AkitoshiManabe/pen/xxwZyRr) では新規にメモリ消費されないよう、``imageCache`` というオブジェクトに **ファイル名**:**BlobURL** を保持するコードにしています。
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            冒頭でも述べましたが、フレームワークの実装を疑うべきです。
         
     | 
| 
       16 
16 
     | 
    
         | 
1
誤字訂正
    
        answer	
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            1. メモリ上にキャッシュするオブジェクト(HTMLImageElementをキーバリュー形式で管理)
         
     | 
| 
       11 
11 
     | 
    
         
             
            2. 実際に表示するオブジェクト(1. をクローンして描画)
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            たとえば、**``URL.objectCreateURL(  
     | 
| 
      
 13 
     | 
    
         
            +
            たとえば、**``URL.objectCreateURL( fileBlob )`` を繰り返すと、メモリは新規に消費されるという挙動**を確認したことがあり、別の質問で回答した [CodePEN 画像のアップロードプレビュー](https://codepen.io/AkitoshiManabe/pen/xxwZyRr) では新規にメモリ消費されないよう、``imageCache`` というオブジェクトに **ファイル名**:**BlobURL** を保持するコードにしています。
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            冒頭でも述べましたが、フレームワークの実装を疑うべきです。
         
     | 
| 
       16 
16 
     | 
    
         |