Monogame игра на Win10 занимает много памяти

Столкнулся с новой для меня проблемой. Не так давно занимаюсь разработкой простеньких игр, и возникла ситуация. Когда создаю достаточно много (да хоть даже парочку) объектов (в моем случае это квадратики), память, занимаемая приложением, растет пропорционально количеству объектов. Ошибку "E_OUTOFMEMORY/Out of memory" выкидывает в этом куске кода, потому его и прикрепляю

    public void DrawSquare()
    {
        SpriteBatch sb = new SpriteBatch(graphicDevice);
        initSquares();
        sb.Begin(SpriteSortMode.FrontToBack);
        rectBorder = new Rectangle(position, size);
        sb.Draw(rectagleBorder, rectBorder, Color.White);

        rectFront = new Rectangle(position + sizeOfBorder, size - (sizeOfBorder* new Point(2,2)));
        sb.Draw(rectagleFront, rectFront, Color.White);
        sb.End();
        sb.Dispose();
    }

Вроде бы чищу память через Dispose, но видно, нет. В чем может заключаться проблема? Что посоветуете?

update 1: не занимает столько памяти, но фризит. Код прилагается

        public void Draw(int w, int h, int rotate, int team, int x, int y, GraphicsDevice gd, SpriteBatch spriteBatch)
    {

        using (SpriteBatch sb = new SpriteBatch(gd))
        {
            Vector2 size;
            if (rotate == 1) size = new Vector2(w * sizeOfGrid.X, h * sizeOfGrid.Y);
            else size = new Vector2(h * sizeOfGrid.Y, w * sizeOfGrid.X);

            Vector2 position = new Vector2(x + h * 54 * rotate, y);

            Color teamColor = (team == 0) ? blueTeamColor : pinkTeamColor;

            string name = w.ToString() + "-" + h.ToString();

            Texture2D sqTexture = Game1.GetTexture(name);
            sb.Begin();
            sb.Draw(sqTexture, position, null, teamColor, 1.57f * rotate, Vector2.Zero, 1f, 0, 0);
            sb.End();
       }

    }

класс, в котором находится эта функция, теперь реализует интерфейс IDisposable


Ответы (0 шт):