title: SpriteKit memory management preload cached and fps issue
body: <p>My question is pretty simple, according to the apple docs you have the ability to preload textures into RAM prior to presenting a scene like so:</p>
  
  <pre><code>SKTextureAtlas * atlas = [SKTextureAtlas atlasNamed:@"effect_circle_explode"];
  SKTextureAtlas * atlas2 = [SKTextureAtlas atlasNamed:@"box_explodes"];
  SKTextureAtlas * atlas3 = [SKTextureAtlas atlasNamed:@"fence_new"];
  SKTextureAtlas * atlas4 = [SKTextureAtlas atlasNamed:@"swipe"];
  SKTextureAtlas * atlas5 = [SKTextureAtlas atlasNamed:@"coin"];
  SKTextureAtlas * atlas6 = [SKTextureAtlas atlasNamed:@"two_times"];
  SKTextureAtlas * atlas7 = [SKTextureAtlas atlasNamed:@"three_times"];
  SKTextureAtlas * atlas8 = [SKTextureAtlas atlasNamed:@"gus"];
  
  [SKTextureAtlas preloadTextureAtlases:@[atlas, atlas2, atlas3, atlas4, atlas5, atlas6, atlas7, atlas8] withCompletionHandler:^{
  
      [moron_logo removeFromSuperview];
      moron_logo = NULL;
  
      stuff.hidden = NO;
      store.hidden = NO;
  
      scroll_view.userInteractionEnabled = YES;
  
      [self present_game_view];
  
  
  }];
  </code></pre>
  
  <p>Now would there be any negative effect if later on through out gameplay you also call a preload to the same atlas like so:</p>
  
  <pre><code>-(void)load
  {
  
  SKTextureAtlas * atlas = [SKTextureAtlas atlasNamed:@"effect_circle_explode"];
  SKTextureAtlas * atlas2 = [SKTextureAtlas atlasNamed:@"coin"];
  
  [SKTextureAtlas preloadTextureAtlases:@[atlas, atlas2] withCompletionHandler:^{
  
  explode_textures = [[NSMutableArray alloc] init];
  int numImages = (int)atlas.textureNames.count;
  for (int i=0; i &lt;= numImages/2-1; i++)
  {
      NSString *textureName = [NSString stringWithFormat:@"effect_circle_explode_%d.png", i];
      SKTexture *temp = [atlas textureNamed:textureName];
      [explode_textures addObject:temp];
  }
  
  explodeAnimation = [SKAction animateWithTextures:explode_textures timePerFrame:.05];
  
  idle_textures = [[NSMutableArray alloc] init];
  int numImages2 = (int)atlas.textureNames.count;
  for (int i=0; i &lt;= numImages2/2-1; i++)
  {
      NSString *textureName = [NSString stringWithFormat:@"coin_%d.png", i];
      SKTexture *temp = [atlas2 textureNamed:textureName];
      [idle_textures addObject:temp];
  }
  
  
  idleAnimation = [SKAction animateWithTextures:idle_textures timePerFrame:.05];
  
  [self animate:0];
  
  }];
  
  
  }
  </code></pre>
  
  <p>Now if I do not preload the texture again the game will actually crash once in awhile not all the time if I just directly inserted the textures into the SKAction. The crash is an exec_bad_access on the Sprite::update(double) call, so my assumption is that somehow the textures from the first preload were removed from RAM and thats why I preload every single time I create a new node now. It seems to have fixed that error. This leads to another problem though when it comes to performance and hence the reason why I am asking this.</p>
  
  <p>The game runs fine on the 5S and the 5 but as soon you touch an iPod touch 5th gen it barely can go over 15 FPS. I ran instruments and this is what is eating up all the CPU time:
  <img src="https://i.stack.imgur.com/5ELGq.png" alt="enter image description here">
  Could this be related to my constant call of the preloadatlas call? Does anyone know why this would be eating my processor time up so badly on older devices? Thanks so much and hopefully someone else might be having a similar problem and this will help them out once I make my way to bottom of it. </p>
  
  <p>Thanks in advance.</p>