2017-02-01 6 views
1

Мне нужна ваша помощь.Запуск приложения медленный

Я сделал консольное приложение с C# net.4.5 анса AWSSDK v3.3, чтобы настроить мой вход в инстанс при запуске.

Мой Probleme есть при первом запуске моего экземпляра (Windows Server 2008R2) приложение начиная КРАЙНЕ медленно и работает КРАЙНЕ медленно.

Действительно, я использую «планировщик заданий», чтобы запустить приложение во время загрузки.

Когда я перезагружаю экземпляр или перезапускаю (или даже новый запуск) приложение, работающая в порядке.

  • Когда я запустить приложение вручную: задание (все то, что приложение есть TODO) завершено менее чем за 40 secondes.
  • Когда я запускаю приложение во время загрузки с планировщиком задач: задача занимает более 5 минут! завершить. (Какой холодный старт!)

  • Я отложила начало моего приложения (с/timout .bat) (90secondes)>приложение по-прежнему экстремально медленно ...

  • У меня есть задержка начала моего приложения (с/timout .bat) (300 секунд), чтобы быть абсолютно уверенным в том, что все .net-фреймы полностью загружен>everithing work fine!

Итак, теперь я должен бежать сотни спот-экземпляров с этим приложением запуска .... если я потерять 5 минут при запуске на каждом отдельном случае, я буду потерять looot денег!

Что вы думаете о моем случае? вы думаете, что я прав о предварительной загрузке каркаса .net? можно ли это быстрее загружать?

Мне известно о ngen.exe, я попробовал его на .exe и dlls. но проблема все та же. Я думаю, что проблема более глобальна, не специфична для моего приложения.

Для справки:

в моем приложении С SDK я использую:

  • EC2InstanceMetadata
  • AmazonS3Client
  • GetObjectRequest
  • GetObjectResponse

Полномочия являются магазин d ine app.config

Все эти классы называются один раз. (без повторной петли).Я имею в виду, если нет интернет-приложения, это приведет к сбою приложения или возврату Exception. Приложение выполнено в VS 2015, а dll AWSSDK находятся в корневой папке .exe

Спасибо, что обратились за помощью!

---------------------------- править ----------------- -

Простой тест с простой чистой консолью (шаблон Visual Studio 2015) (запись 100 txt-файлов на C :). Я запустил программу при запуске с планировщиком задач, и он достиг 5 минут, чтобы выполнить эту огромную задачу ... так что кажется, что проблема не в моем коде.

Редактировать: Я также попробовал простое тестовое приложение с «.net framework 3.5 client». то же самое ... приложение висит в течение 4 минут, а затем выполняет эту работу. (Всего 6 минут).

@ MaLiN2223 Возможно, создание сервиса, а не консольного приложения - это решение ... я должен попробовать. Что мое приложение запуска сделать:

  • DONWLOAD файлы на Amazon S3

  • получить экземпляра Информации AWS-SDK

  • Запуск или остановка службы

  • Изменение значения в .ini

  • Сетевой сетевой адаптер

  • чтения значение, XML

  • запуска приложений

для вашей информации, тест кода:

using System; 
using System.IO; 
using System.Diagnostics; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      for (int i = 0; i < 100; i++) 
      { 
       Console.Write("Writting file nb: " + i.ToString()); 
       File.Create(@"C:\test_" + i.ToString() + ".txt"); 

      } 
      log(); 
      Console.ReadKey(); 
     } 
     static void log() 
     { 
      using (StreamWriter writer = new StreamWriter("C:\\test_log.txt")) 
      { 
       var uptime02 = new PerformanceCounter("System", "System Up Time"); 
       uptime02.NextValue();  //Call this an extra time before reading its value 
       var timeTowrite = TimeSpan.FromSeconds(uptime02.NextValue()); 
       writer.WriteLine(timeTowrite); 
      } 
     } 
    } 
} 
+0

Это может быть ** крайне ** трудно отладить это для нас без какого-либо кода. Вы применили некоторые политики к этому серверу Windows? Потому что: [Это может быть так) (https://support.microsoft.com/en-us/help/969972/you-encounter-a-slow-application-startup-or-a-slow-logon-on- а-компьютер-что-это-беговые окна-сервер-2008-или-Windows-Vista, после того, как вы-применять программное обеспечение-рестрикционная политика). Я также рекомендую вам прочитать [ЭТО] (https://blogs.technet.microsoft.com/markrussinovich/2010/12/06/the-case-of-the-slow-project-file-opens/), это ** может ** помочь выявить проблему. – MaLiN2223

+0

(Второй комментарий, потому что у меня нет персонажей) Вы также можете найти некоторые профилирующие приложения, установленные там, где они, как известно, вызывают замедление запуска. – MaLiN2223

+0

Вы поете свои собрания? –

ответ

1

... Хорошо, я нашел проблему и ответ!

Проблема заключается в том, что «планировщик задач» запускает приложения с приоритетом, установленным по умолчанию «ниже в нормальный» .... Очевидно, что мое приложение работает медленнее, потому что при запуске запускаются многие процессы с высоким приоритетом ...

Невозможно изменить приоритет непосредственно в расписании задач. Это нужно сделать, экспортировав задачу в XML, изменив ее и повторно импортируя.

Original post here!

Спасибо Вам.

Смежные вопросы