【发布时间】:2015-11-12 04:25:50
【问题描述】:
我的应用服务器代码中有一行代码,它使用steady_clock 获取时间戳值,如下所示:
uint64_t now = duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count();
现在我们有两个系统 machineA 运行 Ubuntu 12 (gcc 4.6.3 compiler) 和 machineB 运行 Ubuntu 14 (gcc 4.8.2 compiler)。
现在我们使用 another Ubuntu 12 VM (which has 4.7.3 compiler) 上的 make 编译我们的应用服务器代码,然后将生成的 tar 文件复制到 machineA 并启动我们的应用服务器。启动后,上面这行代码在machineA中打印出这样的值:
1439944652967
现在我们还使用 another Ubuntu 14 VM (which has 4.8.2 compiler) 上的 make 编译相同的应用服务器代码,然后将生成的 tar 文件复制到 machineB 并启动我们的应用服务器。启动后,上面这行代码在machineB中打印出这样的值:
10011360
你看出区别了吗?我很困惑为什么会有这种区别,我无法理解?所有的代码和一切都是一样的。有没有人对此有任何解释,我该如何解决?
如果需要,我可以尝试添加一些调试代码,看看有什么问题来解决这个问题。
【问题讨论】: