Why drawing GL quads is so slow?

Hi, in my game I’m trying to draw a curve with a specified width. I divided it to small rectangle pieces.
I’m using GL.QUADS from this example Unity - Scripting API: GL.QUADS. Everything works fine on PC Windows, but when I try to run it on my Xperia E4G the game crashes or plays at really low fps. There are around 300 quads at the same time rendered. Here is my rendering function:

void OnPostRender()
    {
        GL.PushMatrix();
        GL.LoadProjectionMatrix(GetComponent<Camera>().projectionMatrix);
        var node = extendedNodes.First;
        while (node != null)
        {
            GL.Begin(GL.QUADS);
            GL.Color(new Color(0, 199, 0));
            for (int i = 0; i < 4 && node != null; i++)
            {
                GL.Vertex(node.Value);
                node = node.Next;
            }
            GL.End();
        }
        
        GL.PopMatrix();
    }

Have you got any ideas why the problem exists (I thought that calling GL functions should be fast, I don’t want to use LineRenderer because it is slow too)?

I figured out what was wrong… I was calling GL.Begin(GL.QUADS) every 4 vertexes I was drawing. Here is fixed code:

void OnPostRender()
    {
        GL.PushMatrix();
        GL.LoadProjectionMatrix(GetComponent<Camera>().projectionMatrix);
        GL.Begin(GL.QUADS);
        GL.Color(new Color(0, 199, 0));
        var node = extendedNodes.First;
        while (node != null)
        {
            GL.Vertex(node.Value);
            node = node.Next;
        }
        GL.End();
        GL.PopMatrix();
    }