Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2015, 04:54   #1
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию Нагрузка на процессор

В общем вопрос будет не по ошибкам в коде, а немного необычный наверно для данного раздела.
У меня была программа которая считывала постоянно с файла инфу, при этом она считывала с десятка потоков одновременно это все.
Так же обрабатывала довольно таки большой текст (копировала и удаляла), изза этого нагрузка на процессор была под сотню, сейчас немного поумнел, придумал как можно круче все это реализовать и хотел бы у вас спросить, если считывание инфы идет не с файла а с таблицы (StringGrid) то нагрузка же минимальна? а что если сотня потоков одновременно это делают?
Так же что если сотня потоков одновременно редактируют определенную инфу в этой самой таблице то какова будет нагрузка на процессор? надеюсь не более 20%
vipok72 вне форума Ответить с цитированием
Старый 12.08.2015, 07:26   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

1. процессоров в системе сколько? 2-4 ядра ну максимум 8 на xeon/i7...
оптимальное количество потоков равно количеству ядер... т.е. потоков должно быть не более 8...
допускается использование большего числа потоков (до 100) при наличии множества медленных блокирующих операций, например блокирующие сокеты в диалоговом протоколе
если сокетов больше - рекомендуется завести пул потоков двукратного количества ядер, а сокеты перевести в асинхрон или на IOCP

2. в памяти обработка конечно быстрее, но StringGrid - визуальный компонент и плохо подходит для обработки инфы.
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 12.08.2015, 08:46   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
vipok72
А как ты обработки организовал? В отдельных треадах? Если да - ставь в них sleep.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.08.2015, 13:45   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как ты обработки организовал? В отдельных треадах? Если да - ставь в них sleep.
Зачем 100500 рабочих большинство из которых в рабочее время вместо работы спят?

Гораздо выгодней по ресурсам иметь небольшое количество потоков (по памяти 1МБ стека/поток), и по скорости (накладные расходы ОС на синхронизацию и переключение потоков)
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нагрузка на сайт ... s88s Свободное общение 13 30.03.2015 11:04
Потоки. Нагрузка на ЦП. Test3r Общие вопросы Delphi 0 03.06.2012 10:34
Нагрузка на сайт Sergey2 PHP 8 03.08.2011 15:27
Нагрузка на процессор awecs Win Api 0 21.11.2010 17:30
Анимация (большая Нагрузка на процессор) BuT@JL Мультимедиа в Delphi 6 24.08.2009 09:43