powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Слишком долгий вызов inline функции
7 сообщений из 7, страница 1 из 1
Слишком долгий вызов inline функции
    #34967979
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть inline функция, одна строка, без параметров, статическая для класса
по vTune выполнение занимает 30-40 клоков. а вызов - около 800. и выход ок. 150
примерно следующее
Код: plaintext
1.
2.
3.
4.
static inline int top()
{
  return head->next;
}

или еще одна функция, оан, правда, проходит интерфейс, но это же не должно столько занимать времени. (что интерфейс, что не интерфейс должно же быть пох. ???
выполнение занимает 60 тактов, вызов 550, выход 340. функция inline.

отчего так долго ?

аффтопитезь: 4 8 15 16 23 42
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34968266
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем static. Прелесть inline функции как раз заключается в том, что помещение inline фукнции в заголовочный файл не приведет double defined symbol:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// h
inline int myfunc()
{
     return somothing;
}

// 1.cpp
#include "header.h"

// 2.cpp
#include "header.h"
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34975214
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!!
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34975411
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinдаже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!!брр... как inline функция может вызываться ? она же по определению _встраиваемая_ (in line) в место вызова... или я что-то не так понял ?
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34975718
Ёшбрр... как inline функция может вызываться ? она же по определению _встраиваемая_ (in line) в место вызова... или я что-то не так понял ?

на все воля компайлера.. надо изучать ассемблер на выходе и делать выводы
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34976223
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinдаже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!!
для vc

__forceinline int top()
{
return head->next;
}

ну естественно
next имеет тип int
и -> не перегружен.
...
Рейтинг: 0 / 0
Слишком долгий вызов inline функции
    #34976554
grieg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, inline -- не требование, а рекомендация компилятору. Поэтому, вероятно, надо смотреть ассемблерный код, чтобы понять, инлайнится функция или нет.

Во-вторых, лаг может быть обусловлен некоторой предысторией команд. Ну например, именно перед исполнением встроенной функции закончился командный кеш и происходит обращение к медленной оперативной памяти. Таких вариантов много можно напридумывать.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Слишком долгий вызов inline функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]