
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что это?!
Профилировщик показывает вызовы функций, которых на самом деле не было. Нарвался даже на такое:
Какой-то ArrayCopy, которого нет в исходнике mqh-файла! При этом еще красной строкой выделил объявление статик-массива.
Так и не получается пользоваться профайлером, к сожалению.
А вы задумайтесь, как и чем массивы перемещаются при построении, присвоении и перемещении объектов(а у вас обьект).
Неужели вы думаете, что программа состоит только из ваших строк?
Примеры не полные.
А вы задумайтесь, как и чем массивы перемещаются при построении, присвоении и перемещении объектов(а у вас обьект).
Неужели вы думаете, что программа состоит только из ваших строк?
Примеры не полные.
Дайте четкую инструкцию, что сделать с моей стороны, чтобы вы занялись этой темой, не откладывая в долгий ящик.
Дайте четкую инструкцию, что сделать с моей стороны, чтобы вы занялись этой темой, не откладывая в долгий ящик.
Вы делаете утверждения по теме (компиляторы и их внутренности), в которой не разбираетесь.
Инструкция не поможет - вы же не пройдете курс разработчика компиляторов, чтобы понять огромный мир неявно генерируемого кода в объектных языках. Высокоуровневые языки используют массу библиотечных и встраиваемых кодов. Соберите средний проект на WinAPI и посмотрите в *.map файл - там тысячи вспомогательных функций и любая из них может проявиться в профайлинге.
Десятки раз повторяемые мною слова про "результирующий код не имеет отношения к вашему коду, оптимизируется, встраивается и перетасовывается оптимизирующим компилятором" тоже не заходят в уши. Главная задача компилятора - сделать максимально быстрый код, а не читаемый. У профайлера - показать реально узкие места в оптимизированном(реальном) коде, а не обманывать соответствием строк.
Для сравнения: на текущий момент профилировать С++ код часто является очень непростой задачей, так как оптимизатор здорово сбивает соответствие. И да, Microsoft Visual Studio С++ - это не эталон, код он генерирует очень слабый/плохой. На 20-30% хуже конкурентов в виде LLVM/Clang.
Еще раз повторю, что у нас профайлер, не вносящий изменений в исследуемый код. Время проверки увеличивается, но реально код не портится встраиванием счетчиков - это бы напрочь убило оптимизацию кода.
Для профилирования используется метод "Sampling". Профилировщик делает паузы в работе MQL-программы (~1000 раз в секунду) и собирает статистику того, сколько раз пауза пришлась на тот или иной участок кода. В том числе анализируются стеки вызовов, чтобы определить "вклад" каждой функции в общее время работы кода. В конце профилирования вы получаете информацию о том, сколько раз была выполнена пауза и сколько раз каждая из функций оказывалась в стеке вызовов:
Без одношаговых воспроизводимых примеров мы не рассматриваем вопросы. Упрощенная синтетика из пары вызовов на микро задачах тоже не может рассматриваться в разрезе процентов занимаемого времени или вклада в общее время.
Вы делаете утверждения по теме (компиляторы и их внутренности), в которой не разбираетесь.
Абсолютно не разбираюсь в обозначенной вами теме. Профилировщик показывает какие-то данные, которые не получается как-либо трактовать.
Еще раз повторю, что у нас профайлер, почти не вносящий задержек в исследуемый код. Время проверки увеличивается, но реально код не портится встраиванием счетчиков - это бы напрочь убило оптимизацию кода.
Пытаюсь увидеть узкие места с помощью нового профайлера. Не получается, хоть и очень стараюсь.
Без одношаговых воспроизводимых примеров мы не рассматриваем вопросы. Упрощенная синтетика из пары вызовов на микро задачах тоже не может рассматриваться в разрезе процентов занимаемого времени или вклада в общее время.
Кому мне отправить данные для воспроизведения? Данные из ЛС показывают, что сообщения ЛС могут не читаться длительное время.
Две зеленые галочки - сообщение прочитано, одна - не прочитано.
Абсолютно не разбираюсь в обозначенной вами теме. Профилировщик показывает какие-то данные, которые не получается как-либо трактовать.
Пытаюсь увидеть узкие места с помощью нового профайлера. Не получается, хоть и очень стараюсь.
Кому мне отправить данные для воспроизведения? Данные из ЛС показывают, что сообщения ЛС могут не читаться длительное время.
Две зеленые галочки - сообщение прочитано, одна - не прочитано.
просто же все, чем чаще ударил молот, в то или иное место, тем затратнее функция
какова вероятность попадания счетчика в дешевые переменные? почти 0
есть сразу понятные функции в которые попадет счетчик, они пропускаются, смотрим следующие пользовательские
просто же все, чем чаще ударил молот, в то или иное место, тем затратнее функция
какова вероятность попадания счетчика в дешевые переменные? почти 0
есть сразу понятные функции в которые попадет счетчик, они пропускаются, смотрим следующие пользовательские
Говорю про практическое применение, а не красивую теорию, которая понятна с первого раза.
Говорю про практическое применение, а не красивую теорию, которая понятна с первого раза.
практическое это как было раньше, сколько раз вызывается?
это ведь чисто перфекционистский интерес,
согласен лишние вызовы нужно видеть, хоть они и дешевые будут
практическое это как было раньше, сколько раз вызывается?
Предыдущий профайлер позволял находить узкие места, но здесь ведем речь о новом, данные которого не позволяют понять, что происходит, хоть в теории все и изучено несколько раз.
Предыдущий профайлер позволял находить узкие места, но здесь ведем речь о новом, данные которого не позволяют понять, что происходит, хоть в теории все и изучено несколько раз.
Ренату стоило бы не в общих фразах показать новый профайлер, а что-бы дошло даже для таких как саб, убежденных) (не принижаю.)