Переход из Delphi на FreePascal под Windows

Общие вопросы программирования, алгоритмы и т.п.

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

Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 18.11.2010 21:52:19

Имеется проект в виде ряда динамических библиотек, написанных на Delphi7 и содержащие большое колическтво процедур. Возникла проблема в нехватке оперативной памяти для расчетов. Была попытка запустить проект в среде Embarcadero Delphi 2010 на компьютере с 8-ю гигабайтами оперативной памяти и с ОС Windows 7, 64 bit. Однако максимально используемый объем при расчетах - 3 Гб (при превышении которого выдается ошибка "out of memory").
Можно ли переходом на Free Pascal решить данную проблему?
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение Sergei I. Gorelkin » 18.11.2010 22:04:59

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

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 18.11.2010 22:13:27

Sergei I. Gorelkin писал(а):Проблему нехватки памяти, возможно, удастся решить, но вместо нее могут возникнуть другие...

А какую посоветуете версию? Где можно найти?
Я готов попробовать, поскольку иного выхода нет.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение Sergei I. Gorelkin » 18.11.2010 22:53:58

Несколько дней назад вышел релиз 2.4.2, версия для 64-битной винды загружается отсюда: http://www.freepascal.org/down/x86_64/win64.var
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Переход из Delphi на FreePascal под Windows

Сообщение stikriz » 19.11.2010 00:11:43

Inttelc писал(а):Можно ли переходом на Free Pascal решить данную проблему?

А точно Ваши данные займут больше 3Гб?
Это математические расчеты? Типа, матрицы, да?
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 19.11.2010 00:56:40

Спасибо. Удалось скачать по ссылке
ftp://ftp.freepascal.org/pub/fpc/dist/2 ... -win64.exe

Добавлено спустя 3 минуты 8 секунд:
stikriz писал(а):
Inttelc писал(а):Можно ли переходом на Free Pascal решить данную проблему?

А точно Ваши данные займут больше 3Гб?
Это математические расчеты? Типа, матрицы, да?

Да, математическое моделирование переменного магнитного поля. Предел в 3 Гб не дает двигаться дальше.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение stikriz » 19.11.2010 10:04:54

Матрицу надо разбить на кубики поменьше, рещить в них, потом решать в кубиках побольше и т.д.
Машинные методы анализа надо посмотреть. Не знаю что у Вас там, наверняка сложнее. А я решал большие линейные уравнения на Sinclar Spectrum методом итераций. 48кб памяти и 320 кб диск. Матрица была под 300Кб. Тоже бил матрицу на кусочки. Все равно большинство данных в расчете участвует не все время. Значит, это большинство данных в оперативной памяти не нужно. Переход на 64 бит поможет преодолеть ограничение по адресации большого объема данных, но все равно нужно сразу писать правильно, да и работать будет быстрее.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 19.11.2010 13:39:32

Я прорбовал реализовать метод блочных итераций. Получилось не очень. А времени доделывать пока нет. Нужно срочно доделать рассчет.
Скачал lazarus под win32 (lazarus-0.9.28.2-fpc-2.2.4-win32) - запустил свой проект дома - работает
Под win64 (lazarus-0.9.28.2-fpc-2.2.4-win64) - на работе нет. Долго компилирует.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение stikriz » 19.11.2010 17:27:45

Компилится?

Если Вы читаете данные из файла заранее созданного, ну и не только, то обратите внимание, что под 64 бита размерность данных изменилась. Используйте реальные типы данных, а не псевдонимы. Integer, например 64 бита, а был 32... Т.е. структуры, Sizeof_ы искать и править. Это первое что приходит на ум.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Переход из Delphi на FreePascal под Windows

Сообщение Иван Шихалев » 19.11.2010 17:45:14

stikriz писал(а):Integer, например 64 бита

о_О
Насколько мне известно, это не так. 16 в режимах TP и FPC, 32 — DELPHI и OBJFPC.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Переход из Delphi на FreePascal под Windows

Сообщение stikriz » 19.11.2010 20:20:29

Сейчас проверил - так и есть.

Добавлено спустя 2 минуты 7 секунд:
Я был уверен, что Integer должен стать int64, как в Delphi при переходе с 16 на 32 бита из 16 битной стал 32 битным.
Непорядок...
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Переход из Delphi на FreePascal под Windows

Сообщение Mr.Smart » 19.11.2010 22:13:59

stikriz
Пичитайте вот это. Написано убого, но доходчиво.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 22.11.2010 22:10:50

Копированием кода из DLL в основной модуль программы удалось добиться результата - программа считает. Уже пробовал загрузить оперативу по максимуму где-то 7100 Мб. DLL-ки с 32-битным кодом он не загружает. Вообще скаченная мною версия lazarus-0.9.28.2-fpc-2.2.4-win64 какя-то не доработанная (по моему): неудобно искать ошибки в коде. После первой попытки поставить программу на счет на ночь не хватило памяти, lazarus вместо таго чтобы выдать сообщение "out of mamory", как это делает Delphi, просто закрылся. Также, никак не могу разобраться как создавать DLL. В Delphi все просто: создаю новое приложение (libriary), сохраняю, компилирую (даже пустую, без кода) и в папке, в которую сохранил появляется соответствующий *.dll фал. Тут, в lazarus-е выдается ошибка: "Debugger erroe. Ooops, the debugger entered the error state. Save your work now! Hit Stop, and hope the best,we're pulling the plug". dll фал при этом не создается, вернее файл находится в процессе компиляции *.compilled
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение Павел Ишенин » 23.11.2010 05:57:32

А если нажать Ctrl+F9 вместо F9? В дневных сборках этот баг поправлен.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 23.11.2010 10:52:42

Где можно скачать наиболее стабильную версию?
Вот, с горем пополам создал DLL-ку, запустил. Программа считала. Затем, внезапно перестала компилировать, - пишет что отсутствует fpcmemdll.dll.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

След.

Вернуться в Общее

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

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

Рейтинг@Mail.ru