Консольное приложение .NET 8 работает медленнее после публикацииC#

Место общения программистов C#
Ответить
Anonymous
 Консольное приложение .NET 8 работает медленнее после публикации

Сообщение Anonymous »

Я не понимаю, почему мое приложение работает медленнее, когда я запускаю его, выполняя файл .exe из папки публикации, по сравнению с запуском его из отладчика Visual Studio (F5).
Я использую .NET 8.0, и это мой код program.cs:

Код: Выделить всё

using System.Data;
using System.Diagnostics;

Console.WriteLine("Generating sample DataTable...");
var stopwatch = Stopwatch.StartNew();

DataTable table = GenerateLargeSampleTable(1_000_000, 100);

stopwatch.Stop();
Console.WriteLine($"DataTable generated in {stopwatch.Elapsed.TotalSeconds:F2} seconds.");
Console.ReadLine();

static DataTable GenerateLargeSampleTable(int rowCount, int columnCount)
{
var table = new DataTable("SampleData");

var rand = new Random();

for (int i = 0; i < columnCount; i++)
{
if (i % 3 == 0)
table.Columns.Add($"StringCol_{i}", typeof(string));
else if (i % 3 == 1)
table.Columns.Add($"NumberCol_{i}", typeof(double));
else
table.Columns.Add($"DateCol_{i}", typeof(DateTime));
}

table.BeginLoadData();

for (int r = 0; r < rowCount; r++)
{
var row = table.NewRow();

for (int c = 0; c < columnCount; c++)
{
switch (table.Columns[c].DataType.Name)
{
case nameof(String):
row[c] = $"Text_{r}_{c}";
break;

case nameof(Double):
row[c] = Math.Round(rand.NextDouble() * 10000, 2);
break;

case nameof(DateTime):
row[c] = DateTime.Now.AddDays(-rand.Next(0, 3650));
break;
}
}

table.Rows.Add(row);
}

table.EndLoadData();

return table;
}
Когда я запускаю его из Visual Studio, процесс занимает около 15 секунд:
Изображение

Но он занимает около 40 секунд при запуске из файла .exe после публикация:
Изображение

Это мой профиль публикации:
Изображение

Я думал, что запуск опубликованной версии должен быть быстрее, а не медленнее, поскольку не работают инструменты отладки. Может кто-нибудь сказать мне, что происходит?
Примечания: мое устройство работает под управлением Windows Home с процессором Intel Core i9 12-го поколения и 32 ГБ оперативной памяти. Я использую Visual Studio 2022.

Подробнее здесь: https://stackoverflow.com/questions/797 ... er-publish
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»