国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - 使用 .NET Core 中的 EventCounters 衡量性能

使用 .NET Core 中的 EventCounters 衡量性能

2022-01-07 22:12UP技術(shù)控conan5566 ASP.NET教程

對(duì)于每隔幾毫秒發(fā)生的事件,最好使每個(gè)事件的開(kāi)銷較低(小于一毫秒)。 否則,對(duì)性能的影響將很大。 記錄事件意味著你將向磁盤(pán)寫(xiě)入內(nèi)容。 如果磁盤(pán)不夠快,你將丟失事件。 你需要一個(gè)解決方案,而不是記錄事件本身。

使用 .NET Core 中的 EventCounters 衡量性能

背景

對(duì)于每隔幾毫秒發(fā)生的事件,最好使每個(gè)事件的開(kāi)銷較低(小于一毫秒)。 否則,對(duì)性能的影響將很大。 記錄事件意味著你將向磁盤(pán)寫(xiě)入內(nèi)容。 如果磁盤(pán)不夠快,你將丟失事件。 你需要一個(gè)解決方案,而不是記錄事件本身。

在處理大量事件時(shí),了解每個(gè)事件的度量值也無(wú)濟(jì)于事。 大多數(shù)時(shí)候,你只需要一些統(tǒng)計(jì)信息。 因此,你可以在進(jìn)程本身中獲取統(tǒng)計(jì)信息,然后偶爾編寫(xiě)一個(gè)事件來(lái)報(bào)告統(tǒng)計(jì)信息,這是 EventCounter 將執(zhí)行的操作。

代碼實(shí)現(xiàn)

下面是有關(guān)如何實(shí)現(xiàn) System.Diagnostics.Tracing.EventSource 的示例。 創(chuàng)建名為 MinimalEventCounterSource.cs 的新文件

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Threading.Tasks; 
  5. using System.Diagnostics.Tracing; 
  6.  
  7. namespace WebApplication42 
  8.     [EventSource(Name = "Sample.EventCounter.Minimal")] 
  9.     public sealed class MinimalEventCounterSource : EventSource 
  10.     { 
  11.         public static readonly MinimalEventCounterSource Log = new MinimalEventCounterSource(); 
  12.  
  13.         private EventCounter _requestCounter; 
  14.  
  15.         private MinimalEventCounterSource() => 
  16.             _requestCounter = new EventCounter("request-time", this) 
  17.             { 
  18.                 DisplayName = "Request Processing Time"
  19.                 DisplayUnits = "ms" 
  20.             }; 
  21.  
  22.         public void Request(string url, float elapsedMilliseconds) 
  23.         { 
  24.             Console.WriteLine("url:" + url + "  elapsedMilliseconds:" + elapsedMilliseconds); 
  25.             WriteEvent(1, url, elapsedMilliseconds); 
  26.             _requestCounter?.WriteMetric(elapsedMilliseconds); 
  27.         } 
  28.  
  29.         protected override void Dispose(bool disposing) 
  30.         { 
  31.             _requestCounter?.Dispose(); 
  32.             _requestCounter = null
  33.  
  34.             base.Dispose(disposing); 
  35.         } 
  36.     } 

添加操作篩選器,創(chuàng)建名為 LogRequestTimeFilterAttribute.cs 的新文件,并使用以下代碼:

  1. using Microsoft.AspNetCore.Http.Extensions; 
  2. using Microsoft.AspNetCore.Mvc.Filters; 
  3. using System; 
  4. using System.Collections.Generic; 
  5. using System.Diagnostics; 
  6. using System.Linq; 
  7. using System.Threading.Tasks; 
  8.  
  9. namespace WebApplication42 
  10.     public class LogRequestTimeFilterAttribute : ActionFilterAttribute 
  11.     { 
  12.         private readonly Stopwatch _stopwatch = new Stopwatch(); 
  13.  
  14.         public override void OnActionExecuting(ActionExecutingContext context) => _stopwatch.Start(); 
  15.  
  16.         public override void OnActionExecuted(ActionExecutedContext context) 
  17.         { 
  18.             _stopwatch.Stop(); 
  19.  
  20.             MinimalEventCounterSource.Log.Request( 
  21.                 context.HttpContext.Request.GetDisplayUrl(), _stopwatch.ElapsedMilliseconds); 
  22.         } 
  23.     } 

操作篩選器在請(qǐng)求開(kāi)始時(shí)啟動(dòng) Stopwatch,并在其完成后停止,捕獲運(yùn)行時(shí)間。 總毫秒數(shù)記錄到 MinimalEventCounterSource 單一實(shí)例。 為了應(yīng)用此篩選器,需要將其添加到篩選器集合。 在 Startup.cs 文件中,更新包含此篩選器的 ConfigureServices 方法。

  1. // This method gets called by the runtime. Use this method to add services to the container. 
  2.         public void ConfigureServices(IServiceCollection services) 
  3.         { 
  4.             services.AddControllers(options => options.Filters.Add<LogRequestTimeFilterAttribute>()); 
  5.             services.AddSwaggerGen(c => 
  6.             { 
  7.                 c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebApplication42", Version = "v1" }); 
  8.             }); 
  9.         } 

使用 .NET Core 中的 EventCounters 衡量性能

使用 .NET Core 中的 EventCounters 衡量性能

  1. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:70 
  2.  
  3. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:19 
  4.  
  5. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:18 
  6.  
  7. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:19 
  8.  
  9. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:22 
  10.  
  11. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:17 
  12.  
  13. url:https://localhost:5008/WeatherForecast elapsedMilliseconds:17 

原文鏈接:https://mp.weixin.qq.com/s/rRYKxa1iHLKCKwTH2SK4Mg

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费又黄又爽又猛大片午夜 | 午夜精品久久久久 | 国产福利电影在线观看 | 国产精品久久国产精品 | 色毛片 | 久久xx| 精品亚洲一区二区三区 | 四虎影院网站 | 亚洲毛片a | 欧美啪啪 | 精久久久 | 91高清在线 | 久久国产亚洲精品 | 亚洲精品久久久久中文字幕欢迎你 | 免费午夜电影 | 99国产精品99久久久久久 | 亚洲五码中文字幕 | 在线中文av | 另类视频网站 | 亚洲第一免费看片 | 午夜精| а天堂中文最新一区二区三区 | 日韩爱爱免费视频 | 亚洲www啪成人一区二区 | 欧美一级视频 | 欧美一级精品片在线看 | 一性一交一色生活片 | 中文学幕专区 | 久久精品91久久久久久再现 | 欧美精品1区 | 福利久久久 | 国产日皮视频 | 香蕉久久一区二区不卡无毒影院 | 国产小视频在线播放 | 亚洲精品在线免费看 | 亚洲精品一区二区三区99 | 欧美在线一区二区三区 | 黑人巨大精品欧美黑白配亚洲 | 精品中文一区 | 成a人片在线观看 | 欧美一区精品 |