|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.11.2015, 15:40 | #1 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Как посмотреть, что в коде тормозит больше всего
Я писал код на строках, и теперь переделал часть на int. Несмотря на это, я еще не могу сделать так, чтобы код не лагал. У меня окно должно обновляться по таймеру раз в 100мс, а в действительности это происходит за 500мс.
Я думаю, программа, где есть вывод на графики, ОБПФ, куча бинарных данных, может работать быстрее. В идеале мне нужно, чтобы обработка шла менее 5 мс, так что вопрос очень важный. Подскажите, пожалуйста, как можно протестировать программу на тормознутость, найти, что сильнее всего отвисает? |
09.11.2015, 15:55 | #2 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Ну можно профайлер запустить. Если код нормально разбит на функции, а не одна на 100500 строк. Например, тот, что в студии есть. Или DotTrace.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
10.11.2015, 11:35 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А чего непонятного? Ну видимо это IQconv и занимает кучу времени )
Про время, если не нравится в виде %, то по кнопке на скриншоте выше можно настроить чтоб другие варианты были (скорее всего Instrumental вместо Sampling надо выбрать)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
10.11.2015, 14:11 | #5 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Если только IQconv - это лишь часть функции. Поэтому чьто нитакь?
Код:
Последний раз редактировалось Krasi; 10.11.2015 в 14:14. |
10.11.2015, 14:14 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А оставшаяся часть функции?)
Ну видимо она вызывается 100500 раз, и в ней 10050 if'ов. А зачем такое извращение с if'ами? Сделайте массив и берите элемент myArray[X-1]
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 10.11.2015 в 14:19. |
10.11.2015, 14:20 | #7 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Вот новая версия лога, если что. То-есть, видимо, он не выдает того, что мне нужно, и все спихивает на таймер. Хотя проблема в том, что у таймера выставлено 1мс, а программа обновляется каждые 300мс, примерно. Что можно сделать? Вообще я вижу еще OFDM_spec. Эта функция действительно работает не быстро, и я могу ее показать, если Вы ответите, что она тоже тормозит у меня действительно
|
10.11.2015, 15:16 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что-то не понял про 150 вызовов.
150 таких if'ов (каждый раз при вызове функции) точно медленнее, чем массив из 150 элементов созданный один раз потому что для доступа к 75-ому элементу массива выполняется примерно только одно действие, а не 75. Массив же это один кусок памяти, поэтому не надо никуда долго ходить для поиска 75-того элемента, можно просто взять <размер_элемента> байтов начиная с позиции 75*<размер_элемента>. Насколько значительно не знаю. Ну и вообще неудобно ж так код писать, копипаст не рулит А зачем 1мс если 300мс надо?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
10.11.2015, 15:18 | #10 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Тогда подскажите, мне надо в IQconv сравнить каждый элемент массива. Если я в функцию отправляю массив длины 150, то мне все равно надо делать for в самой функции, и будет куча if и тп. Или как? Есть путь проще? Или все верно? Я просто делаю массив, столько же if, но это будет обращение к одному кусочку памяти и будет происходить намного быстрее?
Последний раз редактировалось Krasi; 10.11.2015 в 15:31. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файлы.Найти раздел, в котором больше всего книг | Camelot_2012 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 14.06.2012 13:25 |
Определить cлово, в котором больше всего гласных букв. | [Алёнка] | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 05.12.2011 13:02 |
Размер приложения - можно как-то посмотреть что сколько весит? | delphicoding | Общие вопросы Delphi | 11 | 31.08.2011 19:14 |
Определить какой краски было потрачено больше всего | Maxym_93 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 30.04.2011 00:47 |
Что вас больше всего раздражает в этом разделе ? (обязательно к прочтению всем новичкам) | бедный_студент | Помощь студентам | 6 | 02.05.2009 14:47 |