Здесь мы сталкиваемся с определенным решением по разработке программы, которое требует от нас
Если и есть ли разница в производительности между
а. запуск нескольких (скажем, n = 40) экземпляров программы (скажем, n = 40); а также,
б. Изменение исходного кода программы достаточно только для изменения его имени (скажем, программа называется XXXXX, и мы меняем исходный код, перекомпилируем и устанавливаем XXXX1, XXXX2, XXXX3 …. до XXXX40) и запускаем все они сразу.
Если да, то каковы эти различия?
Одно из отличий состоит в том, что если вы запускаете один и тот же двоичный файл несколько раз, операционной системе потребуется загрузить только одну копию в память, и каждый запущенный экземпляр будет использовать части, доступные только для чтения (код, ресурсы и т. Д.). Даже записываемые части будут делиться, пока они не будут написаны благодаря Копирование при записи.
Если вы создаете кучу разных двоичных файлов, каждый файл должен быть загружен в память отдельно. Это увеличит использование памяти и время запуска процесса.
Являются ли эти эффекты достаточно значительными, чтобы о них беспокоиться, зависит от конкретной ситуации.
Только вы знаете, что вы подразумеваете под «производительностью», так что сделайте свой собственный сравнительный анализ.
Вам не нужно менять исходный код программы, чтобы изменить ее имя. Просто:
$ cp myprogram myprogram2
Или сделайте каждый элемент одним и тем же файлом:
$ ln myprogram2 myprogram
Я ожидаю, что Linux сделает что-то умное, если вы запустите myprogram
а также myprogram2
где обе ссылки на один и тот же файл. Однако всего за 40 одновременных случаев я был бы удивлен, если бы эффект был измеримым.
Однако я не вижу преимущества в том, чтобы иметь разные имена. Запуск нескольких экземпляров одного и того же исполняемого файла — обычное дело.