Как я могу сказать gcc не встраивать функцию?

Я в значительной степени согласился бы с тем, какой сказанный bigmattyh, это действительно зависит.

Как правило, я пытаюсь агрегировать файлы сценария как можно больше, но если у Вас есть некоторые сценарии, которые только используются на нескольких областях сайта, особенно, которые выполняют большие обходы DOM на загрузке, имело бы смысл оставлять тех, которые в отдельном файле (файлах).
, например, если Вы только используете проверку на своей странице контакта, почему загрузка это на Вашей домашней странице?

Как в стороне, можно иногда стащить эти файлы в промежуточные страницы, где не много еще продолжается, поэтому когда пространства пользователя на иначе довольно тяжелой странице, которой нужен он, это должно уже кэшироваться - использование с осторожностью - но может быть удобным приемом, когда у Вас есть кто-то сравнивающий Вас.

Так, как можно меньше файлов сценария, в причине.

, Если Вы отправляете 100K монолит, но только используете 20K его для 80% страниц, рассматривают разделение его.

115
задан Ciro Santilli 新疆改造中心法轮功六四事件 10 May 2015 в 06:45
поделиться

3 ответа

You want the gcc-specific noinline attribute.

This function attribute prevents a function from being considered for inlining. If the function does not have side-effects, there are optimizations other than inlining that causes function calls to be optimized away, although the function call is live. To keep such calls from being optimized away, put asm ("");

Use it like this:

void __attribute__ ((noinline)) foo() 
{
  ...
}
137
ответ дан 24 November 2019 в 02:24
поделиться

A portable way to do this is to call the function through a pointer:

void (*foo_ptr)() = foo;
foo_ptr();

Though this produces different instructions to branch, which may not be your goal. Which brings up a good point: what is your goal here?

21
ответ дан 24 November 2019 в 02:24
поделиться

Use the noinline attribute:

int func(int arg) __attribute__((noinline))
{
}

You should probably use it both when you declare the function for external use and when you write the function.

7
ответ дан 24 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: