草庐IT

c++ - C++ 中是否存在比 long long int 更大的类型?

C++中有比longlongint更大的类型吗?我的编译器是g++。 最佳答案 有一个gccextensionfor128bitintegers. 关于c++-C++中是否存在比longlongint更大的类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5381882/

c++ - C++ 中是否存在比 long long int 更大的类型?

C++中有比longlongint更大的类型吗?我的编译器是g++。 最佳答案 有一个gccextensionfor128bitintegers. 关于c++-C++中是否存在比longlongint更大的类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5381882/

c++ - 为什么 unique_ptr 实例化编译为比原始指针更大的二进制文件?

我一直认为std::unique_ptr与使用原始指针相比没有开销。但是,编译如下代码#includevoidraw_pointer(){int*p=newint[100];delete[]p;}voidsmart_pointer(){autop=std::make_unique(100);}使用g++-std=c++14-O3生成以下程序集:raw_pointer():subrsp,8movedi,400calloperatornew[](unsignedlong)addrsp,8movrdi,raxjmpoperatordelete[](void*)smart_pointer():

c++ - 为什么 unique_ptr 实例化编译为比原始指针更大的二进制文件?

我一直认为std::unique_ptr与使用原始指针相比没有开销。但是,编译如下代码#includevoidraw_pointer(){int*p=newint[100];delete[]p;}voidsmart_pointer(){autop=std::make_unique(100);}使用g++-std=c++14-O3生成以下程序集:raw_pointer():subrsp,8movedi,400calloperatornew[](unsignedlong)addrsp,8movrdi,raxjmpoperatordelete[](void*)smart_pointer():

c++ - 为什么这个包含 rand() 的 C++11 代码多线程比单线程慢?

我正在尝试使用新的C++11线程,但我的简单测试具有糟糕的多核性能。作为一个简单的例子,这个程序将一些平方随机数相加。#include#include#include#include#include#includedoubleadd_single(intN){doublesum=0;for(inti=0;i(t2-t1).count();std::coutth;intnr_threads=3;doublepartual_results[]={0,0,0};t1=std::chrono::high_resolution_clock::now();for(inti=0;i(t2-t1).c

c++ - 为什么这个包含 rand() 的 C++11 代码多线程比单线程慢?

我正在尝试使用新的C++11线程,但我的简单测试具有糟糕的多核性能。作为一个简单的例子,这个程序将一些平方随机数相加。#include#include#include#include#include#includedoubleadd_single(intN){doublesum=0;for(inti=0;i(t2-t1).count();std::coutth;intnr_threads=3;doublepartual_results[]={0,0,0};t1=std::chrono::high_resolution_clock::now();for(inti=0;i(t2-t1).c

c++ - 使用 Boost.Lockfree 队列比使用互斥锁慢

直到现在我还在我的项目中使用std::queue。我测量了此队列上的特定操作所需的平均时间。时间是在2台机器上测量的:我的本地Ubuntu虚拟机和远程服务器。使用std::queue,两台机器上的平均值几乎相同:约750微秒。然后我将std::queue“升级”为boost::lockfree::spsc_queue,这样我就可以摆脱保护队列的互斥锁。在我的本地VM上,我可以看到巨大的性能boost,现在平均为200微秒。然而,在远程机器上,平均时间达到了800微秒,这比以前慢了。首先我认为这可能是因为远程机器可能不支持无锁实现:来自Boost.Lockfreepage:Notallh

c++ - 使用 Boost.Lockfree 队列比使用互斥锁慢

直到现在我还在我的项目中使用std::queue。我测量了此队列上的特定操作所需的平均时间。时间是在2台机器上测量的:我的本地Ubuntu虚拟机和远程服务器。使用std::queue,两台机器上的平均值几乎相同:约750微秒。然后我将std::queue“升级”为boost::lockfree::spsc_queue,这样我就可以摆脱保护队列的互斥锁。在我的本地VM上,我可以看到巨大的性能boost,现在平均为200微秒。然而,在远程机器上,平均时间达到了800微秒,这比以前慢了。首先我认为这可能是因为远程机器可能不支持无锁实现:来自Boost.Lockfreepage:Notallh

c++ - 编译时如何(以指数方式)比运行时快?

以下代码通过指数缓慢算法计算斐波那契数:#include#include#defineDEBUG(var){std::coutlonglong{returnn我在运行时计算第45个斐波那契数,在编译时计算第91个。有趣的事实是,GCC4.9编译代码并在几分之一秒内计算出fib91,但输出fib(45)需要一段时间。我的问题:如果GCC足够聪明,可以优化fib(91)计算并且不采用指数级缓慢的路径,那么是什么阻止它为fib(45)?以上是否意味着GCC会生成两个编译版本的fib函数,其中一个速度快,另一个速度慢?问题是不编译器如何优化fib(91)计算(是的!它确实使用了一种内存),但如

c++ - 编译时如何(以指数方式)比运行时快?

以下代码通过指数缓慢算法计算斐波那契数:#include#include#defineDEBUG(var){std::coutlonglong{returnn我在运行时计算第45个斐波那契数,在编译时计算第91个。有趣的事实是,GCC4.9编译代码并在几分之一秒内计算出fib91,但输出fib(45)需要一段时间。我的问题:如果GCC足够聪明,可以优化fib(91)计算并且不采用指数级缓慢的路径,那么是什么阻止它为fib(45)?以上是否意味着GCC会生成两个编译版本的fib函数,其中一个速度快,另一个速度慢?问题是不编译器如何优化fib(91)计算(是的!它确实使用了一种内存),但如