Производительность по сравнению с Delphi

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Производительность по сравнению с Delphi

Сообщение GrayEddy » 28.11.2007 00:29:32

Источник здесь...
http://www.delphimaster.ru/cgi-bin/foru ... 76875&n=11

Дословная цитата (от некоего ArtHome)
Экзешник от Лазаря, что оригинальный 4-х метровый, что обстрипленный работает примерно в 9 раз медленнее делфёвого. Установка в делфях галочки "optimization" не помогла - всё равно она работает в 9 раз быстрее. Что я делаю неправильно и как мне тормознуть делфи?...)


Лично я ничего не понял в этой цитате (возможно, автор торопился) :lol:, зачем тормозить Delphi?
Лучше сникерснуть, а?

Выжимка такова.
По мысли автора, производительность экзешника от лазаруса (и от FPC) по сравнению с Delphi сродни производительности интерпретатора Паскаля.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение Alexander » 28.11.2007 02:10:54

Я не понял, это что автор подписался ev ? Наших бьют, используя
наши ники ?
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение HomeCraft » 31.01.2008 21:40:13

И я свои 5 копеек...
Создал проект с формой, на которой TreeView, Edit, Button скомпилировал в ELF-файл.
Плохо следующее:
Исполняемый файл 15 МБайт (после strip 2МБ, что не лучше);
Тормозит просто слов нормальных нет: форма появляется через 38 сек.
Просто когда-то лет 8 назад Kylix очень сильно раскритиковали за то, что исполняемый файл у него выходил на уровне DELPHI (т.е. такая же программа получалась около 400 кБ).
Так вот вопрос: Это нормально что-ли у вас считается? Или есть способы борьбы с этим?
P.S.
Только сдается мне, что 2МБ и 38 сек - это самый минимум. И это проблема серьезная!!! ИМХО стоит обратить внимание сначала на это, а не на визуальное удобство.
HomeCraft
новенький
 
Сообщения: 25
Зарегистрирован: 14.01.2008 20:42:46
Откуда: Магнитогорск

Сообщение Brainenjii » 31.01.2008 22:14:32

Хм... Пишу дипломный проект на лазаре, несколько форм (правда все, кроме главной, создаются в рантайме - часто сижу за kate без лазаря, да и вообще привык), проект весит 18,8 Мб (без смартлинка и с отладочной информацией), главная форма появляется за 3 секунды (оптимизации "умолчательные" (вроде бы)), "дочерние" - меньше чем за секунду, хотя сложнее и выполняют кучу обращений к базе во время создания...
GTK2, 1,8 GHz, 512 Mb RAM...
Если речь идёт о сборке лазаря под qt, там могут быть проблемы - оно еще не доделано, как понял... Хотя недавно пробовал - бегало даже шустрее, чем с GTK2 ^_^ Правда редактор имел склонность к сегфолту...

З.Ы. попробуйте в Проект/Параметры компилятора/Связывание/ снять CheckBox'ы "Генерировать информацию для GDB...". У меня размер бинарника уменьшился до 3.1 Мб после этого... Правда, стрип, вроде, то же самое делает...

З.З.Ы. Попробовал с "Умным связыванием" - получил 2,6 Мб... Главная форма появляется уже меньше, чем за секунду, но это, скорее из-за "кеширования" линуксом...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение alexs » 31.01.2008 23:04:43

HomeCraft
Этож как вы так умудрились сделать?
специально циклы вставляли пустые? или что?
исходники в студию.


У меня проект рабочий (переношу потихоньку из дельфина в лазарь) - после компиляции (естественно с дебажной инфой) - 120 мег :-)
Провожу стрип - привожу к релизному варианту - уже порядка 9 метров, что в линуксе, что в винде. Дельфовый exe-ик 8 метров.
Вывод - на всяких поделках с 1 - 2 кнопками - размер LCL имеет значение. Но на рабочих проектах (сейчас уже порядка 250 форм) - размер LCL - не определяющий фактор.
Я прям сечас знаю как уменьшить размер на 1 - 1.5 метра (за счёт ресурсов изображений) - но это пока не критично - только в ущерб удобству разработки.
Насчёт скорости запуска - на запуск уходит от 1 до 3 секунд, при отладке естественно подольше, секунд 10 - но это время загрузки программы в GDB. При запуске по сети через X сервер - упираемся в пропускную способность сети - но тоже не много, секунд 5. Машина - 600 мег ОЗУ 1,4 Ггц.
Самое долгое в процессе разработки - это линкер под линуксом (в винде он встроенный и быстрый).

