2011-02-07 11 views
9

Trabajo en un pequeño equipo de desarrollo de iPhone, en nuestra oficina, tenemos al menos 4 copias de XCode ejecutándose en la red en cualquier momento. Contemplando que todos lo tengan funcionando.Cuándo usar XCode Distributed Build Feature

Estamos conectados en red mediante un interruptor estándar WiFi, así que la velocidad de la red y la latencia no es tan buena como la red cableada ...

Sólo me preguntaba, ¿hay alguna ganancia en tiempo real que se tenía sobre el uso distribuido construcciones? Una vez que pasa los datos relevantes de ida y vuelta a través de la red. Al menos para proyectos relativamente pequeños.

+0

¿Cuánto dura su construcción ahora? – Nick

+0

Aproximadamente 15-20 Segundos, estoy construyendo muy regularmente, por lo que se está sumando. –

Respuesta

4

depende de su proyecto, sus dependencias y la cantidad de datos que se deben transferir.

15-20 segundos no es terrible. sin duda, hay más trabajo en general por hacer. puede ser una buena idea para todos cultivarlo en un Mac Pro muy rápido, en lugar de uno para el otro si está utilizando núcleos duales (esa información no se proporcionó).

en cuanto a la configuración del proyecto: si tiene una gran cantidad de bibliotecas dependientes en sus proyectos, entonces puede ayudar a deshabilitar los encabezados precompilados. gran parte de la ecuación es la cantidad promedio de dependencias y la cantidad de objetos que se generan.

a 15-20 segundos, ayudaría a muchos desarrolladores a escribir para que optimicen sus tiempos de construcción antes de cultivar. si se tratara de unos minutos, entonces es posible que desee saltar directamente a compilaciones distribuidas con un núcleo de 8 o 12.

un aspecto que se pasa por alto fácilmente en las construcciones lentas en proyectos pequeños: deshabilite el análisis estático por compilación, y simplemente ejecútelo manualmente cada dos horas, corrigiendo todos los problemas a continuación.

de lo contrario, su proyecto probablemente podría dividirse en proyectos/bibliotecas más pequeños. lo más probable es que no siempre edite las mismas dependencias.

asumiendo compilación, vinculación, etc. es donde el tiempo se gasta en este punto: gran parte del resto cae en los problemas típicos involucrados en la construcción de programas c y C++. minimice sus dependencias e incluya gráficos. en realidad es bastante fácil de lograr con objc; dado que muchas de las interfaces usan objc-types, puede usar forwards.

si su biblioteca es pequeña (por ejemplo, menos de 50 objetos generados), entonces también puede obtener una aceleración al no usar encabezados precompilados. si todo ya depende de su inclusión de 12 marcos de sistemas incluidos por el pch ... entonces pruébelo en el próximo proyecto.

Por supuesto, puede intentar cronometrar una reconstrucción limpia, una compilación con archivos pch generados y varias compilaciones incrementales para llegar a una conclusión.

Cuestiones relacionadas