|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.05.2016, 12:43 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Оптимизация кода
Всем привет.
Помогите пожалуйста оптимизировать нижеследующий код на скорость выполнения. Код:
Так же не обнаружил разницы между i++ и ++i в циклах. Мой процессор - Intel Core i7 3630QM (ноутбук), 8 ядер (4 физических, 4 виртуальных), 2,4 GHz на ядро. Этот код загружает все 8 ядер на 90%. Примерная скорость работы в отладчике (Stopwatch) = 1 000 000 значений в секунду. После выполнения пяти потоков формируются новые данные ch0-ch5 (берутся из файла), и всё по новой. Всего 210 наборов значений ch0-ch5. Из всего этого следует, что при номинальной нагрузке процессора непрерывный перебор будет длиться около пяти суток (2000 секунд один поток, помноженные на 210). Это при том, что приоритеты потоков установлены в Highest, приоритет процесса установлен в RealTime, IsBackground для всех потоков равен false. Мало того, я не горю желанием так сильно и так долго грузить процессор (износ, все дела). Так что периодически я буду ставить выполнение всех потоков на паузу, и отправлять компьютер в спящий режим. А что бы компьютер можно было использовать для повседневных нужд - нужно добавить управление приоритетами потоков и процесса. Итого я могу получить время выполнения до 15 суток. Хотелось бы сократить всё это дело, и я буду благодарен вам за любую вашу помощь. Приветствуются любые идеи, которые позволят мне ускорить перебор.
Подпись ? Не, не слышал ...
|
17.05.2016, 13:47 | #2 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Новая информация: вне отладчика пять таких потоков выполняются за 13 минут. То есть, непрерывное выполнение перебора 210 вариантов будет длиться 45 с половиной часов. Уже быстрее, чем в отладчике. Пока перебор выполняется ...
Подпись ? Не, не слышал ...
|
17.05.2016, 13:52 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
to CheckToData
или 2 цикла Код:
Код:
ПОЛУЧИТЬ ВСЕ числа удовлетворяющие ВСЕМ сразу условиям ???? 0. НЕ более 10 знаков включая ВЕДУЩИЕ нули (1; 01; 001; ... ) 1. только 4,5,6,7 (значит НИКАКИХ нулей ?) 2. только четная длина 3. только палиндром взято отсюда + прочтение ChecktoData. гораздо проще генерить только нужное ОТВЕТ без потоков Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 17.05.2016 в 14:13. |
17.05.2016, 14:06 | #4 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
evg_m
Условия следующие: 0. НЕ более 10 знаков включая ВЕДУЩИЕ нули (1; 01; 001; ... ) 1. только 4,5,6,7 (и с нулями тоже, и не только 4 5 6 7); вариант 00455400 тоже должен учитываться 2. только четная длина 3. только палиндром
Подпись ? Не, не слышал ...
|
17.05.2016, 14:18 | #5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
просто могут быть. Увеличиваете длину mas (добавляете туда mas[5]='0') + другие границы ВСЕХ циклов. Код:
+ Добавляете условие проверки либо на num Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 17.05.2016 в 14:25. |
|
17.05.2016, 15:53 | #6 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Нули могут быть там, где они допущены символами, которые по коду не равны ch0-ch5.
Мне тяжело словесно оформить условия. В приведённом мною коде всё правильно работает, и на выходе я получаю наборы нужных мне чисел. Первые 20 чисел для набора 0 1 2 3: 00 0000 000000 00000000 0000000000 11 22 33 0110 0220 0330 1001 001100 1111 1221 1331 2002 2112 002200 2222
Подпись ? Не, не слышал ...
|
17.05.2016, 16:05 | #7 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оптимизация кода | Programmer121 | Общие вопросы C/C++ | 7 | 12.01.2016 17:37 |
Оптимизация кода (C++) | Кирилл Романов | Помощь студентам | 0 | 30.10.2013 23:36 |
Оптимизация кода на C# | FiloXSee | Общие вопросы .NET | 4 | 24.09.2011 17:10 |
Оптимизация кода | LuckyTheGreat | C# (си шарп) | 3 | 15.07.2011 00:46 |
Оптимизация кода | WoWan-SM | Общие вопросы .NET | 4 | 27.04.2010 11:33 |