Вобщем, у меня складывается впечателение, что подобные вопросы/обзоры - это либо провокация, либо заказ.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Сергей Смирнов » 31.01.2008 23:57:41

Не поленился повторить этот грандиозный эксперимент. Создал проект с формой, на которой TreeView, Edit, Button скомпилировал в виндовый экзешник. Запускается мгновенно. Я реально не могу определить за сколько - может миллисекунд 100, может меньше. Ну да, 11 мегов с отладочной информацией... для вируса многовато, для обычной программы - без разницы.
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение Mirage » 01.02.2008 12:03:06

У меня в проектах без GUI .exe, генерируемый FPC 2.2.0 больше на 20-25% дельфийского, а скорость одинаковая. Более ранние версии FPC давали заметно меньшую скорость.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Сообщение HomeCraft » 01.02.2008 17:55:17

Сергей Смирнов писал(а):Не поленился повторить этот грандиозный эксперимент. Создал проект с формой, на которой TreeView, Edit, Button скомпилировал в виндовый экзешник.

Есть в науке понятие такое - воспроизводимость эксперимента. Обеспечивается она одинаковыми условиями проведения последнего. Так вот:
1. я писал ELF-файл, что не есть EXE-шник;
2. Linux<>Windows
3. у меня машина Celeron 900 256Mb RAM
alexs писал(а):Этож как вы так умудрились сделать?
специально циклы вставляли пустые? или что?
исходники в студию.

А исходники все как в пустом проекте (Файл проекта и файл формы).
alexs писал(а):Вобщем, у меня складывается впечателение, что подобные вопросы/обзоры - это либо провокация, либо заказ.

А вот это уже клеветой попахивает!
Еще раз хочу повторить проблема действительно есть и я был бы рад ее решению! Может у кого есть мысли конструктивного характера по этому поводу. Может быть даже я что-то не так компилировал? Так подскажите! Зачем сразу набрасываться?
HomeCraft
новенький
 
Сообщения: 25
Зарегистрирован: 14.01.2008 20:42:46
Откуда: Магнитогорск

Сообщение ev » 01.02.2008 18:25:18

Еще раз хочу повторить проблема действительно есть и я был бы рад ее решению! Может у кого есть мысли конструктивного характера по этому поводу.

была бы проблема, значит был бы уже доступен исходник и EXE-шник для изучения форумчанами
их нет - видимо проблемы на самом деле то и нет ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение alexs » 01.02.2008 19:01:07

HomeCraft писал(а):А вот это уже клеветой попахивает!
Еще раз хочу повторить проблема действительно есть и я был бы рад ее решению!


Голословные обвинения не приемлются - ещё раз внимательно прочти мой пост - там я русским языком написал - компиляция проходит в линуксе!

Либо предоставляй исходник - либо вобше не устраивай провокации.

P.S. - to all - мне кажется - или сейчас мода пошла на тролей? во всех форумах нормальных заводятся.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Alexx2000 » 01.02.2008 19:18:51

HomeCraft писал(а):Только сдается мне, что 2МБ и 38 сек - это самый минимум. И это проблема серьезная!!! ИМХО стоит обратить внимание сначала на это, а не на визуальное удобство.

В принципе 2 Мб это не много, особенно сегодня, когда количество RAM начинает измеряется Гигабайтами, а объем HDD Терабайтами. Да и для крупных проектов это не имеет большого значения, в принципе и для маленьких тоже плюс/минус пару Мб, в этом нет ничего страшного.

У меня на машине Celeron 1700 256 RAM под ASPLinux 11 запускается в течении нескольких секунд.

И какой у вас дистрибутив, просто я ставил парочку современных там была похожая ситуация, но это из-за нехватки памяти (много уходит на компиляцию с линковкой), а на ASPLinux 11 как я уже написал все нормально.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение HomeCraft » 01.02.2008 19:25:39

У меня мандрива 2005. А по поводу скорости - на работе тоже проверял но там машина 3.1 ГГц 2 ядра 512 Мб получилось примерно в два раза быстрее (не засекал) но тоже не очень. Сейчас буду пробовать пересобирать LCL и тестировать разные опции компилятора.
HomeCraft
новенький
 
Сообщения: 25
Зарегистрирован: 14.01.2008 20:42:46
Откуда: Магнитогорск

Сообщение Attid » 02.02.2008 00:33:51

HomeCraft
запусти с консоли и посмотри\покажи что он там так долго делает, может у тя чего не хвает, или он там белым по черному ругается что у него алергия на мандриву и т.д.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение AMD » 02.02.2008 11:27:03

