Cada función tiene una propiedad invocation_count en FeedbackVector para registrar el número de veces que se llamó a la función. Pero después de optimizar una función, su número de invocaciones no aumentará cuando vuelva a llamar a esta función. ¿Hay alguna forma de obtener el recuento de invocaciones o actualizar el atributo de recuento de invocaciones en FeedbackVector después de optimizar una función?
(Desarrollador V8 aquí.)
No, no lo hay. Las funciones optimizadas no cuentan la frecuencia con la que han sido llamadas (porque no tienen motivos para hacerlo; hacer que actualicen un contador sería una pérdida de tiempo).
Si realmente te importa, tienes dos opciones:
(1) Puede agregar contadores en la fuente de JavaScript de la(s) función(es) en cuestión:
var myFuncCalled = 0; function myFunc() { myFuncCalled++; // rest of the function's code... }Y descargue esos contadores al final del programa.
(2) Puede modificar V8 para que el código optimizado actualice el conteo en el vector de retroalimentación. No estoy seguro de cómo harías eso exactamente, pero ciertamente es posible. (No nos gustaría actualizar un parche de este tipo, esto sería solo para su experimentación local).