Как делает константу после того, как функция оптимизирует программу?

Вы можете создать приложение вне докера и скопировать только папку 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;
}

18
задан Unknown 1 May 2009 в 04:17
поделиться

6 ответов

Если компилятор знает, что поля экземпляра класса не изменены при вызове функции-члена const, ему не нужно перезагружать поля, которые он мог хранить в регистрах перед const вызов функции.

Это как бы упоминается в C ++ FAQ в обсуждении const_cast .

19
ответ дан 30 November 2019 в 07:56
поделиться

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.

2
ответ дан 30 November 2019 в 07:56
поделиться

Он сообщает компилятору, что метод не влияет на состояние классов; Вы не можете назначить что-либо в этом. Ознакомьтесь с C ++ FAQ Lite 18.10 .

5
ответ дан 30 November 2019 в 07:56
поделиться

Она предотвращает некоторый метод от изменения любой переменной-члена объекта этого класса.

1
ответ дан 30 November 2019 в 07:56
поделиться

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

Вот простая оптимизация Я использую (а не бью и пропускаю такие вещи, как const), которые занимают секунду, но окупаются. Организуйте свои переменные класса так, чтобы они немного лучше попадали на границы строк кэша, и соберите вместе наиболее часто используемые переменные. Для этого просто поместите ваши int, double, float и т. Д. Вместе в верхней части объявлений переменных вашего класса и переменных нечетного размера в нижней части следующим образом:

int foo; 
int bar;
double baz;
SomeObject obj;
char ch[14];
4
ответ дан 30 November 2019 в 07:56
поделиться

Моя первая мысль, касающаяся оптимизации, заключается в том, что, поскольку const указывает, что состояние экземпляра не изменилось, компилятор, возможно, имеет больше свободы в отношении изменения порядка вызовов методов в этом экземпляре.

0
ответ дан 30 November 2019 в 07:56
поделиться
Другие вопросы по тегам:

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