为什么在VCC 2003中编译这么长时间?

为什么在VCC 2003中编译这么长时间?,第1张

概述为什么在VCC 2003中编译这么长时间?

我的团队需要“Sobol准随机数字发生器” – 一个以优质结果和运行速度而闻名的常见RNG。 我发现在networking上看起来像一个简单的C实现 。 在家里,我几乎可以用我的linux GCC编译器立即进行编译。

第二天,我在工作中尝试:如果我在deBUGging模式下在Visual Studio中编译大约需要1分钟。 如果我要在发布模式下编译它, 大约需要40分钟。

为什么?

我知道“释放”模式会触发一些编译器优化…但是这个小文件究竟要花多长时间才能优化呢? 这主要是评论和静态数据。 几乎没有什么值得优化的。

我的Visual C ++ Win32中有一个MessageBox,无法closures! 到底是怎么回事?

在本地DLL中embedded多个相同名称的资源(RC)文件

如何从IStream读取一个字符数组,并将其写入另一个IStream?

是否有可能哄std :: atomic <T>输出CMPXCHG16B

向后寻找时,libvlc_media_player_set_position失败

这些电脑都不是特别慢,在任何情况下我都知道在一系列windows电脑上编译时间是一致的。 我也听说Visual Studio的新版本有更快的编译时间,但是现在我们被困在Visual Studio.Net 2003中。在GCC(与Ubuntu 8.04捆绑在一起)上编译总是需要几微秒。

MFC是否被弃用?

错误C2327:不是types名称,静态或枚举器

Visual C#(Visual Studio)和Mono C#GUI之间的区别

如果您需要pipe理员权限,windows 7如何确定? (VC60)

仅在需要时加载DLL

说实话,我不太确定那些代码好不好。 它有一个讨厌的气味。 即,这个功能:

unsigned int i4_xor ( unsigned int i,unsigned int j ) //****************************************************************************80 // // Purpose: // // I4_XOR calculates the exclusive OR of two integers. // // ModifIEd: // // 16 February 2005 // // Author: // // John Burkardt // // Parameters: // // input,unsigned int I,J,two values whose exclusive OR is needed. // // Output,unsigned int I4_XOR,the exclusive OR of I and J. // { unsigned int i2; unsigned int j2; unsigned int k; unsigned int l; k = 0; l = 1; while ( i != 0 || j != 0 ) { i2 = i / 2; j2 = j / 2; if ( ( ( i == 2 * i2 ) && ( j != 2 * j2 ) ) || ( ( i != 2 * i2 ) && ( j == 2 * j2 ) ) ) { k = k + l; } i = i2; j = j2; l = 2 * l; } return k; }

还有一个i8_xor。 还有一些abs功能。

我认为DailyWTF的帖子是按顺序的。

编辑:对于非C程序员,这是一个快速指南,以上是做什么:

function xor i:unsigned,j:unsigned answer = 0 bit_position = 1 while i <> 0 or j <> 0 if least significant bit of i <> least significant bit of j answer = answer + bit_position end if bit_position = bit_position * 2 i = i / 2 j = j / 2 end while return answer end function

要确定是否设置或清除最低有效位,使用以下内容:

bit set if i <> (i / 2) * 2 bit clear if i == (i / 2) * 2

什么使得代码额外的WTFy是C定义了一个XOR运算符,即'^'。 所以,而不是:

result = i4_xor (a,b);

你可以有:

result = a ^ b; // no function call at all!

原来的程序员真的应该知道异或运算符。 但是,即使他们没有(并且被认为是另一个混​​淆的C符号),他们实现XOR函数的能力却令人难以置信。

我正在使用VC ++ 2003,它在调试/发布模式下即时编译。

编辑:

你的系统上安装了最新的服务包吗?

我建议你下载一个Visual Studio 2008的试用版,并尝试在那里编译,只是为了看看问题是不是固有的。 此外,如果它发生在当前版本上,您将能够报告问题,并且Microsoft可能会修复它。

另一方面,微软将不会修复VS2003中的任何错误。

总结

以上是内存溢出为你收集整理的为什么在VCC 2003中编译这么长时间?全部内容,希望文章能够帮你解决为什么在VCC 2003中编译这么长时间?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1155355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存