Я использую .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;
}

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

Это мой профиль публикации:

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