Exemple #1
0
 public EDID(byte[] buffer)
 {
     if (buffer == null || buffer.Length != 128)
     {
         Buffer = new byte[128];
         for (int i = 0; i < HEADER.Length; i++)
         {
             Buffer[i] = HEADER[i];
         }
     }
     else
     {
         Buffer = buffer;
     }
     CustomTimings = new CustomTiming[8];
     for (int i = 0; i < CustomTimings.Length; i++)
     {
         CustomTimings[i] = new CustomTiming(this, 38 + i * 2);
     }
     Descriptors = new Descriptor[4];
     for (int i = 0; i < Descriptors.Length; i++)
     {
         Descriptors[i] = Descriptor.GetDescriptor(this, 54 + i * 18);
     }
 }
Exemple #2
0
        public override void Execute(ObjectConstructionArgs args)
        {
            var miniProfiler = _profiler as MiniProfiler;

            //if (miniProfiler == null || !miniProfiler.IsActive || miniProfiler.Options?.TrackConnectionOpenClose == false)
            if (miniProfiler == null)
            {
                _inner.Execute(args);
                return;
            }
            using (var timing = new CustomTiming(miniProfiler, "ConstructionTimerStart Execute()",
                                                 _debugSettings.SlowModelThreshold))
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();
                try
                {
                    _inner.Execute(args);
                }
                finally
                {
                    stopwatch.Stop();
                    if (stopwatch.ElapsedMilliseconds > _debugSettings.SlowModelThreshold)
                    {
                        var key        = _cacheKeyGenerator.Generate(args) + "stopwatch";
                        var finaltType = args.Result.GetType();
                        timing.CommandString =
                            string.Format("Slow Glass Model - Time: {0} Cachable: {1} Type: {2} Key: {3}",
                                          stopwatch.ElapsedMilliseconds, args.Configuration.Cachable, finaltType.FullName, key);
                    }
                }
            }
        }
        public async Task <IActionResult> Privacy()
        {
            // 这个例子里,我们使用 MiniProfiler.Current.CustomTiming() 方法。
            //  第一个参数是一个用于分类的字符串,这里我用的是http请求,所以写了http;
            //  第二个参数是命令字符串,这里我用不上,暂时留空;
            //  第三个参数是执行类型,这里我用的是Get请求,所以写了GET;
            using (CustomTiming timing = MiniProfiler.Current.CustomTiming("http", string.Empty, "GET"))
            {
                var url        = "http://27.24.159.155";
                var httpClient = new HttpClient
                {
                    BaseAddress = new Uri(url)
                };
                httpClient.DefaultRequestHeaders.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var response = await httpClient.GetAsync("/system/resource/code/news/click/dynclicks.jsp?clickid=1478&owner=1220352265&clicktype=wbnews");

                timing.CommandString = $"URL:{url}\n\r Response Code:{response.StatusCode}";

                if (!response.IsSuccessStatusCode)
                {
                    throw new Exception("Error fetching data from API");
                }

                var clickTimes = await response.Content.ReadAsStringAsync();

                ViewData["clickTimes"] = clickTimes;
            }

            return(View());
        }
Exemple #4
0
        IDisposable Elastic.IProfiler.Profile(string name, string command)
        {
            MiniProfiler profiler;
            CustomTiming timing = null;

            if ((profiler = MiniProfiler.Current) != null)
            {
                timing = profiler.CustomTiming("elastic", command, name);
            }
            return(new InnerProfileObject(this, timing));
        }
Exemple #5
0
        protected async override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var    httpVerb = request.Method.ToString();
            string url      = request.RequestUri.AbsoluteUri;

            var requestContent = await GetRequestContent(request);

            using (CustomTiming timing = MiniProfiler.Current.CustomTiming("http", string.Empty, httpVerb))
            {
                var response = await base.SendAsync(request, cancellationToken);

                timing.CommandString = $"URL          : {url}\nCONTENT      : {requestContent}\nRESPONSE CODE: {response.StatusCode}";
                return(response);
            }
        }
        private async Task <string> GetApiCallData()
        {
            using (CustomTiming timing = MiniProfiler.Current.CustomTiming("http", string.Empty, "GET"))
            {
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri(_uri);
                    MediaTypeWithQualityHeaderValue contentType =
                        new MediaTypeWithQualityHeaderValue("application/json");
                    client.DefaultRequestHeaders.Accept.Add(contentType);
                    HttpResponseMessage response = client.GetAsync(_requestUri).Result;
                    string stringData            = response.Content.ReadAsStringAsync().Result;

                    timing.CommandString = $"URL: {_uri + _requestUri} \n\nRESPONSE CODE: {response.StatusCode}";
                    return(stringData);
                }
            }
        }
        public async Task <IActionResult> Create([Bind("Id,Item,Amount")] Payment payment)
        {
            if (ModelState.IsValid)
            {
                // Custom timing for MiniProfiler
                using (CustomTiming timing = MiniProfiler.Current.CustomTiming("MyLongRun", "Test command", executeType: "Test", includeStackTrace: true))
                {
                    payment.Id       = Guid.NewGuid();
                    payment.CreateOn = DateTimeOffset.UtcNow;
                    _dbcontext.Add(payment);
                    await _dbcontext.SaveChangesAsync();

                    timing.CommandString = $"Inserting {payment.Item} with amount {payment.Amount.ToString()}.";
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(payment));
        }
        public async Task <StockIndexInfo> GetStockIndexPrice(String indexCode, TradeDate date)
        {
            String url        = $"api/StockIndexPrices/{indexCode}?tradeDate={date.Date.ToString("yyyy-MM-dd")}";
            var    httpClient = httpClientFactory.CreateClient("StockIndexApi");

            using (CustomTiming timing = MiniProfiler.Current.CustomTiming("http", String.Empty, "GET"))
            {
                var response = await httpClient.GetAsync(url);

                timing.CommandString = $"URL : {url}\n\nRESPONSE CODE: {response.StatusCode}";
                if (response.IsSuccessStatusCode)
                {
                    return(await response.Content.ReadAsAsync <StockIndexInfo>());
                }
                else
                {
                    return(await Task.FromResult <StockIndexInfo>(null));
                }
            }
        }