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

Sober3r

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

задача такая чтоб можно было засеч время выполнения шаблона в секундах .
т.е. в начале и в конце выполнения шаба а потом все вычесть .
или может есть другие варианты как это сделать ?)
спасибо за подсказку.)
 
С unixtime удобнее работать. То что Вы хотите, Вам постоянно надо будет конвертировать время. Лишние телодвижения.
 
Удобнее с TickCount (переменная окружения {-Environment.TickCount-})
 
  • Спасибо
Реакции: one
upload_2017-10-25_16-7-33.png
 
Работать из расчета что 1000мс = 1с
 
а ка получить в секундах?
C#:
Развернуть Свернуть Копировать
return DateTimeOffset.Now.ToUnixTimeMilliseconds(); // текущая дата в UnixTime, в миллисек.
C#:
Развернуть Свернуть Копировать
return DateTimeOffset.Now.ToUnixTimeSeconds(); // текущая дата в UnixTime, в сек.
 
C#:
Развернуть Свернуть Копировать
return DateTimeOffset.Now.ToUnixTimeMilliseconds(); // текущая дата в UnixTime, в миллисек.
C#:
Развернуть Свернуть Копировать
return DateTimeOffset.Now.ToUnixTimeSeconds(); // текущая дата в UnixTime, в сек.
ща будет тупой вопрос ....
что не так ..?(((
upload_2017-10-25_16-30-1.png
 
  • Спасибо
Реакции: СТЕПАН
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
Кстати, недавно столкнулся с тем, что данный вариант не работал у клиента, дело было в старом фреймворке, покопался в интернете и понял, что ниже версии 4.6 не будет работатать. Фреймворк переставлять не стал, просто переделал код для миллисекунд:
Да, знаю, сталкивался на некоторых серваках и так же получал секунды и миллисекунды.
Спасибо, что дополнил!
 
  • Спасибо
Реакции: Metrix
Вот класная штука, только подходт для подсчета времени в одном снипете.
C#:
Развернуть Свернуть Копировать
using System.Diagnostics;

var timer = Stopwatch.StartNew();
SomeCodeToTime();
timer.Stop();
project.SendInfoToLog(string.format("Выполнение метода заняло {0} мс", timer.ElapsedMilliseconds), true);

источник http://blog.vkuznetsov.ru/posts/201...delayut-kod-luchshe-chast-1-iz-3#.WfNyQmi0OUm
 
  • Спасибо
Реакции: Respect и Dimionix
Вот класная штука, только подходт для подсчета времени в одном снипете.
Вроде бы можно в project.Context засовывать объекты, тогда можно будет в одном кубике запустить - в другом остановить и получить разницу.
Если кто затестит - буду благодарен)
 
  • Спасибо
Реакции: Dimionix
Вот класная штука, только подходт для подсчета времени в одном снипете.
Есть ещё зенкина реализация подобного - 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
Если кто затестит - буду благодарен)
Первый кубик (или первая строка первого кубика) проекта:
C#:
Развернуть Свернуть Копировать
project.Context["timer"] = System.Diagnostics.Stopwatch.StartNew();
Последний кубик (или последние строки последнего кубика) проекта:
C#:
Развернуть Свернуть Копировать
var timer = project.Context["timer"];
timer.Stop();
project.SendInfoToLog(string.Format("Время выполнения проекта: {0} мс", timer.ElapsedMilliseconds), true);
 
Первый кубик (или первая строка первого кубика) проекта:
C#:
Развернуть Свернуть Копировать
project.Context["timer"] = System.Diagnostics.Stopwatch.StartNew();
Последний кубик (или последние строки последнего кубика) проекта:
C#:
Развернуть Свернуть Копировать
var timer = project.Context["timer"];
timer.Stop();
project.SendInfoToLog(string.Format("Время выполнения проекта: {0} мс", timer.ElapsedMilliseconds), true);
А как вывести в минутах и секундах?
 

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