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

Сообщение Re[3]: Причины популярности C# от 27.05.2022 8:00

Изменено 27.05.2022 8:02 Философ

Re[3]: Причины популярности C#
Здравствуйте, vaa, Вы писали:

vaa>насчет производительности спорно. может в 2001 году так и было. хотя скорее это из-за печально известного гуя джавы.


Жаба догонит шарп по произоводительности, когда там появятся ValueType'ы — без них даже элементарынми GUID'ами куча засирается. Full GC в жабе — это боль. Собственно проблема в том, что производительность GC сильно зависит от кол-ва живых объектов. Да и отсутствие всяких Point, Vector3 и т.д. не добавляют производительности — без них всякие гуёвые задачи — грусть/тоска.
Собственно
А)
struct Point {public int X, Y}

void A(ref Point point) {}


Б)
class Point {public int X, Y}

void A(Point point) {}


А и Б — симантически почти одно и тоже, но при этом очень-очень разные вещи по производительности. На тысяче точек это слабо заметно, но если точек миллион, то жабе становится очень грустно. С гуидами тоже самое.

Ещё жабе сильно поможет добавление unsafe кода.
Re[3]: Причины популярности C#
Здравствуйте, vaa, Вы писали:

vaa>насчет производительности спорно. может в 2001 году так и было. хотя скорее это из-за печально известного гуя джавы.


Жаба догонит шарп по произоводительности, когда там появятся ValueType'ы — без них даже элементарынми GUID'ами куча засирается. Full GC в жабе — это боль. Собственно проблема в том, что производительность GC сильно зависит от кол-ва живых объектов. Да и отсутствие всяких Point, Vector3 и т.д. не добавляют производительности — без них всякие гуёвые задачи — грусть/тоска.
Собственно
А)
struct Point {public int X, Y}

void A(ref Point point) {}


Б)
class Point {public int X, Y}

void A(Point point) {}


А и Б — семантически почти одно и тоже, но при этом очень-очень разные вещи по производительности. На тысяче точек это слабо заметно, но если точек миллион, то жабе становится очень грустно. С гуидами тоже самое.

Ещё жабе сильно поможет добавление unsafe кода.