|
|
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
есть inline функция, одна строка, без параметров, статическая для класса по vTune выполнение занимает 30-40 клоков. а вызов - около 800. и выход ок. 150 примерно следующее Код: plaintext 1. 2. 3. 4. или еще одна функция, оан, правда, проходит интерфейс, но это же не должно столько занимать времени. (что интерфейс, что не интерфейс должно же быть пох. ??? выполнение занимает 60 тактов, вызов 550, выход 340. функция inline. отчего так долго ? аффтопитезь: 4 8 15 16 23 42 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 13:16:55 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
а зачем static. Прелесть inline функции как раз заключается в том, что помещение inline фукнции в заголовочный файл не приведет double defined symbol: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 14:11:04 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
даже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:02:20 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
Aklinдаже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!!брр... как inline функция может вызываться ? она же по определению _встраиваемая_ (in line) в место вызова... или я что-то не так понял ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:35:42 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
Ёшбрр... как inline функция может вызываться ? она же по определению _встраиваемая_ (in line) в место вызова... или я что-то не так понял ? на все воля компайлера.. надо изучать ассемблер на выходе и делать выводы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 16:41:03 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
Aklinдаже не статик, все равно при 50 тактах на выполнение, происходит 800 тактов на вызов это же абсурд !!! для vc __forceinline int top() { return head->next; } ну естественно next имеет тип int и -> не перегружен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 18:39:20 |
|
||
|
Слишком долгий вызов inline функции
|
|||
|---|---|---|---|
|
#18+
Во-первых, inline -- не требование, а рекомендация компилятору. Поэтому, вероятно, надо смотреть ассемблерный код, чтобы понять, инлайнится функция или нет. Во-вторых, лаг может быть обусловлен некоторой предысторией команд. Ну например, именно перед исполнением встроенной функции закончился командный кеш и происходит обращение к медленной оперативной памяти. Таких вариантов много можно напридумывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 21:41:40 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34976554&tid=2027728]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 345ms |

| 0 / 0 |
