, когда профилирование производительности в хромовых анонимных высокопроизводительных функциях трудно устранить, когда они перечислены в корне дерева вызовов. есть ли способ определить, где была впервые создана анонимная функция?профилирование анонимных функций javascript (chrome)
ответ
Возможно, самый простой способ - поставить console.trace()
в свою функцию.
Предположим, у вас нет анонимных функций в вашем коде - возможно, вы используете библиотечный код, который их использует. – Michael
Затем пламя покажет вам, где вы используете эти функции. –
Вы можете использовать console.profile([label])
, console.profileEnd()
, , console.timeEnd([label])
.
В DevTools
выберите Sources
->Snippets
-> правой кнопкой мыши -> выберите New
-> место javascript
в средней панели -> выделить/выбрать текст javascript
в средней панели -> правой кнопкой мыши -> выберите Evaluate in Console
-> нажмите правый треугольник на правой панели или Ctrl+Enter
.
Профиль для anonynous function
должен быть зарегистрирован в console
и на Profiles
tab.
console.profile("anonymous function");
console.time("anonymous function");
(function() {
var a = 123;
function abc() {
return a
}
abc();
}());
console.timeEnd("anonymous function");
console.profileEnd();
Чтобы найти происхождение каждого вызова
1 - в качестве Yordan said, вы можете использовать console.trace
.
2 - Вы можете также попробовать:
console.log("called from : " + arguments.callee.caller.name.toString());
НО это может быть невозможно в строгом режиме
window.addEventListener("load", function() {
var anon = function() {
console.log("called from : " + arguments.callee.caller.name.toString());
};
function Test() {
anon();
}
var anon2 = function() {
anon();
}
Test(); // will display "Test"
anon2(); // won't display a name (Anonymous caller)
});
Если вам нужно профилировать блок кода (в анонимной функции или нет), вы можете использовать console.profile
/console.profileEnd
и console.time
/console.timeEnd
(se е guest271314 answer)
Недавно я сделал немного яваскрипта плагин, чтобы помочь мне отладки затраты времени в моих программах: MonitorJS (1.35KB)
Вы можете использовать его, чтобы определить, как много процессорного времени блочного кода (функция или нет) используется с течением времени.
например. :
// ...
function Test() {
var mId = Monitor.Start("Foo");
// Test function code
// ...
Monitor.Stop(mId);
}
Затем вы можете проверить в любое время в консоли:
Monitor.Get("Foo");
// return an object :
{
name: "Foo",
call_count: 32,
// time in milliseconds, accurate to one thousandth of a millisecond
total_time: 654.685
}
// you can calculate the average time per call
Смотрите документацию на Github
Надеются, что это помогает!
- 1. Тестирование функций JavaScript внутри анонимных функций
- 2. Выполнение анонимных функций в Javascript
- 3. Самостоятельное выполнение анонимных функций в javascript
- 4. Как использовать Jasmine/Javascript для анонимных функций
- 5. неанонимные против анонимных функций в JavaScript
- 6. Javascript «двоеточие» для обозначения анонимных функций?
- 7. Размещение аргументов для анонимных функций в JavaScript
- 8. Использование анонимных функций в инструкции JavaScript IF
- 9. JavaScript - Передача аргументов для анонимных функций
- 10. упрощение привязки анонимных функций javascript к классу
- 11. removeEventListener для анонимных функций в JavaScript
- 12. В чем смысл автономных, анонимных, javascript-функций?
- 13. Понимание анонимных функций с помощью JavaScript
- 14. javascript переменная область видимости анонимных функций
- 15. Переменные внутри вложенных анонимных функций в javascript
- 16. JavaScript: рекурсия внутри анонимных функций распознавателя обещания
- 17. Бенчмаркинг/Профилирование JavaScript
- 18. Равенство двух анонимных функций
- 19. Перегрузка анонимных функций
- 20. Связывание анонимных функций повсюду
- 21. Добавление анонимных функций MATLAB
- 22. Область видимости анонимных функций
- 23. Использование самоназывающих анонимных функций
- 24. Умножение анонимных функций
- 25. scala список анонимных функций
- 26. Сериализация анонимных функций
- 27. Понимание анонимных функций PHP
- 28. Цель "Self Вызов анонимных функций"
- 29. Выполнение анонимных функций через Lambdas
- 30. Выполнение анонимных функций, созданных с использованием JavaScript eval()
Вы можете пропустить и назвать все ваши анонимные функции – xkcd149