经常看到有群友调侃“为什么搞Java的总在学习JVM调优?那是因为Java烂!我们.NET就不需要搞这些!”真的是这样吗?今天我就用一个案例来分析一下。
昨天,一位学生问了我一个问题:他建了一个默认的http://ASP.NET Core Web API的项目,也就是那个WeatherForecast的默认项目模板,然后他把默认的生成5条数据的代码,改成了生成150000条数据,其他代码没变,如下:
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 150000).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
解决方案一:去掉ToArray() 做法:Get方法的返回值就是IEnumerable<WeatherForecast>类型,而Select()方法的返回值也就是同样的类型,所以完全没必要再ToArray()转换为数组再返回,因此我们把ToArray()去掉。代码如下:
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 150000).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),