Информация об изменениях

Сообщение Re[44]: dotnet vs java 2016-2020 от 18.10.2016 9:03

Изменено 18.10.2016 9:44 Serginio1

Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, vdimas, Вы писали:


V>>Нет никакого противоречия. Виндовый дотнет быстрее джавы, но линуховый не быстрее. Поэтому, если брать линуха, то дотнет не даёт никаких плюшек.


_>Линуксового дотнета вообще пока нет в природе. Совсем недавно появился некий нестабильный обрезок, который возможно пойдёт для специфических целей.

То есть ты знаток .Net ?

https://habrahabr.ru/post/312264/
http://metanit.com/sharp/entityframeworkcore/

Вот мои статьи
https://habrahabr.ru/users/serginio1/topics/

Вышел уже 1.0.1 Да все ждут NetStandard 2. Но и на .Net Core 1.0.1 можно уже кучу вещей делать.
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
Кроме того есть .Net Native
https://msdn.microsoft.com/ru-ru/library/dn584397(v=vs.110).aspx

Кроме того применяется оптимизация при компиляции в MSIL

Так уже же появлся https://github.com/antiufo/roslyn-linq-rewrite

Example input code

public int Method1()
{
    var arr = new[] { 1, 2, 3, 4 };
    var q = 2;
    return arr.Where(x => x > q).Select(x => x + 3).Sum();
}

Allocations: input array, array enumerator, closure for q , Where delegate, Select delegate, Where enumerator, Select enumerator.

Decompiled output code

public int Method1()
{
    int[] arr = new[] { 1, 2, 3, 4 };
    int q = 2;
    return this.Method1_ProceduralLinq1(arr, q);
}
private int Method1_ProceduralLinq1(int[] _linqitems, int q)
{
    if (_linqitems == null) throw new ArgumentNullException();

    int num = 0;
    for (int i = 0; i < _linqitems.Length; i++)
    {
        int num2 = _linqitems[i]; 
        if (num2 > q)
            num += num2 + 3;
    }
    return num;
}



Я это к тому, что и Linq to SQL сразу будет формировать строку запроса и оптимальное заполнение модели.
Re[44]: dotnet vs java 2016-2020
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, vdimas, Вы писали:


V>>Нет никакого противоречия. Виндовый дотнет быстрее джавы, но линуховый не быстрее. Поэтому, если брать линуха, то дотнет не даёт никаких плюшек.


_>Линуксового дотнета вообще пока нет в природе. Совсем недавно появился некий нестабильный обрезок, который возможно пойдёт для специфических целей.

То есть ты знаток .Net ?

https://habrahabr.ru/post/312264/
http://metanit.com/sharp/entityframeworkcore/

Вот мои статьи
https://habrahabr.ru/users/serginio1/topics/

Вышел уже 1.0.1 Да все ждут NetStandard 2. Но и на .Net Core 1.0.1 можно уже кучу вещей делать.
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
Кроме того есть .Net Native
https://msdn.microsoft.com/ru-ru/library/dn584397(v=vs.110).aspx
http://www.anandtech.com/show/9661/windows-10-feature-focus-net-native

Кроме того применяется оптимизация при компиляции в MSIL

Так уже же появлся https://github.com/antiufo/roslyn-linq-rewrite

Example input code

public int Method1()
{
    var arr = new[] { 1, 2, 3, 4 };
    var q = 2;
    return arr.Where(x => x > q).Select(x => x + 3).Sum();
}

Allocations: input array, array enumerator, closure for q , Where delegate, Select delegate, Where enumerator, Select enumerator.

Decompiled output code

public int Method1()
{
    int[] arr = new[] { 1, 2, 3, 4 };
    int q = 2;
    return this.Method1_ProceduralLinq1(arr, q);
}
private int Method1_ProceduralLinq1(int[] _linqitems, int q)
{
    if (_linqitems == null) throw new ArgumentNullException();

    int num = 0;
    for (int i = 0; i < _linqitems.Length; i++)
    {
        int num2 = _linqitems[i]; 
        if (num2 > q)
            num += num2 + 3;
    }
    return num;
}



Я это к тому, что и Linq to SQL сразу будет формировать строку запроса и оптимальное заполнение модели.