Fork me on GitHub
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要: 通过dotnet-counter moniter可以在应用外部启动监控应用,当然也可以在进程内来来进行监控指标的收集或展示。 进程内监控的好处是不用启用多个服务来完成监控和服务的分离,只要应用启动,监控指标也就产生,是紧密关系。 class Program { static void Main() 阅读全文
posted @ 2022-02-21 17:29 桂素伟 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 本篇分别说明一下System.Net下的Http计数器,NameResolution计数器,Security计数器和Sockets计数器。 同时,下面指标各项()里的项目是--counters 参数[]里的项,用逗号分隔多项指标。 System.Net.Http计数器 以下计数器由 HTTP 堆栈发 阅读全文
posted @ 2022-02-11 17:33 桂素伟 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 上篇说了System.Runtime,它负责应用运行的环境资源的收集,这篇要继续说AspNetCore的Hosting,Http.Connections和Server.Kestrel三个计数器。 同时,下面指标各项()里的项目是--counters 参数[]里的项,用逗号分隔多项指标。 Micros 阅读全文
posted @ 2022-02-11 16:48 桂素伟 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 在dotnet中,常用的收集指标有: System.Runtime 计数器 Microsoft.AspNetCore.Hosting计数器 Microsoft.AspNetCore.Http.Connections计数器 Microsoft-AspNetCore-Server-Kestrel计数器 阅读全文
posted @ 2022-02-11 16:33 桂素伟 阅读(205) 评论(0) 推荐(1) 编辑
摘要: 打造一个完善的软件产品,准确完整实现业务是第一步,再有就是有优秀的性能,稳定的运行。为了能量化性能指标,需要利用工具,来收集这些数据,以便对产品作出代码级调整。 先说一下.net中带一个全局工具:dotnet-counters,它是一个性能监视工具,用于临时运行监视和初级性能调查。它可以对运行中的d 阅读全文
posted @ 2022-02-11 16:30 桂素伟 阅读(109) 评论(0) 推荐(1) 编辑
摘要: asp.net core后期的版本支持在依赖注入时,一个接口,多个子类实现,依次注入,当需要使用实例时,可以用IEnumerable<接口>来获取实例,进行使用,这种使用方式如下: 接口和子类的定义: using System; using System.Collections.Generic; u 阅读全文
posted @ 2022-02-11 16:02 桂素伟 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 本篇介绍在C#中,把一个大集合,或大数组分成若干个区来执行。Demo中是把一组字符串放在list中,然后并行生成MD5串,返回回来。 using System; using System.Collections.Generic; using System.Reflection; using Syst 阅读全文
posted @ 2022-02-11 15:55 桂素伟 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 在C#中,并行Parallel和异步Async,都是有来提升应用性能,那看看Parallel的性能怎么样。 Demo是对1百万的数组进行赋值运算,用Benchmark进行测试,调用方式:BenchmarkRunner.Run<TestParallelDemo>(); public class Tes 阅读全文
posted @ 2022-02-11 15:36 桂素伟 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 异步能在一定场景中带性能的飞跃,同步调用性能,也以带来时间的节省。 先看一下被调用的api: using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collecti 阅读全文
posted @ 2022-02-11 15:30 桂素伟 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中看了Property的几种不同访问方式《用BenchmarkDotNet看Property》,性能调用上的差别明显,那同样作为class里重要成员,Method性能如何呢? 下面是被测试方法 public class MyClass { public string MyMethod() 阅读全文
posted @ 2022-02-08 20:33 桂素伟 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 为了提高性能,需要对mysql批量插入进行一次性对对比,下面是测试完后的结果,存档以备后查。 1. 测试结果 记录条数 循环插入,一个事务提交insert00(ms) 批量函数插入 insert01(ms) 一个inser多个values insert02 (ms) 多个insert拼接 inser 阅读全文
posted @ 2022-02-08 20:32 桂素伟 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 异步流是C#8.0出来的特性,可以让流式数据以尽快分批的方式返回,而不像之前那样,当全部获取到数据后,再返回。 下面的例子的场景有点特殊,查询一个较多的数据,为了查询不给数据带来很大压力,做成一个分批从数据查询回数据,组装成一个整理List返回。 如果是之前的做法,就需要等所有的数据返回后,累加到一 阅读全文
posted @ 2022-02-08 20:21 桂素伟 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 属性——Property,由get,set访问器组成,这是C#使用度比较高的类成员。今天分几组对比测试,来看一下使用Property的性能。 被测试对象: public class MyClass { private string _myProperty1 = DateTime.Now.ToStri 阅读全文
posted @ 2022-02-07 20:36 桂素伟 阅读(73) 评论(0) 推荐(0) 编辑
摘要: BenchmarkDotNet是一款开源的性能测试工具,使用方式非常简单,特别是对实现同一功能的两种方式,犹豫不决时,可以使用它进行个对比。 比如我们比较ADO.NET方式查询数据库表,和用Dapper方式获取数据为表,只需要在两个方法上增加 [Benchmark]就可以了,然后调用var summ 阅读全文
posted @ 2022-02-07 20:23 桂素伟 阅读(98) 评论(0) 推荐(0) 编辑
摘要: C#里,foreach可以算是个高一等级的循环,因为想要使用foreach必须实现IEnumberable,然后还需要在这个接口的唯一方法中,用yield return返回元素,才能达到foreach的循环效果。 class MyList : IEnumerable { string[] arr = 阅读全文
posted @ 2022-02-07 20:20 桂素伟 阅读(34) 评论(0) 推荐(0) 编辑
摘要: using和IDisposable是组合使用的,像这种一个关键字和一个接口的组合,在C#中很少见的,using这个关键字,也就因为IDisposable多了一个身份。 其实很多人都知道IDisposable,有一个方法void Dispose(),通常是用来释放一些必须释放的资源时,要实现这个接口, 阅读全文
posted @ 2022-02-05 15:39 桂素伟 阅读(71) 评论(0) 推荐(0) 编辑
摘要: Moq在.net中比较出名的mock框架,NSubstitute也是属于这类框架,使用方式也如出一辙,是通过实现子类来达到mock的效果。下面的测试方法都是按照 UnitTest的三板斧Arrange Act Assert来展开的,代码具体如下。 using Microsoft.VisualBasi 阅读全文
posted @ 2022-02-05 15:35 桂素伟 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main 阅读全文
posted @ 2022-02-05 15:31 桂素伟 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 如果想在一个项目中,用DapperPlus支持多种数据库该怎么做? 在《让Dapper支持Mock》中我们定义了DapperPlus,可以基于这个类,实现两个子类:MySqlDapperPlus,MsSqlDapperPls,在这两个子类的构造中适配对应的数据库类型,从注放容器中,获取IDbConn 阅读全文
posted @ 2022-02-05 15:26 桂素伟 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在上一篇说了封闭Dapper扩展方法为一个接口来支持Mock,接下来看看如何实现读写分离。 其实定义两个接口,一个用来实现读,一个用来实现写。在读的接口里只有Query的方法,在写的接口里实现Query和Execute全量(通读写的库也是支持读的,有的场景还是必须在写库里读,因为写库往读库中同步时是 阅读全文
posted @ 2022-02-05 15:20 桂素伟 阅读(82) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页