Perfiles de CPU para juegos de iPhone y pthread_setspecific

Al perfilar un juego iOS en un iPhone 3G, los instrumentos informan que la llamada al sistema pthread_setspecific (que se llama desde muchas ubicaciones aparentemente no relacionadas) es el cuello de botella más grande de la CPU. Google me dice que esto trata del almacenamiento de metadatos para subprocesss, pero no estoy seguro de cómo rastrear esto, ya que todo el motor es un hilo único. ¿Esto tiene que ver con CADisplayLink? ¿Puedo optimizar escenarios específicos para tener mejor count de esto?

Aquí hay información relevante que puede ser útil para responder a mis preguntas:

  • Dispositivo: iPhone 3G
  • versión de iOS: 4.2.1
  • El código del juego es completamente C ++, con la capa de aplicación en obj-C.
  • El juego usa OpenglES1.1
  • Lamentablemente, ambas excepciones RTTI y C ++ son necesarias y, por lo tanto, habilitadas.
  • Se está ejecutando una compilation de versión (con símbolos de debugging) a través del perfilador CoreAnimation en instrumentos.

El código generado por el event handling excepciones está utilizando el almacenamiento local de subprocesss para almacenar su stack de desenrollado. No hay nada que puedas hacer fácilmente. Intente eliminar la exception cuando sea posible. Compile parte del código sin él.