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