Блог пользователя Neodym

Автор Neodym, 11 лет назад, По-русски

Подскажите пожалуйста, как подключать таймеры в языке С++(Чтобы можно было определять, сколько времени прошло с начала работы программы)

UPD: Понял и осознал. Спасибо всем, кто ответил!

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

C++ reference Подробности нужны?

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Но таким способом можно определить только целое количество секунд с 1970 года. А как определить количество миллисекунд, прошедших с начала работы программы?

»
11 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
clock_t start = clock();

(clock() - start) / 1.0 / CLOCKS_PER_SEC;
  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Почему бы вместо извратов просто не привести разницу к double?

    static_cast<double>(clock() - start) / CLOCKS_PER_SEC
    
    (double)(clock() - start) / CLOCKS_PER_SEC
    
    double(clock() - start) / CLOCKS_PER_SEC
    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится

      потому что делить на 1.0 удобнее, в свою очередь (потому что писать меньше символов и потому что обычно я вспоминаю что нужен каст только когда уже дописал разницу и не хочется возвращаться к началу строки:-) )

      Почти уверен, что генерируется абсолютно одинаковый код.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +8 Проголосовать: не нравится

        Почти уверен, что генерируется абсолютно одинаковый код.

        Any proof? It's not significant here but question is interesting itself.

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Surely, I didn't check it when post the original message. Now I just tested it in my own laptop and binary files generate by g++ file

          #include <ctime>
          #include <iostream>
          using namespace std;
          
          int main(){
          	clock_t start = clock();
          	cout << double(clock() - start) / CLOCKS_PER_SEC << endl;
          //or 
          	cout << (clock() - start) / 1.0 / CLOCKS_PER_SEC << endl;
          	return 0;
          }
          

          are same. (diff sees no difference)

          Same for g++ -02 file