The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз компилятора D версии 2.068.0, opennews (??), 10-Авг-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


83. "Релиз компилятора D версии 2.068.0"  –1 +/
Сообщение от angra (ok), 11-Авг-15, 03:53 
А как у него с производительностью и потреблением памяти в сравнении с C++? Есть какие-нибудь бенчмарки вроде http://benchmarksgame.alioth.debian.org/ ? Ну или личный опыт.
Я не с целью покритиковать, а серьезно интересуюсь.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

84. "Релиз компилятора D версии 2.068.0"  +3 +/
Сообщение от arisu (ok), 11-Авг-15, 04:14 
> А как у него с производительностью и потреблением памяти в сравнении с
> C++?

зависит от компилятора, натурально. сейчас их есть три:
• DMD: компилирует быстро, как понос выходит. качество кода примерно такое же.
• GDC: использует бэкэнд gcc, качество кода как у gcc.
• LDC: использует бэкэнд llvm, качество кода как у llvm.

GDC и LDC обычно отстают на одну‐две версии от DMD.

насчёт потребления памяти — это уже как напишешь код. phobos (стандартная библиотека) сильно подвязан на gc (хотя работа в направлении отвязывания идёт), прямое сравнение затруднительно.

в общем и целом — микробенчмарки сосут, как обычно. вдобавок, сильно зависят от того, как написан код. в среднем — вполне сравнимо с цпп. встроенные ассоциативные массивы, правда, получались несколько медленней, чем stl-ные хэши.

из личного опыта: даже выхлоп DMD вполне юзабелен. всё равно большинство прикладного софта занимается ожиданием — то пользователя, то i/o, то сети… критичные по скорости места можно писать практически gc-free. если надо ещё скорости выжать — gdc.

в среднем — gdc пока что несколько хуже g++, потому что не умеет агрессивных девиртуализаций, например. с другой стороны — классы с виртуальными методами в D используются намного реже, чем в C++: вместо этого в D обычно используют простые структуры и метапрограммирование, так что классы с наследованием нужны намного реже.

в общем — вполне юзабелен для разных задач, от игр‐платформеров до высоконагруженых сетевых сервисов. в подавляющем большинстве случаев отлично заменяет C++. траблы могут быть разве что в проектах, которые сильно подвязаны на плюсовые библиотеки: взаимодействие с плюсами есть, но достаточно базовое. то есть, ни stl, ни сложных шаблонов (для этого, понятно, вообще нужно полноценный цпп‐компилятор реализовывать). но так как я от крестовых библиотек бегаю изо всех сил, то мне плевать.

Ответить | Правка | Наверх | Cообщить модератору

87. "Релиз компилятора D версии 2.068.0"  –1 +/
Сообщение от Аноним (-), 11-Авг-15, 10:37 
Спасибо за обзор.

Язык интересный, но лично я, пока там обязателен gc, с ним связываться не хочу. Меня C++ вполне устраивает.

Ответить | Правка | Наверх | Cообщить модератору

90. "Релиз компилятора D версии 2.068.0"  +/
Сообщение от Crazy Alex (ok), 11-Авг-15, 13:14 
Если у тебя нет каких-то "странных" задач то GC там обычно к месту, особенно учитывая, что выделений памяти в силу архитектуры языка и библиотеки меньше, чем если, скажем, на Java писать. Больше того - GC может дать приличный прирост производительности, так как избавляет от выделения памяти для перестраховки (когда не знаешь, освободят оригинал после копирования или нет). Ну или move-семантику приходится использовать - но с ней всё же мороки больше. Или подсчёт ссылок - но это вообще радость, особенно в многопоточке.
Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз компилятора D версии 2.068.0"  +1 +/
Сообщение от arisu (ok), 11-Авг-15, 14:02 
> пока там обязателен gc

а этого я не писал, например. и необязателен, и поддаётся контролю — иначе мой платформер фиг бы нормально работал, в том числе по сетке.

язык, в том числе, позиционируется как системный. поэтому gc опционален. достаточно большая часть фобоса таки использует ranges, так что она тоже на gc не подвязана уже.

а с третьей стороны: чем тебе gc-то так не нравится? обычно эта фобия совершенно беспочвенна — в отличие от мемликов, которые очень даже да. обычно это сродни попыткам «помочь компилятору», написав обратный цикл, например: когда‐то имело смысл, а сейчас никакого.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру