La joya oculta en GCD que desconocías: dispatch_benchmark

Autor: | Última modificación: 10 de noviembre de 2022 | Tiempo de Lectura: 1 minutos
Temas en este post:

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

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.