FPC на ARM

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

FPC на ARM

Сообщение Mirage »

Кто-нибудь использовал FPC для ARM? Конкретно под Андроидом.
Интересует как там с качеством кода обстоят дела.
Имеет ли смысл что-либо ресурсоёмкое писать под FPC, или только на C?
Сомнения в свете недавних сравнений Delphi с Java и даже Javascript возникают.
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

FPC+Android http://www.freepascal.ru/forum/viewtopic.php?f=1&t=5975&st=0&sk=t&sd=a
PascalGUI, Паскаль на Android http://www.freepascal.ru/forum/viewtopic.php?f=1&t=6772
PS: Я так и не смог поставить fpc на Android (root), проблемы с "урезанным" интерпретатором :oops:
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Спасибо, хотя вопрос и не о том.
А конкретный такой вопрос о качестве генерации кода FPC под Android.
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

конкретный такой вопрос о качестве генерации кода FPC под Android

Имхо, бинарик генерированный fpc будет чуть больше аналогичного gcc, но его запросто можно пере компилировать под i386(linux) и даже возможно windows
Имеет ли смысл что-либо ресурсоёмкое писать под FPC, или только на C

Медиаконвертер для Android :?: Главный тормоз на Android это Java :evil:
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Как известно в Android используется эмулятор регистровой байт машины. Все (практически) пользовательские приложения написаны на Java и транслированы в данный байт-код. FPC не умеет генерировать данный байт-код.
FPC генерирует код для ARM везде одинаково и он не зависит от типа ОС.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Имхо, бинарик генерированный fpc будет чуть больше аналогичного gcc, но его запросто можно пере компилировать под i386(linux) и даже возможно windows


Да пусть будет больше. Меня скорость волнует.

Медиаконвертер для Android Главный тормоз на Android это Java


Медиаконвертеров и так как грязи. Я по привычке графикой собираюсь заниматься. Софтовой и аппаратной.
Приличная GUI-библиотека у меня даже есть. Не зависит от того, кто и как будет её контролы рисовать, но написана на Паскале.
Вот и думаю.
Насчет тормозов Java и особенно Dalvik не уверен. Java давно обгоняет Delphi (а значит и FPC) по производительности на i386. И даже Javascript обгоняет, что вообще уже ни в какие ворота не лезет.
Самое печальное, что перспектив изменения этой ситуации никаких нет. Embarcadero тут проблемы вообще не видит. У команды FPC был замечательный шанс прикрутить поддержку LLVM, но, похоже, это никому не нужно. Хотя это решило бы проблему.
Для PC это еще ладно, там все равно в основном вызовы API, да и мощи достаточно, но на Андроиде это уже неприемлимо. Больно разные девайсы.

Как известно в Android используется эмулятор регистровой байт машины. Все (практически) пользовательские приложения написаны на Java и транслированы в данный байт-код. FPC не умеет генерировать данный байт-код.


А еще вода мокрая, ага.

FPC генерирует код для ARM везде одинаково и он не зависит от типа ОС.


Мой вопрос, собственно, и состоял в том, как он его генерирует?
Как для i386, или, может быть, более эффективный? Все таки ARM вроде более прямая вещь, нежели i386 и вменяемый кодогенератор написать для ARM должно быть проще.
Max Rusov
постоялец
Сообщения: 191
Зарегистрирован: 25.04.2009 15:46:03

Сообщение Max Rusov »

Mirage писал(а):Java давно обгоняет Delphi (а значит и FPC) по производительности на i386.

Британские ученые доказали?...
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Max Rusov писал(а):Британские ученые доказали?...


Eric Grange - британец?
https://forums.embarcadero.com/thread.j ... tstart=120
http://delphihaters.blogspot.com/2011/0 ... elphi.html
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

http://delphihaters.blogspot.com/2011/03/scimark2-and-delphi.html
translate.google.ru
Лоис сказал ...

Просто мои 2 цента:

0) вы должны использовать "fastcode" библиотеки (http://fastcode.sourceforge.net/)
1) "Delphi" код далеко не оптимизированы
2) компилятор не настроен правильно (например, ложные ")
3) конфиг FastMM4 это "неизвестно", т.е. вы используете оптимизированный код?
4) Использование "GetTickCount" не нормально. Используйте "QueryPerformanceCounter" или по крайней мере "GetTickCount64" вместо
5) Отсутствие ООП на всех здесь.
6) Чисто "математические" не целью Delphi: Рассмотрим для сравнения языков с помощью "реальный случай / Обычный пользователь" приложения
7) ...
Cheers;)
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Все пункты мимо.
Но все таки хотелось бы по теме.
Вобщем, как я понял, под АРМ никто не писал...
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Писали и не мало, как Linux ARM так и WinCE ARM. Только вот только анализом кода не занимались.
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

В FPC один кодогенератор на всех. Генерирует "обобщенные" инструкции из небольшого набора, которые потом отображаются в набор инструкций конкретного процессора по возможности один-в-один. Когда один-в-один не получается, одна обобщенная инструкция превращается в несколько инструкций процессора. В среднем на ARM получится меньше инструкций, чем на i386, но разница отнюдь не на порядки.
Ответить