La joya oculta en GCD que desconocías: dispatch_benchmark

| Última modificación: 4 de septiembre de 2024 | Tiempo de Lectura: 1 minutos
Premios Blog KeepCoding 2025

En mis cursos, siempre digo que Grand Central Dispatch es un baúl del tesoro lleno de maravillas por descubrir.  Por eso recomiendo que rebusquéis en la documentación a ver qué encontráis.
Sin embargo, hay cosas que ni buscando uno encuentra, porque a alguien se le olvidó exportar la función en concreto. Estoy hablando de nuestro amigo dispatch_benchmark().

¿Quieres averiguar quién es el más rápido? Prueba dispatch_benchmark()

Como el nombre indica, sirve para descubrir cuanto tarda en ejecutarse un cierto código. Recibe dos parámetros, un entero y un bloque. El entero es el número de veces que se va a ejecutar el bloque. El valor de retorno es el promedio de tiempo de ejecución del bloque, en nanosegundos.
Como no está exportada, la tienes que definir tú en tu código:

extern uint64_t dispatch_benchmark(size_t count, void (^block)(void)); // ¡listo para usar!
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
                uint64_t t = dispatch_benchmark(1, ^{
                   [self setPersistentStoreCoordinator];
                });
                NSLog(@"Migration took %lluns", t);
});

¡Colorín, colorado, este cuento ha compilado!
¡Un segundo! Y esto, ¿cómo se hace en Swift? Lo veremos luego. 🙂
Si tienes algo que deseas compartir o quieres formar parte de KeepCoding, escríbenos a [email protected].

¡CONVOCATORIA ABIERTA!

Desarrollo de apps móviles ios & Android

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado

KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.