Tempo de medição resulta em valores de retorno de 0 ou 0,001

Estou tentando usarchrono::steady_clock para medir segundos fracionários decorridos entre um bloco de código no meu programa. Eu tenho esse bloco de código trabalhando no LiveWorkSpace (http://liveworkspace.org/code/YT1I$9):

#include <chrono>
#include <iostream>
#include <vector>

int main()
{
    auto start = std::chrono::steady_clock::now();
    for (unsigned long long int i = 0; i < 10000; ++i) {
       std::vector<int> v(i, 1);
    }
    auto end = std::chrono::steady_clock::now();

    auto difference = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();

    std::cout << "seconds since start: " << ((double)difference / 1000000);
}

Quando eu implementar a mesma ideia no meu programa da seguinte forma:

auto start = std::chrono::steady_clock::now();
// block of code to time
auto end = std::chrono::stead_clock::now();

auto difference = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count()

std::cout << "seconds since start: " << ((double) difference / 1000000);

O programa só imprimirá valores de0 e0.001. Eu duvido muito que o tempo de execução para o meu bloco de código seja sempre igual0 ou1000 microssegundos, então, o que está contribuindo para esse arredondamento e como posso eliminá-lo para que eu possa obter os valores fracionários apropriados?

Este é um programa do Windows.

questionAnswers(2)

yourAnswerToTheQuestion