У меня есть короткая программа для распечатки всех номеров Армстронга с 10 до 999 999.Почему программа C# работает медленнее без отладки
Когда я запускаю режим отладки, он заканчивается менее чем за 1 секунду.
Когда я запускаю без отладки, открываются два окна команд. Когда второй, наконец, закрывается, вывод отображается на первом (это занимает около 12 секунд). Однако, если я убью второе окно из диспетчера задач; полный вывод отображается в первом окне.
Кроме того, работа с прямыми файлами .exe приводит к тому же поведению, что и без отладки.
Дополнительно: Когда я запускаю файл с прямым exe, я получаю около 100 МБ оперативной памяти (что, насколько я знаю, я не должен быть для программы такой маленькой).
Вот мой код:
using System;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("ARMSTRONG NUMBERS FOUND FROM 10 THROUGH 999999\n");
int total_armstrong = 0;
for (int i = 10; i < 1000000; i++)
{
int temp = i;
int k;
int total = 0;
for (k = 0; temp != 0; k++) //runs only 6 times maximum gives me the exponent to use below
temp /= 10;
temp = i;
while (temp != 0) //runs only 6 times maximum
{
total += (int)Math.Pow(temp % 10, k); //calculates the value of each digit raised to the exponent calculated above
temp /= 10;
}
if (total == i)
{
Console.WriteLine(total);
total_armstrong++;
}
}
Console.WriteLine("\nTOTAL NUMBER OF ARMSTRONG NUMBERS FOUND WAS " + total_armstrong);
}
}
Изображение что он выглядит во время работы: Output появляется в левом окне после того, как правая закрывает
Ничто в коде не приведет к появлению двух окон команд. Как вы запускаете свою программу? Также дважды проверьте, что ваш тип проекта - это «Консольное приложение», а не «Оконное приложение». –
Открываются два окна команд, когда я либо делаю ctrl + f5 из VS 2013 (который должен запускать его без отладки). ИЛИ когда я открываю debug/release exe, который генерируется VS2013 –
Является ли это единственным проектом в вашем решении? – dotctor