Многопоточное приложение на Delphi и ядра процессора Help

xxxintelxxx
Дата: 07.07.2019 10:37:17
На 16 ядрах запускаю 16 потоков

Этот код потока грузит все ядра на 100%
str:String;
while True do
	begin
	 str := 'dfhjjhsdfhj';
	end;
str:String;


Этот код потока грузит все ядра но на 6,25% =100/16
while True do
	begin
	 str := 'dfhjjhsdfhj';
	 str := 'dfhjjhsdfhj' + 'fdghgh';
	end;



Help. Как в одном процессе загрузить CPU наполную?
YuRock
Дата: 07.07.2019 11:04:02
xxxintelxxx
Help. Как в одном процессе загрузить CPU наполную?



xxxintelxxx
Этот код потока грузит все ядра на 100%
str:String;
while True do

Чем не подходит? Любой пустой вечный цикл грузит проц на 100%.
xxxintelxxx
Дата: 07.07.2019 11:16:28
YuRock,

Нет не грузит на 100%, возьмите код из второго примера, где строка склеивается (str := str + 'fdghgh';) и попробуйте у себя
X-Cite
Дата: 07.07.2019 11:17:57
В 1 случае компилятор исключил код внутри цикла из приложения
Во 2 случае нет.

В 1 случае формально получилось while True do begin end;
xxxintelxxx
Дата: 07.07.2019 11:25:01
X-Cite,
Ну и что, что компилятор исключает, ну заменить на i:integer i=653456 или i=i+1, будет тоже грузить 100%

Вопрос открыт, почему второй пример загружает 1 ядро на 1/16 не на 100%???
Kazantsev Alexey
Дата: 07.07.2019 11:37:31
xxxintelxxx
Вопрос открыт, почему второй пример загружает 1 ядро на 1/16 не на 100%???

Упирается в однопоточный менеджер памяти.
xxxintelxxx
Дата: 07.07.2019 11:57:59
Kazantsev Alexey,

Спасибо ответ!
Как можно оптимально решить проблему не переписываю исходный код многопоточной программы?
Dimitry Sibiryakov
Дата: 07.07.2019 12:07:13

xxxintelxxx
Как можно оптимально решить проблему не переписываю исходный код многопоточной программы?

Найти и подключить менеджер памяти, который использует разные пулы для разных потоков.

Posted via ActualForum NNTP Server 1.5

xxxintelxxx
Дата: 07.07.2019 12:12:39
Dimitry Sibiryakov,

Спасибо!
Не могли бы порекомендовать какой-нибудь надежный и быстрый, может быть есть fastmm модифицированный для моих задач?
Dimitry Sibiryakov
Дата: 07.07.2019 12:23:49

xxxintelxxx
Не могли бы

Не мог.

Posted via ActualForum NNTP Server 1.5