Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无序集Visual Studio C++;慢 所以我认为有一个坏版本的C++,其中无序的集合非常慢。这段代码花了一分钟执行: int main() { unordered_set<int> blah; for (int i = 0; i < 1000000; ++i) { blah.insert(i); } cout << "done 2" << endl; return 0; } intmain(){ 杂乱无章的胡说八道; 对于(int i=0;iConfiguration properties->C/C++->Optimization->Maximize Speed(/O2)来启用优化。我的已设置为发行版,而不是调试版_C++_Visual Studio 2012 - Fatal编程技术网 C/C++->Optimization->Maximize Speed(/O2)来启用优化。我的已设置为发行版,而不是调试版,c++,visual-studio-2012,C++,Visual Studio 2012" /> C/C++->Optimization->Maximize Speed(/O2)来启用优化。我的已设置为发行版,而不是调试版,c++,visual-studio-2012,C++,Visual Studio 2012" />

无序集Visual Studio C++;慢 所以我认为有一个坏版本的C++,其中无序的集合非常慢。这段代码花了一分钟执行: int main() { unordered_set<int> blah; for (int i = 0; i < 1000000; ++i) { blah.insert(i); } cout << "done 2" << endl; return 0; } intmain(){ 杂乱无章的胡说八道; 对于(int i=0;iConfiguration properties->C/C++->Optimization->Maximize Speed(/O2)来启用优化。我的已设置为发行版,而不是调试版

无序集Visual Studio C++;慢 所以我认为有一个坏版本的C++,其中无序的集合非常慢。这段代码花了一分钟执行: int main() { unordered_set<int> blah; for (int i = 0; i < 1000000; ++i) { blah.insert(i); } cout << "done 2" << endl; return 0; } intmain(){ 杂乱无章的胡说八道; 对于(int i=0;iConfiguration properties->C/C++->Optimization->Maximize Speed(/O2)来启用优化。我的已设置为发行版,而不是调试版,c++,visual-studio-2012,C++,Visual Studio 2012,这使得原始代码在大约一秒钟内运行,10000000变体在大约8秒钟内运行(因此仍然比调试模式下的C#慢约4倍).EDIT:似乎C#的速度在对这个特定程序进行调试或在发布模式下构建时,无论是否进行调试,都不会有太大的变化。关闭调试,然后打开优化。不进行调试,可以将其缩短到20秒……这很好。如何打开优化?此外,打开调试后C#的速度仍然是原来的200倍。等等(1000000)我也只是想弄清楚为什么C++的数量级比C级差。有很多方法让它稍微好一点,但是我希望有一个明确的答案来解释为什么无序的集合非常慢。

这使得原始代码在大约一秒钟内运行,10000000变体在大约8秒钟内运行(因此仍然比调试模式下的C#慢约4倍).EDIT:似乎C#的速度在对这个特定程序进行调试或在发布模式下构建时,无论是否进行调试,都不会有太大的变化。

关闭调试,然后打开优化。不进行调试,可以将其缩短到20秒……这很好。如何打开优化?此外,打开调试后C#的速度仍然是原来的200倍。等等(1000000)我也只是想弄清楚为什么C++的数量级比C级差。有很多方法让它稍微好一点,但是我希望有一个明确的答案来解释为什么无序的集合非常慢。即使把桶的数量设置为1000000,它仍然非常缓慢。在发布模式下构建。同时启用优化
static void Main(string[] args)
{
    HashSet<int> set = new HashSet<int>();
    for (int i = 0; i < 10000000; ++i)
    {
        set.Add(i);
    }
}