Почему. NET OData Serializer так медленно - PullRequest
2 голосов
/ 31 января 2020

У меня есть конечная точка OData (протестирована с обоими. NET Core и. NET 4.7.1), которая выставляет 2500 объектов, встроенных в память. Вызов Get OData занимает 30-40 секунд. Эквивалентный ASP. NET вызов WEB API, который возвращает raw JSON, занимает 1 секунду. Такое ощущение, что платформа OData не так эффективна, как Json. NET. Любые предложения о том, как улучшить производительность?

Очень медленно.

    [EnableQuery(EnsureStableOrdering = false)]
    public ActionResult<IEnumerable<Person>> Get()
    {
        var list = new List<Person>();
        for (var i = 0; i < 2500; i++)
        {
            list.Add(new Person());
        }

        return list;
    }

Очень быстро.

public IHttpActionResult Get()
{
    var list = new List<Person>();
    for (var i = 0; i < 2500; i++)
    {
        list.Add(new Person());
    }

    var json = JsonConvert.SerializeObject(list);
    return Ok(json);
}
...