Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 22

make / mingw32-make - сравнение скорости в многопоточном режиме (-j)

19.08.2012, 08:53. Показов 2826. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в MinGW + MSYS имеются такие файлы для сборки программ с помощью Makefile:

Alex@tycoon-851de03e /home
$ make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i686-pc-msys

Alex@tycoon-851de03e /home
$ mingw32-make -v
GNU Make 3.82
Built for i386-pc-mingw32
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Тестируем их на скорость в однопоточном и многопоточном режимах:

Файл Makefile для тестирования есть во вложении к топику.

У меня ПК: CPU Core 2 Duo E8400 3.0Ghz (Windows XP)

Описание опции многопоточности:
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.

Результаты:

time make = 1m28.922s
time make -j3 = 0m44.375s
time make -j = 0m30.359s

time mingw32-make = 1m29.265s
time mingw32-make -j3 = 0m45.000s
time mingw32-make -j = 0m30.828s

Судя по результатам, для наибыстрейшей сборки программ из исходников через Makefile надо использовать опцию "-j".

Комментарии и мнения - излагайте.
Вложения
Тип файла: zip Makefile.zip (277 байт, 20 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.08.2012, 08:53
Ответы с готовыми решениями:

mingw32-make.exe.....
Недавно начал работать с Qt, установил QtSDK... В Creator-е написал простейшую программу &quot;Hello, world!&quot;, попробовал...

Mingw32-make (error 2)
Здравствуйте, хотел собрать exe-файл. Сначала воспользовался qmake, создались makefile'ы. Потом воспользовался mingw32-make. Результаты,...

Ошибка при сборке mingw32-make
Устанавливал opencv на Qt 5.10.1 по этому руководству https://evileg.com/ru/post/370/. При сборке на 34% появляется следующая ошибка. В...

3
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 22
21.08.2012, 04:38  [ТС]
Цитата Сообщение от nessy74 Посмотреть сообщение
time make -j = 0m30.359s.

к сожалению в результате экспериментов выяснилось, что "make -j" применять нельзя, часть кода исходника недособирается при этом.

надо применять "make -j3" (для двух ядерных CPU).
0
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
21.08.2012, 17:44
Ересь какая-то, -j без параметра просто создает по процессу на каждый собираемый файл, общей собираемости эти мешать не должно.
Между тем, опытные собиральщики на скорость в лице сообщества генты рекомендуют использовать именно количество_ядер+1 потоков сборки.
0
 Аватар для nessy74
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 22
21.08.2012, 20:44  [ТС]
Цитата Сообщение от NoMasters Посмотреть сообщение
рекомендуют использовать именно количество_ядер+1 потоков сборки.
да, я с этим согласен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.08.2012, 20:44
Помогаю со студенческими работами здесь

Процесс mingw32-make.exe не завершается
При запуске проекта выводит 21:03:00: Выполняются этапы для проекта HelloWorld... 21:03:00: Настройки не изменились, этап qmake...

Задать в .pro файле mingw32-make флаг
В следствие долгой компиляции некоторых проектов появилась надобность компилировать, используя все 4 ядра. В mingw32-make достаточно...

Статическая сборка Qt5.9.1 в Win8. Ошибка mingw32-make -1073741502
Добрый день ув. господа/товарищи программисты. Надеюсь, вы мне поможете. Хотел осуществить статическую сборку на Qt5.9.1. Для этого: ...

Как правильно работать с пробелами в пути к файлам в mingw32-make?
При попытке собрать библиотеку к драйверу нужно прописывать пути типа - C:\Program Files\MySQL\MySQL server 5.5\libs\libmysql.lib. В этом...

Почему экзешник make.exe (вернее, его разновидность mingw32-make.exe) принимает неизвестные параметры?
Друзья! У меня есть одна из сборок mingw, а там, как известно файл make.exe отсутствует, а вместо него есть файл mingw32-make.exe Суть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru