Я в значительной степени согласился бы с тем, какой сказанный bigmattyh, это действительно зависит.
Как правило, я пытаюсь агрегировать файлы сценария как можно больше, но если у Вас есть некоторые сценарии, которые только используются на нескольких областях сайта, особенно, которые выполняют большие обходы DOM на загрузке, имело бы смысл оставлять тех, которые в отдельном файле (файлах).
, например, если Вы только используете проверку на своей странице контакта, почему загрузка это на Вашей домашней странице?
Как в стороне, можно иногда стащить эти файлы в промежуточные страницы, где не много еще продолжается, поэтому когда пространства пользователя на иначе довольно тяжелой странице, которой нужен он, это должно уже кэшироваться - использование с осторожностью - но может быть удобным приемом, когда у Вас есть кто-то сравнивающий Вас.
Так, как можно меньше файлов сценария, в причине.
, Если Вы отправляете 100K монолит, но только используете 20K его для 80% страниц, рассматривают разделение его.
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()
{
...
}
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?
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.