Запуск одной и той же программы с 40 разными «идентичностями». работает 40 экземпляров программы. Плюсы и минусы?

Здесь мы сталкиваемся с определенным решением по разработке программы, которое требует от нас

  1. Если и есть ли разница в производительности между

    а. запуск нескольких (скажем, n = 40) экземпляров программы (скажем, n = 40); а также,

    б. Изменение исходного кода программы достаточно только для изменения его имени (скажем, программа называется XXXXX, и мы меняем исходный код, перекомпилируем и устанавливаем XXXX1, XXXX2, XXXX3 …. до XXXX40) и запускаем все они сразу.

  2. Если да, то каковы эти различия?

0

Решение

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

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

Являются ли эти эффекты достаточно значительными, чтобы о них беспокоиться, зависит от конкретной ситуации.

2

Другие решения

Только вы знаете, что вы подразумеваете под «производительностью», так что сделайте свой собственный сравнительный анализ.

Вам не нужно менять исходный код программы, чтобы изменить ее имя. Просто:

 $ cp myprogram myprogram2

Или сделайте каждый элемент одним и тем же файлом:

 $ ln myprogram2 myprogram

Я ожидаю, что Linux сделает что-то умное, если вы запустите myprogram а также myprogram2 где обе ссылки на один и тот же файл. Однако всего за 40 одновременных случаев я был бы удивлен, если бы эффект был измеримым.

Однако я не вижу преимущества в том, чтобы иметь разные имена. Запуск нескольких экземпляров одного и того же исполняемого файла — обычное дело.

0

По вопросам рекламы [email protected]