14.04.2003, 07:08 | #1 |
Участник
|
Падение производительности функции
на метод Click повесил обработку цикла с выводом на экран (в цикле использую случайные числа и вывод print )
до 1000 итераций - работет быстро, а потом резко начинает тормозть... с чем это связано ??? логику надо вынести в отдельный класс или функцию ??? почему падает производительность ??? |
|
14.04.2003, 08:58 | #2 |
Соучастник
|
попробуйте писать случайное число + текущее время в файл и периодически (например после записи килобайта данных) вызывайте метод finalize. сравните.
Хотя может быть дело в реализации генератора случ. чисел... Вы какой класс используете?
__________________
View Anton Soldatov's LinkedIn profile |
|
14.04.2003, 09:27 | #3 |
Соучастник
|
не знаю, что там резко торомзит...
X++: static void Job10(Args _args) { Random myRand = new Random(); int i, k; int t_after, t_now = timeNow(); ; for(i=0;i<1000;i++) { print myRand.nextInt(); } t_after = timeNow(); info(int2str(t_after - t_now)); t_now = timeNow(); for(i=0;i<10000;i++) { print myRand.nextInt(); } t_after = timeNow(); info(int2str(t_after - t_now)); t_now = timeNow(); for(i=0;i<20000;i++) { print myRand.nextInt(); } t_after = timeNow(); info(int2str(t_after - t_now)); t_now = timeNow(); pause; }
__________________
View Anton Soldatov's LinkedIn profile |
|
14.04.2003, 09:29 | #4 |
Участник
|
Дело не в самом генераторе случ. чисел... а в факте того что какой-то поределенный промежуток времени функция выполняется очень быстро (ход выполнения отслеживаю через частоту печатанья print "промежуточный результат" например 1000 иттераций из 5000), а потом до конца цикла (оставшиеся 4000) выполняются раз в 10 медленнее...
может это связано с особенностью именно перекрытия стандартных методов на объекте (например, предполагается что метод click на button должен обрабатываться за 0.1 сек и не дольше) или это связано с тем где выполнятся super() - в начале или в конце функции (метода) |
|
14.04.2003, 09:42 | #5 |
Соучастник
|
Цитата:
Изначально опубликовано renat
может это связано с особенностью именно перекрытия стандартных методов на объекте (например, предполагается что метод click на button должен обрабатываться за 0.1 сек и не дольше) или это связано с тем где выполнятся super() - в начале или в конце функции (метода) сделал форму, переопределил метод clicked у кнопки(тот же самый код, что в пред. пост + super() ), результаты: 2,13,27;2,17,30
__________________
View Anton Soldatov's LinkedIn profile |
|
14.04.2003, 09:49 | #6 |
Участник
|
Я все понял - я использовал функцию из Класса Dictionary...
я ее закоментировал и все работает шустро... НО как только я ее вставляю снова то получается результат описанный выше... почему так происходит я не знаю... |
|
14.04.2003, 14:52 | #7 |
Moderator
|
Может просто вы работаете через трехзвенку и в некоторые моменты кто-то "грузит " сервер приложений ? Естественно в этот момент, методы выполняемые на сервере будут отрабатывать медленнее.
|
|