В очередной раз очередной студент с горящими глазами объявил, что «всё, что у нас написано на Delphi — медленно и безобразно и, если мы уж не хотим перейти на C++, то почему бы не перейти на pascalABC.net, он быстрее значительно». Студенту поручили проверить всё это.
Конкретная задача (постараюсь определить в терминах скорости компиляторов, как мне указали в комментариях): сравнить производительность штатных компиляторов Delphi, PascalABC.net и MS VS (версий, которые у нас имеются. Не такие древние, хотя по академической лицензии иметь всегда последнее порой сложно). Выкладки, которые он привёл из сети, в целом не особо убедительны.
Да, быстрее, но в конкретных примерах. Как они относятся к нашим задачам — не совсем ясно. Студенту поручили, в итоге, всё проверить на практике.
Вопрос, может, кто-то уже сталкивался с необходимостью сравнения скорости на больших биоинформатических проектах (или похожих: основной массив работы — строки, большое их количество, сравнение, точный и нечеткий поиск, построение деревьев, циклы, статистика) Delphi vs PascalABC.net и, возможно, C++? Принцип подхода к снаряду понятен, объём работы — тоже. Но, мне, как куратору студента, хотелось бы понимать, насколько правильно он выполнил свою работу. Для этого неплохо было бы и сравнить его результаты с уже имеющимися, если таковые есть.
Всё о Delphi & Pascal / Из музыканта в программисты / Интервью с Delphi Developer
Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 25 дек 2017 в 3:05
Alexey Kozlov Alexey Kozlov
703 5 5 серебряных знаков 17 17 бронзовых знаков
Есть ведь разные компиляторы для delphi .
25 дек 2017 в 3:10
Нет такого понятия как производительность языка. Зато есть компилятор, качество его кодогенерации и набор применяемых им оптимизаций. Даже код на том же C++ может безбожно тормозить на штатном компиляторе MSVC 6 и летать под наисвежайшим GCC.
25 дек 2017 в 3:50
сравнение глупое и бессмысленное. Лучше писать на том, что лучше знаете. На ютубе смотрел видео, где человек рассказывает, как он сделал большой кластер на хадупе, который долго-долго считал по его данным. А потом один из зрителей небольшим скриптом на ноуте посчитал за несколько минут.
25 дек 2017 в 11:29
26 дек 2017 в 5:46
Это не ответ на конкретно ваш вопрос, но достаточно интересные измерения производительности множества программ, решающих одни и те же задачи на разных языках. Полазайте, поглядите (в т.ч. там есть сорсы)
26 дек 2017 в 20:35
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Похоже, такие желания появляются у каждого третьего студента 🙂 По крайней мере, у нас часто возникают схожие студенческие задачи, особенно, если приходят студенты с мехмата или ВИТ и желают заниматься только программированием. Ну, ладно, это лирика.
По делу. Сейчас у нас силами трёх студентов решается большая задача по оптимизации конвейера анализ->расшифровка->расчеты->моделирование->диагноз , в ней, в частности, большую часть занимают проблемы производительности наших пакетов, в том числе, созданных разными компиляторами. В списке компиляторов есть все три указанных вами, так что я могу в целом описать картину сравнения. Могу дать промежуточные выводы. Подробные данные могу опубликовать только с разрешения авторов (дипломная работа не окончена), если оно будет, я дополню ответ.
5 ХУДШИХ языков программирования, которые не стоит учить!
Сразу приведу класс задач в наших пакетах. Это работа с огромными и маленькими строками, матрицами (в меньшей степени), проблемы поиска, динамическое программирование, множества, ряды Фурье и вейвлеты, ввод-вывод. Время расчёта результата анализа одного пациента при работе в один поток может достигать 10-12 часов, так что погрешностями в долях секунды при замере времени работы можно пренебречь. В расчет принималось среднее от отношения времен работы. Для разных ситуаций количество замеров разное, но всегда больше 7.
Версии компиляторов: Delphi for Win64 31.0 (Delphi 10.1), PascalABC.net 3.2.0.1415, VS 2015 (14.00.24720)
- Пакет на Delphi, написанный с использованием только стандартных методов и функций Delphi, в один поток, уступал по производительности и PascalABC.net и, тем более, C++. Разница в нашем основном пакете могла достигать, в зависимости от данных, 1.3 раза с паскалем и до 1.5х раз с C++ (есть разные результаты для разных процессоров, это самая большая разница). Так что, если не желаете заниматься профилировкой, а скорость работы критична, я бы не рекомендовал писать на Delphi.
- То же самое, но в многопоточном виде. Большинство наших задач успешно распараллеливаются, так что мы охотно применяем многопоточность. Разница Delphi супротив C++ в худшем случае осталась около 1.5х раз, с PascalABC.net — 1.1 раза. Скорее всего, в PascalABC.net многопоточность ещё плохо «вылизана».
- Многопоточная профилированная задача. В данном случае были выявлены «бутылочные горла» и проблемные места переписаны на ассемблере. Это было сделано для Delphi и C++. PascalABC.net не поддерживает встроенный ассемблер, были сделаны попытки подключения библиотек, но ожидаемого успеха пока не добились. Как итог, сравнение Delphi с C++ — отставание в 1.15 раза (на Intel), неоптимизированный пакет PascalABC.net проиграл Delphi в 1.6 раза
- То же самое, но с поддержкой SIMD. Вот тут уже почти паритет. Отставание Delphi от C++ на процессорах Intel — 1.06 раза (было бы интересно скомпилировать компилятором от Intel с интринсиками, но не знаю, будет ли реализовано или нет), на процессорах AMD — 1.01 раза. PascalABC не сравнивался — причина в п. 3
Была еще проведена оптимизация под конкретные ядра. Тут вообще интересные результаты (в частности, при оптимизации под ядра Zen на Ryzen 1700 в 16-типоточном приложении пакет на Delphi был повторяемо быстрее всех, что мы пока не можем внятно объяснить), но в промежуточном выводе они не представлены, без разрешения авторов я их дать не могу.
Источник: ru.stackoverflow.com
Delphi (язык программирования)
Эта статья — о языке программирования. Об интегрированной среде разработки см. Delphi (среда разработки).
императивный, структурированный, объектно-ориентированный, компонентно-ориентированный, высокоуровневый |
1995 |
Андерс Хейлсберг |
.pas, .dpr, .dpk, .pp, .dproj, .dfm, .fmx, .bpl |
11.2 Alexandria [1] (7 сентября 2022 ; 9 месяцев назад ( 2022-09-07 ) ) |
статическая, сильная |
Borland/Inprise/Codegear/Embarcadero Delphi; Borland Kylix; FreePascal |
Object Pascal, C++ |
C#, Java[1] |
embarcadero.com/ru/produ… |
x86, x64, ARM |
Windows, macOS, iOS, Android, Linux |
Delphi (Де́лфи, произносится /ˈdɘlˌfi:/ [2] ) — императивный, структурированный, объектно-ориентированный, высокоуровневый язык программирования со строгой статической типизацией переменных. Основная область использования — написание прикладного программного обеспечения.
Этот язык программирования является диалектом языка Object Pascal. Изначально язык Object Pascal относился к несколько другому языку, который был разработан в фирме Apple в 1986 году группой Ларри Теслера [3] . Однако, начиная с Delphi 7 [4] , в официальных документах компании Borland название Delphi стало использоваться для обозначения языка, ранее известного как Object Pascal.
Источник: wiki2.org
На Delphi Studio вы можете найти и скачать исходники, примеры, компоненты, книги, учебники, статьи по Delphi и Pascal
Программа для решения судоку
crystalbit | 13-08-2010, 23:53 | Delphi Исходники » Исходники Delphi Графика Мультимедиа
Исходник программы, которая решает судоку.
Программа написана в марте 2009 года. Для решения использована рекурсия.
Скачать исходник (delphi 7)
Скачать компилированную программу
Подробная статья
119 |
Скачать исходник браузера WebBrowser на Delphi
Delphin | 28-04-2010, 03:00 | Delphi Исходники » Исходники Delphi Сеть Интернет
Предлагаю скачать исходник браузера WebBrowser на Delphi. Сам по себе браузер мола функционален, со временем если будет желание, буду улучшать браузер новым функционалом и обновлять файл исходника
1223 |
Скачать исходник Генератора паролей на Delphi
Delphin | 24-04-2010, 23:30 | Delphi Исходники » Исходники Delphi Система
Предлагаю скачать исходник Генератора паролей на Delphi. Генератор паролей генерирует цифры от 0-9.
2753 |
Исходник программы переводящий русский язык в транслит на Delphi
Delphin | 24-04-2010, 23:30 | Delphi Исходники » Исходники Delphi Система
Скачать исходник программы переводящий русский язык в транслит (Transliteration) на Delphi
561 |
Друзья сайта
Программы для ПК и Android
Поиск на Delphi Studio
Авторизация
На Delphi Studio нашли
Движок для регистрации сайтов с проверкой наличия html rjlf yf cfqnt
progressbar и listbox delphi
delphi исходники скачать генератор
Delphi OPenDialog открывать с одной папки
свернуть в трей delphi 2010
как добавить пронрамму как приложение
delphi создание ini
Компонент TAdvAlertWindow delphi 2009
авторизация на dle
как отправить html-макет к письму
кнопка закрыть в дельфи
исходник текстовый редактор delphi
pos в делфи
мемо делфи
как задать матрицу в Делфи
delphi всплывающее окно в трее
codegear delphi 2007 сетевая версия
Delphi 7 создание res
windows shell api for delphi
текстовый редактор для delphi memo
Delphi 7создание res
delphi 2010 ide настройка
delphi компьютерная графика
авторизация idhttp mail
скачать книгу по делфи7
автозагрузка в реестр
как перетаскивать форму за объект delphi
delphi как заблокировать окна
delphi программа мигающий текст
delphi для самых начинающих
Дельфи студио
бесплатный Delphi
delphi 2010 передача файлов
курсовая Delphi
полезные программы в Delphi
скачать исходники сайта vkontakte
как в делфи изменить имя в окне
Информация
Сайт Delphi Studio рассчитан для начинающих, новичков, чайников, которые решили программировать на Delphi 🙂
Добавляйте свои примеры, исходники, компоненты, статьи и тогда на сайте будет много полезной информации, что поможет друг другу находить нужный материал.
Случайные новости
Как сделать в программе прозрачное окно? Пример на Delphi — Как сделать в программе прозрачное окно? Пример на Delphi
Книга Delphi 7 Учебный курс С.Бобровский — Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
Книга Delphi 7 Учебный курс С.Бобровский — Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
Источник: delphistudio.ru