170 похожих чатов

#Байтоёбие Когда работаем с DateTime.Now и приходится в рамках одного метода

его несколько раз вызывать, как правильно делать:
1. Инициализировать переменную в методе и работать с ней
2. Не париться и везде использовать свойство Now

На сколько это емкая операция?
P.S На время все равно, нужна только дата.

42 ответов

24 просмотра

Проще самостоятельно забенчить, если интересно. Я сомневаюсь что кто-то даст точный ответ.

Valentin Marchuk
что такое забенчить?

Сделать бенчмарки с одним и с двумя вызовами и посмотреть разницу по времени выполнения.

в нет6 как раз ускорили эт штуку потому что испоритили во времена 3.1 но эт прям спички. тут вопрос как часто ты дерагешь и как тебе надо дальше обрабатывать типо зафиксировать момент на взоде к примеру

Посмотри на реализацию DateTime.Now

Valentin Marchuk- Автор вопроса
Phantom
Посмотри на реализацию DateTime.Now

она мне очем-нибудь скажет?

Valentin Marchuk
она мне очем-нибудь скажет?

Ну, если на каждом вызове будет выполнятся много операций, то конечно будет лучше записать в переменную

лучше UtcNow, так будет быстрее, а по факту можно забить

Valentin Marchuk- Автор вопроса
Сергей
лучше UtcNow, так будет быстрее, а по факту можно ...

понял, а есть вообще правила, где нужно UTC а где обычную дату использовать, если не брать в ращет кто быстрее/медленнее?

А зачем там DateTime.Now, раз ты берешь номер месяца?

Valentin Marchuk
понял, а есть вообще правила, где нужно UTC а где ...

если показывать пользователю не нужно лучше всегда Utc

Valentin Marchuk- Автор вопроса
Phantom
А зачем там DateTime.Now, раз ты берешь номер меся...

я пока реализую метод, так что еще переработаю, просто интересно стало

А и у тебя метод с точки зрения чистоты функции хуевый

Valentin Marchuk- Автор вопроса
Phantom
А и у тебя метод с точки зрения чистоты функции ху...

В плане, что нужно так делать: new DateTime(dt.Year, monthNumber, 1) или что ты имеешь ввиду?

Valentin Marchuk- Автор вопроса
Сергей
зачем там чистота?

так он же про функциональность а не про красивость

Valentin Marchuk
В плане, что нужно так делать: new DateTime(dt.Yea...

DateTime.Now берет время в момент вызова, как ты будешь с другим временем тестировать?

Сергей
зачем там чистота?

Чтобы тестировать и переиспользовать?

DateTime.Now довольно емкая операция, поэтому лучше один раз вызвать

Valentin Marchuk- Автор вопроса
Vadim Kokarev
DateTime.Now довольно емкая операция, поэтому лучш...

окей, как вы это понимаете? Есть статьи или другие источники?

Valentin Marchuk- Автор вопроса
Vadim Kokarev
Личный опыт и профилирование

ну как ты, сидел со stopwatch и чекал или другими способами?

Valentin Marchuk- Автор вопроса
Vadim Kokarev
Профилирование в VSке

ну ты же на рабочем проекте тестировал или написал свой метод, где юзал DateTime.Now и его мониторил, можешь описать процесс тезисно?

Vadim Kokarev
DateTime.Now довольно емкая операция, поэтому лучш...

сэкономить пару наносекунд чтобы потом базу данных подождать)

тут разве что ты можешь попасть на то, что у тебя будет первый день 1.09, а последний 30.10 если точно в нужное время сработает)

Я кстати вообще опасаюсь больше одного раза в таких случаях Now спрашивать, мало ли выстрелит в ногу потом в 00:00:00

Valentin Marchuk- Автор вопроса
Сергей
тут разве что ты можешь попасть на то, что у тебя ...

Хорошо, как бы ты написал этот метод, он вроде простой, чтобы работа как швейцарские часы?

Сергей
тут разве что ты можешь попасть на то, что у тебя ...

Можно сдохнуть от инфаркта, если в нужное время сработает!!!

Valentin Marchuk
Хорошо, как бы ты написал этот метод, он вроде про...

я бы сохранил в переменную, но не из-за производительности

Сергей
тут разве что ты можешь попасть на то, что у тебя ...

Мне интересно даже стало какая вероятность этого)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта