为什么是C++;创建唯一ID时,运行速度比Java慢一点? 我在C++和java中编写了同样的算法,我注意到C++版本比我的Mac上的java慢了一点。我在JIT打开的情况下使用默认设置编译Java版本。以及C++版本与CMake的释放选项
为什么是C++;创建唯一ID时,运行速度比Java慢一点? <>我在C++和java中编写了同样的算法,我注意到C++版本比我的Mac上的java慢了一点。我在JIT打开的情况下使用默认设置编译Java版本。以及C++版本与CMake的释放选项。代码如下:为什么是C++;创建唯一ID时,运行速度比Java慢一点? 我在C++和java中编写了同样的算法,我注意到C++版本比我的Mac上的java慢了一点。我在JIT打开的情况下使用默认设置编译Java版本。以及C++版本与CMake的释放选项,java,c++,Java,C++,为什么是C++;创建唯一ID时,运行速度比Java慢一点? 我在C++和java中编写了同样的算法,我注意到C++版本比我的Mac上的java慢了一点。我在JIT打开的情况下使用默认设置编译Java版本。以及C++版本与CMake的释放选项。代码如下: #包括 #包括 //雪花 静态常量无符号整数随机数移位位=12; 静态常量unsigned int randomNumberMask=(1u Dostd::chrono::system\u clock::now()和system.
#包括
#包括
//雪花
静态常量无符号整数随机数移位位=12;
静态常量unsigned int randomNumberMask=(1u Dostd::chrono::system\u clock::now()
和system.currentTimeMillis()
是否具有相同的精度?请尝试删除所有按位操作,只需调用system_clock::now而不是system.currentTimeMillis。这可能是因为Java中的时钟查询速度更快。只是猜测一下。@Jacob在处理几秒差时,毫秒精度并不重要。另外,您使用的是原子整数v在一个不同于你增加它的陈述中的值。所以这不是你认为它在做的。你误解了我的评论。我的“p.s.”关于原子整数与速度无关,而是正确性。所有关于C++基准的问题都是无用的,除非提供了编译代码的具体编译器设置。编译器是什么?你给它提供了什么优化标志?你的构建类型是什么?(调试/发布-你说的,好)JVM会自动对所生成的字节码执行优化,但是除非指定具体的优化标志,否则C++编译器将不会执行很多优化。
5479
6289
6306
6267
6290
6284
6280
6285
6278
6406
7586
7499
7533
7637
7711
7638
7634
7607
7575
7538