我需要你的帮助。
我使用 C#net.4.5 和 AWSSDK V3.3 制作了一个控制台应用程序来配置我的在启动时启动。
我的问题是,在我的实例(Windows server 2008r2)的第一次启动时,应用程序开始非常缓慢且正在运行非常慢。
确实,我使用"任务调度程序"在启动时启动应用程序。
当我重新启动实例或重新启动(甚至重启)应用程序时,工作正常。
当我在启动时使用任务计划程序启动应用程序时:执行任务 超过5 分钟!去完成。 (多么冷酷的开始!)
我推迟了应用的启动(使用/ timout .bat) (90secondes)> app仍然极其缓慢......
所以,现在我必须使用这个启动应用程序运行数百个现场实例....如果我在启动时在每个实例上放松5分钟,我将放弃一大笔钱!
您如何看待我的案子?你觉得我对.net framworks预加载是对的吗?是否可以加快加载速度?
我知道ngen.exe,我在.exe和dll上试过了。但问题仍然存在。我认为问题更具全球性,而不是我的应用程序特有的。
供您参考:
在我的应用程序中从我使用的SDK:
凭据存储在app.config
中所有这一课都被召唤一次。 (如果出现故障,则不进行重试循环)。我的意思是,如果没有互联网应用程序崩溃或返回异常。 该应用程序在VS 2015中制作,AWSSDK dll位于.exe
的根文件夹中谢谢你的帮助!
----------------------------编辑------------------
我用一个简单的干净控制台(Visual Studio 2015模板)代码做了一个简单的测试(在C :)上写了100个txt文件。 我在启动时使用任务调度程序运行程序,它需要5分钟来完成这个巨大的任务....所以似乎问题不是我的代码。
编辑:我还尝试了使用" .net framework 3.5 client"的简单测试应用程序。同样的事情......应用程序挂了4分钟,然后完成工作。 (总共6分钟)。
@ MaLiN2223可能正在提供服务而不是控制台应用程序是一个解决方案...我应该尝试。 我的启动应用程序做了什么:
在亚马逊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 :(得分:1)
好的......,我发现了问题和答案!
问题在于&#34;任务调度程序&#34;启动应用程序,默认设置优先级为&#34;低于正常值&#34; .... 显然,我的应用程序速度较慢,因为许多高优先级进程在启动时启动...
无法直接在任务模式中更改优先级。必须通过以XML格式导出任务,修改它并重新导入它来完成它。
谢谢你。