Время выполнения проекта/кубика

Sober3r

Client
Регистрация
01.02.2017
Сообщения
417
Благодарностей
7
Баллы
18
ребят подскажите как при запросе юникс времени избавиться от точки и милисекунд,

задача такая чтоб можно было засеч время выполнения шаблона в секундах .
т.е. в начале и в конце выполнения шаба а потом все вычесть .
или может есть другие варианты как это сделать ?)
спасибо за подсказку.)
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
С unixtime удобнее работать. То что Вы хотите, Вам постоянно надо будет конвертировать время. Лишние телодвижения.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Удобнее с TickCount (переменная окружения {-Environment.TickCount-})
 
  • Спасибо
Реакции: one

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
чтобы можно было засечь время можно пользоваться переменной окружения {-Environment.TickCount-}
 
  • Спасибо
Реакции: Sober3r и one

Sober3r

Client
Регистрация
01.02.2017
Сообщения
417
Благодарностей
7
Баллы
18

Sober3r

Client
Регистрация
01.02.2017
Сообщения
417
Благодарностей
7
Баллы
18

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113

Sober3r

Client
Регистрация
01.02.2017
Сообщения
417
Благодарностей
7
Баллы
18

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Работать из расчета что 1000мс = 1с
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113

Sober3r

Client
Регистрация
01.02.2017
Сообщения
417
Благодарностей
7
Баллы
18
C#:
return DateTimeOffset.Now.ToUnixTimeMilliseconds(); // текущая дата в UnixTime, в миллисек.
C#:
return DateTimeOffset.Now.ToUnixTimeSeconds(); // текущая дата в UnixTime, в сек.
ща будет тупой вопрос ....
что не так ..?(((
upload_2017-10-25_16-30-1.png
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
  • Спасибо
Реакции: СТЕПАН

СТЕПАН

Moderator
Регистрация
17.03.2013
Сообщения
951
Благодарностей
353
Баллы
63
Dimionix да ты не шаришь)) нафиг они нужны там же пусто))):-)

улыбнуло)
 
  • Спасибо
Реакции: Zoloo и Dimionix

Metrix

Client
Регистрация
03.01.2014
Сообщения
342
Благодарностей
272
Баллы
63
C#:
return DateTimeOffset.Now.ToUnixTimeMilliseconds(); // текущая дата в UnixTime, в миллисек.
C#:
return DateTimeOffset.Now.ToUnixTimeSeconds(); // текущая дата в UnixTime, в сек.
Кстати, недавно столкнулся с тем, что данный вариант не работал у клиента, дело было в старом фреймворке, покопался в интернете и понял, что ниже версии 4.6 не будет работатать. Фреймворк переставлять не стал, просто переделал код для миллисекунд:
Код:
long unixtime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
project.Variables["timeStamp"].Value = Convert.ToString(unixtime);
Для секунд:
Код:
long unixtime = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
project.Variables["timeStamp"].Value = Convert.ToString(unixtime);
 
  • Спасибо
Реакции: orka13, Dimionix и doc

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Кстати, недавно столкнулся с тем, что данный вариант не работал у клиента, дело было в старом фреймворке, покопался в интернете и понял, что ниже версии 4.6 не будет работатать. Фреймворк переставлять не стал, просто переделал код для миллисекунд:
Да, знаю, сталкивался на некоторых серваках и так же получал секунды и миллисекунды.
Спасибо, что дополнил!
 
  • Спасибо
Реакции: Metrix

ZHAG

Client
Регистрация
01.05.2014
Сообщения
228
Благодарностей
220
Баллы
43
Вот класная штука, только подходт для подсчета времени в одном снипете.
C#:
using System.Diagnostics;

var timer = Stopwatch.StartNew();
SomeCodeToTime();
timer.Stop();
project.SendInfoToLog(string.format("Выполнение метода заняло {0} мс", timer.ElapsedMilliseconds), true);
источник http://blog.vkuznetsov.ru/posts/2011/08/13/csharp-net-pyat-malenkih-chudes-kotorye-delayut-kod-luchshe-chast-1-iz-3#.WfNyQmi0OUm
 
  • Спасибо
Реакции: Respect и Dimionix

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Вот класная штука, только подходт для подсчета времени в одном снипете.
Вроде бы можно в project.Context засовывать объекты, тогда можно будет в одном кубике запустить - в другом остановить и получить разницу.
Если кто затестит - буду благодарен)
 
  • Спасибо
Реакции: Dimionix

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Вот класная штука, только подходт для подсчета времени в одном снипете.
Есть ещё зенкина реализация подобного - project.LastExecutedActionElapsedTime, возвращает время работы последнего обработанного действия в проекте, в миллисекундах.
Макрос {-Project.LastExecutedActionElapsedTime}
C#:
double lastExecutedTime = project.LastExecutedActionElapsedTime;
string time = lastExecutedTime.ToString() + " миллисек."; // время в формате {XX миллисек.}
//string time = (Math.Round(lastExecutedTime / 1000)).ToString() + " сек."; // время в формате {XX сек.}
//string time = DateTime.Parse(TimeSpan.FromMilliseconds(lastExecutedTime).ToString()).ToString("mm мин. ss сек."); // время в формате {XX мин. XX сек.}
project.SendInfoToLog("Время работы последнего кубика: " + time, true);
 
  • Спасибо
Реакции: metal, Wide и qwerty123

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Если кто затестит - буду благодарен)
Первый кубик (или первая строка первого кубика) проекта:
C#:
project.Context["timer"] = System.Diagnostics.Stopwatch.StartNew();
Последний кубик (или последние строки последнего кубика) проекта:
C#:
var timer = project.Context["timer"];
timer.Stop();
project.SendInfoToLog(string.Format("Время выполнения проекта: {0} мс", timer.ElapsedMilliseconds), true);
 
Регистрация
26.05.2020
Сообщения
514
Благодарностей
173
Баллы
43
Первый кубик (или первая строка первого кубика) проекта:
C#:
project.Context["timer"] = System.Diagnostics.Stopwatch.StartNew();
Последний кубик (или последние строки последнего кубика) проекта:
C#:
var timer = project.Context["timer"];
timer.Stop();
project.SendInfoToLog(string.Format("Время выполнения проекта: {0} мс", timer.ElapsedMilliseconds), true);
А как вывести в минутах и секундах?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 563
Благодарностей
9 177
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)