Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скорость работы 3 потоков, потоки в дельфи 
V
    Опции темы
Garmahis
Дата 11.10.2016, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 23.12.2004

Репутация: нет
Всего: 4



В приложенном проекте есть thread, который свою работу выполняет за 2 секунды,
если он запущен один (Delphi 7, i5 3,3 GHz 8Gb).

Если запустить их 3, то время работы каждого увеличится до 12 секунд.

Если запустить 3 копии приложения в каждом из которых будет работать 1 поток,
то время работы потока останется в районе 2с.

Требуется заставить 3 потока в одном приложении работать со скоростью 2с.
Уже потерял всякую надежду и планирую использовать несколько процессов.
Время работы потоков пишется в файлы c:\thread_*.txt

Кто сможет заставить 3 потока работать со скоростью одного ? 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  ThreadTest.rar 2,51 Kb
PM   Вверх
kami
Дата 11.10.2016, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(Garmahis @  11.10.2016,  17:10 Найти цитируемый пост)
Кто сможет заставить 3 потока работать со скоростью одного ?  

Минус вам. Виртуальный. За:
1. Спихивание на других своей задачи. Допустим, много кто на форуме сможет. Но кому это надо?
2. Плохо разобранная проблема. А вернее - вообще не разобранная. Код не документирован, с использованием указателей (зачем? Вы работаете в D3 - D7?), кучей непонятных вычислений (думаете, кому-то будет интересно разбирать это всё?), объявления массивов на 380 метров (вы не слышали о динамических массивах? и о дженериках?) при использовании только 100 кб... В общем, даже начало чтения кода уже снижает желание помочь до минимума.

P.S. Резко? Возможно. Но какая постановка вопроса - такой и ответ. Спасибо, хоть не "ну-ка быстро всё бросили и сделали так, чтобы код работал так быстро, как мне надо".
PM MAIL WWW   Вверх
DYUMON
Дата 12.10.2016, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: нет
Всего: 3



ошибка в 16 строке

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
dnek
Дата 12.10.2016, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.4.2013

Репутация: нет
Всего: нет



Попробуйте повысить приоритет Вашего процесса:
Код

  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);

или повысить приоритет потока
Код

[Поток].Priority := tpTimeCritical


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Garmahis
Дата 13.10.2016, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 23.12.2004

Репутация: нет
Всего: 4



dnek, большое спасибо! Я разобрался smile Была проблема с менеджером памяти при выполнении StrPCopy.
kami, вас никто не заставляет никому помогать. Поэтому не стоит писать если у вас нечего сказать по делу.
PM   Вверх
kami
Дата 14.10.2016, 18:47 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(Garmahis @  13.10.2016,  10:21 Найти цитируемый пост)
не стоит писать если у вас нечего сказать по делу. 

Я говорил именно по делу.
Прежде чем написать - я скачал ваши исходники и попробовал разобраться. Несмотря на явно приказной (вернее "на слабо") тон в постановке вопроса. Обратите внимание, что счетчик скачиваний = 1, т.е. я единственный, кто вообще прикоснулся к вашим исходникам.
Только после поверхностного анализа структуры приложения я понял, что глубже лезть и искать причину нет смысла. О чем и написал.

На всякий случай - переформулирую: если вы хотите помощи - обращайтесь именно за помощью. Показывая при этом, что вы сами сделали для решения проблемы. Дабы помогающие видели - вы не халявщик, просто в данном аспекте не хватает знаний. Прикладывая не тонну своего кода а-ля "разгребите тут всё", а минимальный воспроизводимый пример.

В исходной постановке ваш вопрос расценивается именно как сообщение от халявщика, который уверен, что все вокруг ему должны.

Кстати, предложение dnek, мягко говоря, не особенно то и хорошее. 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1188 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.