![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
Добрый день. Есть следующая ситуация:
1. Комп(i7 8 вирт. ядер; 8гб ОЗУ; ВЫНь7 х64; SSD для хранения данных; ХЕ10.2.3) 2. программа для обработки текстовых файлов в многопоточном режиме (настройка от 2 до 100 потоков) - вызывается поток - потоку передается путь к файлу - поток считывает файл, изучает содержимое(есть несколько циклов ДЛЯ с большим числом итераций) - поток принимает решение и копирует файл в другие каталоги Результаты: - сколько не выставляй количество потоков, все рано загрузка процессора 11-13% (всегда только 4-е ядра загружены на 25%) - это все по манагеру задач конечно - пропорциональный рост потребляемой памяти, тут все понятно Вопрос: как всетаки загрузить проц на все 200% ? видимо есть какие то варианты? или какието встроенные ограничения? Всем ответившим по делу заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Вам на исходниках написали. Ваша задача упирается в менеджер памяти который однопоточный. А вы на каждой строчке перевыделяете память.
Хотите разгрузить делайте не потоки, а процессы. Это самый простой спосо6. Либо переписывать менеджер памяти. Второе по простате это разбить все адресное пространство на не пересекающиеся части и отдать их потокам. Соответственно в таком варианте рекомендуется урезать число потоков. Для увеличения памяти использовать механизмы из менеджера памяти OS/360. Более сложный вариант для блоков среднего размера. Каждому блоку в менеджере памяти присвоить доп поле номер потока-владельца блока. Причем поле должно быть как у занятых блоков так и у свободных.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка процессора. | Артём_2 | Общие вопросы Delphi | 2 | 13.03.2014 10:59 |
Неполная загрузка 4-ядерного процессора, Canopus Procoder3. | GRG2 | Софт | 5 | 01.06.2011 18:49 |
загрузка процессора | koval911 | Операционные системы общие вопросы | 10 | 14.12.2010 17:15 |
Загрузка процессора | Syred | Общие вопросы Delphi | 1 | 12.06.2008 22:15 |
Загрузка процессора | Terran | Общие вопросы Delphi | 1 | 15.12.2007 22:27 |