title: Memory usage keeps increasing over time (GLKit - iOS)
body: <p>I've almost finished my app. One of the views uses GLKit. I just have a problem with memory. Basically what happens is that when GLKView is displayed, the memory consumption constantly rises (seen with Instruments). At a certain point it obviously crashes.
  I don't know much about GLKit, so I hope you can help me.</p>
  
  <p>The problem is a 3d arrow that I'm displaying. If I don't draw it, all the other things don't create any problem.
  This is the header file that contains the arrow vertex data:</p>
  
  <pre><code>#import &lt;GLKit/GLKit.h&gt;
  
  struct arrowVertexData
  {
      GLKVector3      vertex;
      GLKVector3      normal;
      GLKVector2      texCoord;
  };
  typedef struct arrowVertexData arrowVertexData;
  typedef arrowVertexData* vertexDataPtr;
  
  
  static const arrowVertexData MeshVertexData[] = {
      {/*v:*/{{-0.000004, 0.0294140, -0.0562387}}, /*n:*/{{0.000000, 1.000000, 0.000000}}, /*t:*/{{0.500000, 0.333333}}},
  ... etc...
  </code></pre>
  
  <p>And this is the draw code:</p>
  
  <pre><code>- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {
      glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  
      [self.arrowEffect prepareToDraw];
      //glGenVertexArraysOES(1, &amp;arrowVertexArray);
      //glBindVertexArrayOES(arrowVertexArray);
  
      glGenBuffers(1, &amp;arrowVertexBuffer);
      glBindBuffer(GL_ARRAY_BUFFER, arrowVertexBuffer);
      glBufferData(GL_ARRAY_BUFFER, sizeof(MeshVertexData), MeshVertexData, GL_STATIC_DRAW);
  
      glEnableVertexAttribArray(GLKVertexAttribPosition);
      glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, sizeof(arrowVertexData), 0);
      glEnableVertexAttribArray(GLKVertexAttribNormal);
      glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_TRUE, sizeof(arrowVertexData), (void *)offsetof(arrowVertexData, normal));
      glBindVertexArrayOES(arrowVertexArray);
  
      // Render the object with GLKit
  
      glDrawArrays(GL_TRIANGLES, 0, sizeof(MeshVertexData) / sizeof(arrowVertexData));
  
      //reset buffers
      glBindBuffer(GL_ARRAY_BUFFER, 0);
      glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
  
      //disable atttributes
      glDisableVertexAttribArray(GLKVertexAttribNormal);
      glDisableVertexAttribArray(GLKVertexAttribPosition);
  }
  </code></pre>
  
  <p>Any suggestion?
  Thank you very much for you help!</p>