Guía de seguimiento dinámico de Solaris

Creación de una especulación

La función speculation() asigna una memoria intermedia especulativa y devuelve un identificador de especulación. El identificador de especulación debería utilizarse en llamadas posteriores a la función speculate. () Las memorias intermedias especulativas son un recurso finito: si no hay disponible ninguna memoria intermedia especulativa al llamar a speculation(), se devuelve un Id. con el valor 0 y se aumenta el contador de errores de DTrace correspondiente. Un Id. con el valor cero no es nunca válido, aunque puede transferirse a speculate(), commit() o discard(). Si falla una llamada a speculation(), se genera un mensaje de dtrace parecido al siguiente:


dtrace: 2 failed speculations (no speculative buffer space available)

El número de memorias intermedias especulativas se establece de forma predeterminada en 1, pero puede ajustarse opcionalmente a un valor superior. Consulte Opciones y ajustes de especulación para obtener más información.