Apple presentó Grand Central Dispatch (un grupo de subprocesos) en Snow Leopard, pero no ha explicado por qué uno debería usarlo sobre OpenMP, que es multiplataforma y también funciona en Leopard. Ambos son bastante fáciles de usar y tienen una capacidad similar. Entonces, ¿alguna idea?¿Por qué debería usar Grand Central Dispatch en vez de OpenMP?
Respuesta
GCD es mucho mejor en la evaluación del tiempo de ejecución del nivel adecuado de recursos para resolver un problema: OpenMP decide cuántos hilos invocar para un conjunto de tareas paralelas basadas en información como variables de entorno. GCD analiza la carga actual del sistema y la cantidad de núcleos disponibles, y permite que se ejecute una cantidad adecuada de subprocesos, escalando y retrocediendo a medida que el uso de los recursos cambia en tiempo real. Eso significa que un programa de GCD debería obtener mejores resultados en el caso general. Por supuesto, si ha comprado un grupo de cajas dedicadas para ejecutar su código, entonces esto es discutible porque habrá poco más para que su código entre en conflicto.
Rendimiento e integración de nivel de sistema operativo?
Ahora que GCD ha sido de código abierto, se trata de poner ambas herramientas una al lado de la otra y ver quién vive al final.
- 1. Grand Central Dispatch vs NSThreads?
- 2. NSURLConnection y grand central dispatch
- 3. Grand Central Dispatch vs NSThread
- 4. Grand Central Dispatch async vs sync
- 5. Grand Central Dispatch (GCD) con CoreData
- 6. Fácil ejemplo de Grand Central Dispatch
- 7. Indicadores de origen de envío Grand Central Dispatch (GCD)
- 8. ¿Podría Grand Central Dispatch (`libdispatch`) estar disponible en Windows?
- 9. ¿Por qué los juegos de Cocoa evitan Grand Central Dispatch por crear un temporizador?
- 10. ¿Cómo realmente utiliza Grand Central Dispatch el sistema operativo?
- 11. Grand Central Dispatch: ¿muestra la primera imagen cuando está cargada?
- 12. ¿Cómo uso Grand Central Dispatch para iniciar una llamada asincrónica?
- 13. Grand Central Dispatch (GCD) vs. performSelector - necesita una mejor explicación
- 14. ¿Cómo poner en paralelo el solucionador de Sudoku usando Grand Central Dispatch?
- 15. ¿Cómo sé que terminaron todas mis tareas en Grand Central Dispatch?
- 16. ¿Cuál es el papel de Grand Central Dispatch al implementar la multitarea en iOS?
- 17. Terminación agraciada de NSApplication con Core Data y Grand Central Dispatch (GCD)
- 18. usando grand central dispatch dentro del método de clase provoca pérdida de memoria
- 19. Uso de Grand Central Dispatch fuera de una aplicación o runloop
- 20. Extensiones Grand Central vs Parallel
- 21. Uso del despacho de Grand Central en Linux
- 22. ¿Por qué debería usar MXML?
- 23. ¿Por qué debería usar Flex?
- 24. ¿Por qué debería usar Drools?
- 25. ¿Por qué debería usar @properties?
- 26. ¿Cómo mostrar correctamente una hoja de "progreso" modalmente mientras se usa Grand Central Dispatch para procesar algo?
- 27. ¿Por qué debería usar glBindAttribLocation?
- 28. ¿Por qué debería usar "aplicar"?
- 29. ¿Por qué debería aprender y usar puntales?
- 30. ¿Por qué debería usar 'aplicar' en Clojure?