La joya oculta en GCD que desconocías: dispatch_benchmark

| Última modificación: 4 de septiembre de 2024 | Tiempo de Lectura: 1 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

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].

Fernando Rodríguez

iOS Developer & Co-Fundador de KeepCoding

Posts más leídos