Вы можете создать приложение вне докера и скопировать только папку dist
в образ докера nginx .
После этого вам не нужно устанавливать node_modules
evrey time.
Пример Dockerfile
FROM nginx:latest
ENV TZ=Europe/Moscow
COPY ./dist/my-app /usr/share/nginx/html
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
Пример nginx.conf
server {
server_name my-app;
root /var/www/frontend/src;
try_files $uri $uri/ index.html;
}
Если компилятор знает, что поля экземпляра класса не изменены при вызове функции-члена const, ему не нужно перезагружать поля, которые он мог хранить в регистрах перед const вызов функции.
Это как бы упоминается в C ++ FAQ в обсуждении const_cast .
It allows you to call the class member function on const
objects:
class SomeClass
{
public:
void foo();
void bar() const;
}
SomeClass a;
const SomeClass b;
a.foo(); // ok
a.bar(); // ok
b.foo(); // ERROR -- foo() is not const
b.bar(); // ok -- bar() is const
There's also the volatile
qualifier for use with volatile
objects, and you can also make functions const volatile
for use on const volatile
objects, but those two are exceedingly rare.
Он сообщает компилятору, что метод не влияет на состояние классов; Вы не можете назначить что-либо в этом. Ознакомьтесь с C ++ FAQ Lite 18.10 .
Она предотвращает некоторый метод от изменения любой переменной-члена объекта этого класса.
Код asm, сгенерированный для метода const, будет таким же, если есть const или нет. const является функцией компилятора, а не среды выполнения, поэтому, если есть какой-либо выигрыш в производительности, я думаю, что оптимизатор компиляторов может использовать const в качестве подсказки для таких вещей, как встраивание или определение побочных эффектов для возможной оптимизации. Короче говоря, оптимизатор может немного помочь, но если метод прост для начала, то я сомневаюсь, что код, сгенерированный из оптимизатора, будет каким-то другим const или не const.
Вот простая оптимизация Я использую (а не бью и пропускаю такие вещи, как const), которые занимают секунду, но окупаются. Организуйте свои переменные класса так, чтобы они немного лучше попадали на границы строк кэша, и соберите вместе наиболее часто используемые переменные. Для этого просто поместите ваши int, double, float и т. Д. Вместе в верхней части объявлений переменных вашего класса и переменных нечетного размера в нижней части следующим образом:
int foo;
int bar;
double baz;
SomeObject obj;
char ch[14];
Моя первая мысль, касающаяся оптимизации, заключается в том, что, поскольку const указывает, что состояние экземпляра не изменилось, компилятор, возможно, имеет больше свободы в отношении изменения порядка вызовов методов в этом экземпляре.