Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймаут между потоками 
:(
    Опции темы
diadiavova
Дата 9.8.2012, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(RageGod @ 9.8.2012,  19:25)
diadiavova, На самом деле все проще, чем вы думаете.
Просто хочется более высокой скорости работы.
Точнее, чтобы парсинг был быстрее.

Другого метода наладить скорость я не знаю. (кроме оптимизации кода еще, но там и так наладил все, что знаю).

Ну почему же проще?  Я так и предположил. Я написал о том, что для этого надо использовать инструменты параллельных вычислений. Почему-то некоторые думают, что чем больше потоков, тем быстрее всё работает, хотя это далеко не так, даже напротив - иногда избыток потоков может только замедлить обработку. Видимо есть смысл в создании потоков, количество которых не превышает количества ядер процессора, но ещё раз повторюсь, что использование параллельных вычислений предпочтительнее иуж точно проще и  надёжнее в использовании. Например плинк-запрос, решающий твою задачу будет выглядеть примерно так
Код

From item As String In stringCollection.AsParallel() Select ParseString( item)
 этот запрос возвратит коллекцию обработанных строк, причём при обработке элементы коллекции будут равномерно распределены между доступными ядрами процессора.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
RageGod
Дата 10.8.2012, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В принципе, вы правы.
Где-нибудь прочитать про такие параллельные вычисления можно?)

И как я понял, как они работают (судя по коду, которые вы предоставили мне):
По нажатию на кнопку (допустим так) запускается ProcessMultyThread, которые в свою очередь запускает начинает выполнение ProcessSingleString, до тех пор, пока количество строк в нашей коллекции не будет равно -1. Следовательно, здесь используется тоже что-то похожее на потоки, и это и называется параллельным вычислением, так?
Тогда, это своего рода потоки, только более надежно, да?
PM MAIL   Вверх
diadiavova
Дата 10.8.2012, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Ну естественно за кулисами используются потоки, только учитывается множество нюансов и вся рутинная работа уже сделана, а разработчику только сливки smile 
http://msdn.microsoft.com/ru-ru/library/dd460693.aspx


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
RageGod
Дата 10.8.2012, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо.

Я правильно понял работу параллельных вычислений? 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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