|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Вопрос. Из-за чего в первом алгоритме time_ меньше в 1,5 раза по сравнению со вторым алгоритмом? 1ый алгоритм: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
2ой алгоритм: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Весь другой код, который в цикле for остается таким же в обоих примерах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:25 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Из за вашей невнимательности Обратите внимание на методы этого класса с "говорящими" названиями :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:32 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Аааа... я не разглядел сперва... что вы измеряете :) Ща... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:41 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
не пойму в чем косяк ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:48 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
buserИз за вашей невнимательности Обратите внимание на методы этого класса с "говорящими" названиями :) у меня строчка Код: c# 1.
почему-то съедает половину времени выполнения самого тела цикла ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:55 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Students, почему думаешь, что строчка, а не Start, Stop и new? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 11:57 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
PallarisStudents, почему думаешь, что строчка, а не Start, Stop и new? т.к. вряд ли таймер делали так, чтобы он и сам ещё время съедал ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:01 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
PallarisStudents, почему думаешь, что строчка, а не Start, Stop и new? Первый алгоритм, когда ВНУТРИ цикла таймер, time_ в полтора раза меньше ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:03 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Ну... это поведение повторяется при любом способе организации цикла... х.з. неужто инкремент и переход на метку... Даже интересно... Ктонить разжует? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:06 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
да, я знаю. у меня в списке 4500 переменных типа int. в цикле выполняются определенные операции, на которые тратится 2 сек. А на сам for тратится 1-1,5 сек. Это очень странно. По сути на "инкремент и переход на метку" тратится почти половина всего времени ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:11 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Смотрите, если написать так (сделать мало операций в цикле): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
То time_ равно 0. Хотя тут тоже есть for, "инкремент и переход на метку" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:16 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
неужели никто не знает? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:24 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Students, ну а какое время в двух случаях получается, если выполнять полные операции? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:29 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Ну а что тут непонятного, инициализация цикла тоже имеет какие-то косты. Вот, собственно, оно и налицо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:38 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
PallarisStudents, ну а какое время в двух случаях получается, если выполнять полные операции? в первом алгоритме 2-2,2 сек, во втором 3-3,5 сек. как будто 3 строчки: Код: c# 1. 2. 3.
съедают 1,5 секунды. в list_offset содержится 4500 переменных типа int ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:38 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Studentsне пойму в чем косяк Косяка нет, это абсолютно разный код, требующий абсолютно разное время на выполнение. В чем проблема-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:40 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Можешь померять не секунды ElapsedMilliseconds, а процессорные тики ElapsedTicks (без потерь на округление). Разница у этих двух "алгоритмов" просто космическая. ~278 тыс тиков против 7 тыс. Оно и понятно, основные потери на инициализации цикла, инкремента, обращении к экземпляру списка и самое главное: на инстанциирование экземпляра класса Stopwatch в каждой итерации . Какую взаимосвязь ты решил тут найти в этом бредовом замере кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:47 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
МСУМожешь померять не секунды ElapsedMilliseconds, а процессорные тики ElapsedTicks (без потерь на округление). Разница у этих двух "алгоритмов" просто космическая. ~278 тыс тиков против 7 тыс. Оно и понятно, основные потери на инициализации цикла, инкремента, обращении к экземпляру списка и самое главное: на инстанциирование экземпляра класса Stopwatch в каждой итерации . Какую взаимосвязь ты решил тут найти в этом бредовом замере кода? смысл такой. у меня есть pdf. в первом варианте я его не делю на кусочки по 2 МБ и просто сдвигаю позицию в filestream, во втором делю на кусочки по obj/endobj, получается 4500. В итоге, если не замерять время for, то код работает одинаково, но из-за этих полутора секунд для "инициализации цикла, инкремента, обращении к экземпляру списка" весь 2 алгоритм идет к черту. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 12:57 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
МСУ, самое забавное, если вы обратили внимание, код номер раз дает меньшую цифирь... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 13:05 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
Studentsу меня есть pdf. в первом варианте я его не делю на кусочки по 2 МБ и просто сдвигаю позицию в filestream, во втором делю на кусочки по obj/endobj, получается 4500. В итоге, если не замерять время for, то код работает одинаково, но из-за этих полутора секунд для "инициализации цикла, инкремента, обращении к экземпляру списка" весь 2 алгоритм идет к черту. Значит, пользуйся первым способом, если он тебя устраивает. Эти два примера не эквивалентны. Что ты хочешь еще услышать, чтобы мы с помощью магии заставили второй способ работать столько же как и первый? Чудес не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 13:07 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
buserМСУ, самое забавное, если вы обратили внимание, код номер раз дает меньшую цифирь... Чудес не бывает, это тупо округление секунд - если код выполнился за 0.44 секунды, ElapsedMilliseconds == 0 А теперь возьми в руки ElapsedTicks... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 13:08 |
|
Stopwatch в цикле
|
|||
---|---|---|---|
#18+
ну... про "округление"... была мысль... да - фигня все это... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 13:22 |
|
|
start [/forum/topic.php?fid=20&msg=38397565&tid=1404038]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 155ms |
0 / 0 |