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

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

19.08.2012, 08:53. Показов 2779. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru