【.netcore】内存泄露的问题
2.1的core项目,部署上去之后遇到两个问题
1.进程内存一直缓步增加,并且不释放。
读取配置文件采用了实时读取的方法,配置文件资源无法释放,导致内存增加。
解决方案:依赖注入,或者静态化存储。
静态化方法如下:
private static IConfiguration _configuration;protected static void InitConfig() { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); _configuration = builder.Build(); }
2.线程会狂飙
问题描述:使用了httpclient导致,.netcore中只有异步的gei和post,接口都是采用的同步架构,同步调用异步并发的情况下会导致线程死锁。
解决方案:使用IHttpClientFactory管理httpclient,同时改用异步架构。