Тем не менее, вы также должны прочитать ответ Elias Mårtenson в отношении для множественного использования Android для «нуля» . Существует проблема с интерпретацией определенных значений, таких как «ноль».
Если Вы регистрируете исключения, то развертывание файлов PDB гарантирует, чтобы исключения включали номера строки (так , Steven A. Lowe сообщил мне о многих случаях;))
Я всегда полагал, что .pdb файлы только использовались отладчиком. Если время выполнения всегда проверяет на них для получения информации об отладке, которая должна означать более медленное выполнение при выдаче исключения, потому что это должно считать .pdb, правильно?
, Таким образом, я сделал быстрый тест:
using System;
using System.Text;
namespace PdbSpeedTest
{
class Program
{
static void Main(string[] args)
{
DateTime start = DateTime.Now;
try
{
Program p = new Program();
p.Looper(0);
}
catch (NotImplementedException e)
{
Console.WriteLine(e.StackTrace);
}
TimeSpan span = DateTime.Now - start;
Console.WriteLine(span.TotalMilliseconds.ToString());
}
internal void Looper(int x)
{
try
{
if (x < 100)
Looper(x + 1);
else
throw new NotImplementedException("blah!");
}
catch (NotImplementedException e)
{
throw new NotImplementedException("blah!", e);
}
}
}
}
Это просто рекурсивно вызывает 100 уровней глубоко и выдает исключение. Теперь для результатов во время выполнения:
Выполнение как отладка сборка с [1 114] .pdb в той же папке:
C:\Work\PdbSpeedTest\bin\Debug>PdbSpeedTest.exe
at PdbSpeedTest.Program.Looper(Int32 x) in C:\Work\PdbSpeedTest\Program.cs:line 37
at PdbSpeedTest.Program.Main(String[] args) in C:\Work\PdbSpeedTest\Program.cs:line 16
31.2504
Выполнение как отладка сборка без [1 116] .pdb:
C:\Work\PdbSpeedTest\bin\Debug>PdbSpeedTest.exe
at PdbSpeedTest.Program.Looper(Int32 x)
at PdbSpeedTest.Program.Main(String[] args)
15.6252
Выполнение как сборка выпуска с [1 118] .pdb:
C:\Work\PdbSpeedTest\bin\Release>PdbSpeedTest.exe
at PdbSpeedTest.Program.Looper(Int32 x) in C:\Work\PdbSpeedTest\Program.cs:line 37
at PdbSpeedTest.Program.Main(String[] args) in C:\Work\PdbSpeedTest\Program.cs:line 16
31.2504
Выполнение как сборка выпуска без [1 120] .pdb:
C:\Work\PdbSpeedTest\bin\Release>PdbSpeedTest.exe
at PdbSpeedTest.Program.Looper(Int32 x)
at PdbSpeedTest.Program.Main(String[] args)
15.6252
Они были выполнены от регулярной старой командной строки, не в Visual Studio. Таким образом, .pdb определенно добавляет информацию об отслеживании стека и замедляет обработку исключений. Очень интересный!
развертывание .pdb файлы полезно, если Вы хотите удаленно отладить свое приложение.
существует статья MSDN здесь объяснение процесса