Оптимизация на fpc
Модератор: Модераторы
Оптимизация на fpc
Здравствуйте все.
С проектами fpc и Lazarus. Познакомился недавно и еще не разобрался в структуре этих продуктов. Почитал форум, фак, однако для себя разъяснил далеко не все.
Поэтому задам несколько вопросов, может быть простых, но для меня не совсем ясных.
1. В одном из постов упоминался профайлер. Если я правильно понял это программа для оптимизации программ (в Турбо Паскале под ДОСом был Турбопрофайлер - классная вещь). Что это за программа, где ее можно взять, работает ли она с исходными текстами Лазаря?
2. Что такое svn? В чем особенность svn-версий компилятора и ИДЕ, какие еще бывают версии?
3. Был вопрос об наследовании форм в Лазаре. В ответе сказано, что она не поддерживается на уровне ИДЕ. А на уровне компилятора?
Заранее благодарю за ответ.
PS. Ув. Модератор. Если моё сообщение будет перенесено в какую-либо тему, прошу сообщить куда именно.
С проектами fpc и Lazarus. Познакомился недавно и еще не разобрался в структуре этих продуктов. Почитал форум, фак, однако для себя разъяснил далеко не все.
Поэтому задам несколько вопросов, может быть простых, но для меня не совсем ясных.
1. В одном из постов упоминался профайлер. Если я правильно понял это программа для оптимизации программ (в Турбо Паскале под ДОСом был Турбопрофайлер - классная вещь). Что это за программа, где ее можно взять, работает ли она с исходными текстами Лазаря?
2. Что такое svn? В чем особенность svn-версий компилятора и ИДЕ, какие еще бывают версии?
3. Был вопрос об наследовании форм в Лазаре. В ответе сказано, что она не поддерживается на уровне ИДЕ. А на уровне компилятора?
Заранее благодарю за ответ.
PS. Ув. Модератор. Если моё сообщение будет перенесено в какую-либо тему, прошу сообщить куда именно.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
По пунктам
1. Сказать ничего не могу - на сталкивался. Обычно здравый смысл при написании работает не хуже профайлера.
2. SVN версия - это текщая версия проекта, в которую все вносят изменения и дописывают функционал. Бывает не стабильной, особенно после выхода промежуточной версии. В принципе сейчас проект находится на той стадии, когда можно работать с этой версией.
Ещё бывают промежуточные стабильные версии. Это те версии, в которых баги боле или мене вылизаны и работают они хорошо.
Но эти версии выходят с периодичностьь в 2-3 месяца. Поэтому если вам не критичны последние новые возможности IDE и компилятора - то можно пользоваться ими.
3. Наследование сделано наполовину. т.е. сама IDE не может создать унаследованную форму - для этого надо править вручную lfm и pas файлы. Но ничего страшного в этом нет. После необходимых исправлений IDE нормально отслеживает файт унаследования. На насчёт наследования на уровне компилятора - ему то какая разница? Ведь в итоге получается обычный паскальный код. Более подробно о наследовании смотри на форуме - тут это обсуждалось.
1. Сказать ничего не могу - на сталкивался. Обычно здравый смысл при написании работает не хуже профайлера.
2. SVN версия - это текщая версия проекта, в которую все вносят изменения и дописывают функционал. Бывает не стабильной, особенно после выхода промежуточной версии. В принципе сейчас проект находится на той стадии, когда можно работать с этой версией.
Ещё бывают промежуточные стабильные версии. Это те версии, в которых баги боле или мене вылизаны и работают они хорошо.
Но эти версии выходят с периодичностьь в 2-3 месяца. Поэтому если вам не критичны последние новые возможности IDE и компилятора - то можно пользоваться ими.
3. Наследование сделано наполовину. т.е. сама IDE не может создать унаследованную форму - для этого надо править вручную lfm и pas файлы. Но ничего страшного в этом нет. После необходимых исправлений IDE нормально отслеживает файт унаследования. На насчёт наследования на уровне компилятора - ему то какая разница? Ведь в итоге получается обычный паскальный код. Более подробно о наследовании смотри на форуме - тут это обсуждалось.
alexs писал(а):По пунктам
1. Сказать ничего не могу - на сталкивался. Обычно здравый смысл при написании работает не хуже профайлера.
Я, в свое время, пользовался TurboProfiler. Так вот он позволял сделать следующее: загружаешь откомпилированную программу вместе и исходниками. В исходном тексте ставишь метки замера времени и запускаешь программу на выполение. В итоге получаешь общее время работы программы и время выполнения каждого куска от метки до метки. Очень удобно при выискивании самого медленного куска кода и сравнения различных вариантов процедур.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
gprogiler, вроде есть... В опциях компилятора - связывание есть галочка для генерации информации для него... Правда подобная галочка не срабатывает для valgrind'a ^_^ С профайлером тоже не сталкивался....
UDP: http://www.opennet.ru/docs/RUS/gprof/
UDP: http://www.opennet.ru/docs/RUS/gprof/
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Я работаю с двумя профайлерами - gpprof (не gprof ! ) и valgrind. Первый написан на Дельфи и работает только в Windows, второй работает только в Linux, зато как...
Gpprof - с оконным интерфейсом. Он инструментирует исходники, которые потом надо перекомпилять. Теоретически он может спотыкаться на конструкциях языка, которых нет в Дельфи, но я пишу в дельфи-совместимом стиле и поэтому никаких проблем с FPC не испытываю.
valgrind никаких изменений в программе не требует, за исключением ключа -gl при компиляции - но и он нужен только для того, чтобы видеть в отчетах имена ф-ций вместо адресов. Работает только с командной строки, придется привыкать.
alexs
Насчет головы согласен на все 150%, но эти штуки иногда показывают такое, что меняет представления о сути вещей на корню.
Gpprof - с оконным интерфейсом. Он инструментирует исходники, которые потом надо перекомпилять. Теоретически он может спотыкаться на конструкциях языка, которых нет в Дельфи, но я пишу в дельфи-совместимом стиле и поэтому никаких проблем с FPC не испытываю.
valgrind никаких изменений в программе не требует, за исключением ключа -gl при компиляции - но и он нужен только для того, чтобы видеть в отчетах имена ф-ций вместо адресов. Работает только с командной строки, придется привыкать.
alexs
Насчет головы согласен на все 150%, но эти штуки иногда показывают такое, что меняет представления о сути вещей на корню.
- Alexander
- энтузиаст
- Сообщения: 891
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Vlad04 писал(а):2. Что такое svn? В чем особенность svn-версий компилятора и ИДЕ, какие еще бывают версии?
SVN это SubVersioN - система контроля версий и совместной разработки.
Много людей делают свои добавления к общим исходникам. Всё это
разруливается и поддерживается откат версий.
Для пользователя же, который в разработке не участвует, SVN это
способ получить самые свежие исходники. Например, изменения, сделанные
за последние несколько минут.
Другие версии (в виде архивов) это или релизы, или "снимки" SVN за какой то
момент времени.
Alexander писал(а):Для пользователя же, который в разработке не участвует, SVN это
способ получить самые свежие исходники. Например, изменения, сделанные за последние несколько минут.
Другие версии (в виде архивов) это или релизы, или "снимки" SVN за какой то
момент времени.
Можно этот вопрос осветить по подробнее?
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Vlad04
http://ru.wikipedia.org/wiki/Svn
http://sourceforge.net/svn/?group_id=89339
снимки тут -
http://www.hu.freepascal.org/lazarus/
если хотишь svn версию и напряг с трафиком то поищи на форуме архив или спроси у ev где он лежит
http://ru.wikipedia.org/wiki/Svn
http://sourceforge.net/svn/?group_id=89339
снимки тут -
http://www.hu.freepascal.org/lazarus/
если хотишь svn версию и напряг с трафиком то поищи на форуме архив или спроси у ev где он лежит
Attid писал(а):Vlad04
http://ru.wikipedia.org/wiki/Svn
http://sourceforge.net/svn/?group_id=89339
снимки тут -
http://www.hu.freepascal.org/lazarus/
Спасибо, теперь более-менее ясно.
