可能重复:
.NET Debug/Release差异中的调试与发布
构建项目时Visual Studio中的Release和Debug模式有什么区别?
继续上一个问题,是否有一个全面的文档列出了C#应用程序中调试和发布模式之间的所有可用差异,特别是在Web应用程序中?
有什么区别?
这个简单的程序从15个线程开始 - 根据计数.有时在它的一生中它会掉落一些,但它们会回来.
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine(Process.GetCurrentProcess().Threads.Count);
Thread.Sleep(500);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期待的过程,只是有一个线程(和我的直觉是由备份这个)
没有调试器,该进程只有(!)4个线程.当然任何CLR的东西都会隐藏在我的进程中?
这有多重要?这个过程真的有那么多线程吗?为什么?
向公众分发Debugvs Release构建是否存在任何安全性或性能问题?
大多数时候,我只是将.exe文件打包在Debug文件夹中(以及所需的依赖项)并将其提供给用户.
是否有理由更喜欢分发一个而不是另一个?
可能重复:
调试/版本差异
调试版本和发布版本之间的性能差异
在调试模式VS发布模式下编译和运行asp.net/c#项目有何不同?
我在我的应用程序中收到此错误.我有一个我从javascript调用的web方法.
我在visual studio检查器中遇到的错误:

方法签名:

我发布到方法的JSON:

这对我来说是一个非常模糊的信息.接下来我该怎么办?
可能重复:
调试/发布差异
我想知道调试构建和发布版本意味着什么.两者之间有什么区别.
我应该使用哪一个(我的意思是每个人的合适条件).实际上我正在使用的构建知道如果在visual studio中制作简单的c ++项目.[如果我不更改任何项目设置]
我问这个是因为我试图使用wxwidges 2.9.4制作gui,并且他们给出了添加所需.lib的不同情况.这些是
release ANSI static
debug ANSI static
release Unicode static
debug Unicode static
请详细解答.
我一直在使用Visual Studio在C++中读取文件来测试性能,我得到了一些我真的不明白的结果.
我的代码如下:
std::vector<unsigned char> Method1(std::string filePath)
{
std::basic_ifstream<unsigned char> file(filePath, std::ios::binary);
file.seekg(0, std::ios::end);
std::streamsize size = file.tellg();
file.seekg(0, std::ios::beg);
std::vector<unsigned char> buffer(size);
file.read(buffer.data(), size);
return buffer;
}
Run Code Online (Sandbox Code Playgroud)
(我实际上使用了uint8_t而不是unsigned char,但因为它只是一个typedef,我在这里用后者来更好地演示问题)
我给它一个3mb文件来读取并使用std :: chrono函数来计时它们是我的结果:
Debug Configuration - 10.2秒
Release Configuration - 98 ms
调试和发布之间的巨大差异已经引起关注.
所以我尝试用"char"替换所有对"unsigned char"的引用(std :: basic_ifstream <char>而不是std :: basic_ifstream <unsigned char>等)并重新运行程序.
我发现它在调试和发布中都运行不到3ms.
稍微摆弄一下之后,我意识到basic_ifstream <unsigned char>就是问题所在.如果我按原样保留其他所有内容并将文件更改为basic_ifstream <char>(同时使用reinterpret_cast <char*>(buffer.data()),那么它也可以正常工作.
我在两台独立的机器上验证了这一点,一台运行Visual Studio 2015的最新版本,一台运行Visual Studio 15的预览版3.
是否存在某种微妙之处,使得basic_ifstream在使用无符号字符时表现如此糟糕?
我目前正在开发一个 Android 应用程序,并且对 VS 进行了一些修改。
我想知道,这两种模式之间的真正区别是什么?我做了一些研究,但并没有完全了解每种模式的真正差异和优点,以及何时使用特定模式。
在我的研究过程中,我遇到了问题1、2和3,谈论了两者之间的差异。
- 为什么调试模式比发布模式运行慢?
- 当向 Google Play 发布应用程序时,我应该使用哪种模式?为什么?
- 我可以创建自己的模式吗?
我的应用程序似乎在调试模式下构建得很好,但在发布模式下我收到很多关于“未找到调试符号文件”的警告。
- 那些调试符号是什么?
- obj/Debug 或 obj/Release 中的“81”文件夹是什么?
- 我还注意到,有时,当从调试切换到发布时,找不到某些 Resource.Id,我需要为布局重新创建 axml 文件并清理 sln。我该如何预防?
据我了解,调试模式使用一些发布模式不需要的文件才能运行,我假设丢失的文件是那些“调试符号”?也许是 Xamarin 或者 VS 的问题?这些是我收到的警告:
Warning Directory obj\Release\81\android/assets contains Xamarin.Android.Support.v7.AppCompat.dll but no debug symbols file was found. 0
Warning Directory obj\Release\81\android/assets contains Java.Interop.dll but no debug symbols file was found. 0
Warning Directory obj\Release\81\android/assets contains Xamarin.Android.Arch.Core.Common.dll but no debug symbols file was found. 0
Warning Directory obj\Release\81\android/assets contains Xamarin.Android.Arch.Lifecycle.Common.dll but no …Run Code Online (Sandbox Code Playgroud)