Из моей практики могу сказать

Сделал маленькую программку

одна форма
2 кнопки
2 edita
3 Label

при нажатии первой кнопки запускается процедура на 15строк

при нажатии второй кнопки запускается процедура на 3строки

В винде программа весит 12Метров
В линуксе 16 метров

Конечно запускается быстро комп мошний одни двух ядерники вокруг

Читал что один хороший программист не помню его имя написал программу под винду с векториальной графикой неплохую которая весила всего 80Килобайт - вот оптимизация!
AMD
постоялец
 
Сообщения: 189
Зарегистрирован: 23.01.2008 22:25:25
Откуда: Кишинев

Сообщение HomeCraft » 02.02.2008 11:51:07

ev писал(а):была бы проблема, значит был бы уже доступен исходник и EXE-шник для изучения форумчанами
их нет - видимо проблемы на самом деле то и нет ;)

Если не верите, то куда поместить исходник и бинарник? Сами попробуйте и вместе будем репу чесать :).
Attid писал(а):запусти с консоли и посмотри\покажи что он там так долго делает, может у тя чего не хвает, или он там белым по черному ругается что у него алергия на мандриву и т.д.

Код: Выделить всё
[user@hostname ~]$ lazarus-ide
TApplication.IconChanged - TODO: convert this message...no implementation in gtk or win32
ЗАМЕТКА: файл настроек CodeTools не найден - используем умолчания
NOTE: help options config file not found - using defaults
TPkgManager.GetWritablePkgOutputDirectory APackage=RunTimeTypeInfoControls 0.1 AnOutDirectory="/home/alexey/.lazarus/lib/RunTimeTypeInfoControls/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=Printer4Lazarus 0.5 AnOutDirectory="/home/alexey/.lazarus/lib/Printer4Lazarus/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=printers4lazide 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/printers4lazide/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=cgiLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/cgiLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=CGILazIDE 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/CGILazIDE/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=MemDSLaz 1.2.1 AnOutDirectory="/home/alexey/.lazarus/lib/MemDSLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=SDFLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/SDFLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=TurboPowerIPro 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/TurboPowerIPro/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=JPEGForLazarus 1.0.1 AnOutDirectory="/home/alexey/.lazarus/lib/JPEGForLazarus/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=fpcunitide 0.1 AnOutDirectory="/home/alexey/.lazarus/lib/fpcunitide/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=ProjTemplates 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/ProjTemplates/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=TAChartLazarusPkg 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/TAChartLazarusPkg/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=SQLDBLaz 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/SQLDBLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=DBFLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/DBFLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=RunTimeTypeInfoControls 0.1 AnOutDirectory="/home/alexey/.lazarus/lib/RunTimeTypeInfoControls/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=Printer4Lazarus 0.5 AnOutDirectory="/home/alexey/.lazarus/lib/Printer4Lazarus/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=printers4lazide 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/printers4lazide/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=cgiLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/cgiLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=CGILazIDE 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/CGILazIDE/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=MemDSLaz 1.2.1 AnOutDirectory="/home/alexey/.lazarus/lib/MemDSLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=SDFLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/SDFLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=TurboPowerIPro 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/TurboPowerIPro/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=JPEGForLazarus 1.0.1 AnOutDirectory="/home/alexey/.lazarus/lib/JPEGForLazarus/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=fpcunitide 0.1 AnOutDirectory="/home/alexey/.lazarus/lib/fpcunitide/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=ProjTemplates 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/ProjTemplates/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=TAChartLazarusPkg 0.0 AnOutDirectory="/home/alexey/.lazarus/lib/TAChartLazarusPkg/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=SQLDBLaz 1.0 AnOutDirectory="/home/alexey/.lazarus/lib/SQLDBLaz/i386-linux"
TPkgManager.GetWritablePkgOutputDirectory APackage=DBFLaz 0.1.1 AnOutDirectory="/home/alexey/.lazarus/lib/DBFLaz/i386-linux"
TMainIDE.DoLoadLFM A /home/alexey/FPApp/Lazarus/umain.pas IsPartOfProject=True
SUCCESS: streaming lfm="/home/alexey/FPApp/Lazarus/umain.lfm"

Только пока происходит торможение - в консоль ничего не выводится. После появления первой строки все происходит быстро. А программа в консоль вообще ничего не выводит.
HomeCraft
новенький
 
Сообщения: 25
Зарегистрирован: 14.01.2008 20:42:46
Откуда: Магнитогорск

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru