Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как аддрессовать не 2Gb, а 4Gb памяти?


Страницы:   1 2

Prok186 ©   (2011-06-20 20:08:00) 

Без дополнит. ухищрений под Win7 64bit удаётся писать на Delphi XE приложения, использующие до 2Gb оперативной памяти. Судя по мануалу, можно расширить диапазон до 4Gb :   http://docwiki.embarcadero.com/RADStudio/XE/en/Increasing_the_Memory_Address_Space
Однако ж, указанный флаг установить в *.dpr файл проекта мне не удаётся: компилятор пишет, что такого не знает. Что делать?
Вот этот флаг:
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}


KilkennyCat   (2011-06-23 01:25:00) [21]


> Так что кроме гимора от линуха в расчётных приложениях толку
> ноль.

смелое заявление.
но глуполамерное.


Prok186   (2011-06-22 22:35:00) [22]


> Ну а если совсем супер-пупер оптимизация и скорость расчётов
> нужна, то выбор Windows в качестве ОС надо бы сменить

Пробовали переходить на Linux (какой именно - не помню): быстродействие абсолютно не меняется. Специально написали тестовые программки на C++ для Линукса и Винды (обработка больших массивов - заполнение арифметикой или функциями). Так что кроме гимора от линуха в расчётных приложениях толку ноль.


Loginov Dmitry   (2011-06-22 22:19:00) [23]


> К сожалению, многие участники форума не понимают, что Delphi
> - не только для написания красивой обёртки для БД.


На основании чего сделан столь категоричный вывод о многих участниках форума? Не исключаю, что есть и такие. Любят задавать вопросы в конференции "начинающие", но в обсуждениях, как правило, не участвуют.
Те кто, принимают участие в обсуждениях, оказывают реальную помощь своими советами, прекрасно все понимают.


> По быстродействию (расчётные методы) код на Delphi лишь
> немного уступает Visual C++, и опережает примерно в 1.5раза
> Builder.


Плюс/минус полтора раза - это ерунда (как правило). Купив более мощное железо, можно обеспечить еще большее ускорение.
Гораздо большее восхищение (по крайней мере у меня) вызывает оптимизация библиотек BLAS и Lapack, используемых как основа почти любого современного математического пакета (Matlab, Mathcad, Scilab и др.).
Например, скорость работы стандартного алгоритма матричного умножения, реализованного в библиотеке BLAS (обычно это Atlas.dll) может запросто оказаться в 100 раз выше, чем у стандартного алгоритма матричного умножения, реализованного на языках программирования Delphi / C++, а тем более .NET.


sniknik   (2011-06-22 14:02:00) [24]

> ты какую часть слона нащупал ? ;)
заднюю похоже...

> Так это проблемы конкретно у него.
спасибо Кэп! как бы я это без тебя понял... очевидно же, пусть пишу это прямым текстом, но понимания факта "ни в зуб ногой".


Inovet   (2011-06-22 13:08:00) [25]

> [11] sniknik ©   (22.06.11 10:17)
> если он из-за этого такой сложный что конкретно ты с ним не справляешься?

Так это проблемы конкретно у него.


Игорь Шевченко   (2011-06-22 12:04:00) [26]


> опять имхо, т.к. сталкиваюсь только с таким)


ты какую часть слона нащупал ? ;)


Ega23   (2011-06-22 10:44:00) [27]


> По быстродействию (расчётные методы) код на Delphi лишь
> немного уступает Visual C++, и опережает примерно в 1.5раза
> Builder.


Сомневаюсь. Если с умом к делу подходить, то скорость примерно одинаковой должна быть.
Ну а если совсем супер-пупер оптимизация и скорость расчётов нужна, то выбор Windows в качестве ОС надо бы сменить.


sniknik   (2011-06-22 10:17:00) [28]

> код на Delphi лишь немного уступает Visual C++
ноги, крылья... хвост! вот что главное. © известный мультфильм.

код, имхо, не уступает ничем... но главное все таки Алгоритм! неважно на каком языке. ну вот какое значение имеют миллисекунды выигрыша одного кода перед другим, если изменением алгоритма можно эту часть убрать вообще, в принципе, и "сэкономить" минуты (например)...
и кстати для алгоритма важна не так скорость скомпилированного кода, как его понятность... (С-шники за своими "деревьями", быстрыми велосипедами сортировок, перемещениями указателей вместо копирования, ... , часто не видят "леса"... ну в смысле "а нафига это все?". опять имхо, т.к. сталкиваюсь только с таким)

> Критичные к времени куски кода написаны у нас на Visual Studio C++ в виде DLL.
да, да знаю такой подход... одно время меня к нему тоже "склоняли", была задача где клиент сказал "главное скорость!", ну а раз скорость то - "давай вставки, пиши на С", и т.д. (слова С-шника), только там была еще важна скорость разработки, а С я не очень... ну могу конечно, но не то (дольше будет. + кроме этой были задачи, связанные), поэтому ему сказали "а напиши ка ты это сам"... ну он и написал, обработка 5 часов, очень быстрыми методами, с сортировками/поиском по самым быстрым хешам, и т.д. (нафига? если поиск используется максимум пару раз (в лучшем случае вообще ни разу), зачем хеш на все данные? ну и т.д.). ну он убрал, оптимизировал - 3,5 часа... сказал "все. лучше нельзя, данных все таки много"... ага, особенно если по ним вместо нужного делать кучу быстрого...
в итоге закончил свое, и вместо "вставки"  написал по своему, на "чистом" дельфи, с другим алгоритмом (а разница? если в итоге тоже самое)... получилось где-то 11-30 сек... это было даже не смешно.
но положительные моменты от этого были, хотя бы в том, что ламер/апологет С перестал его превозносить, и "опускать" дельфи на каждом углу. при мне по крайней мере. но не убедился - "не, а если бы я сделал также, только на С" (кто мешал? ты же делал задачу, а не перевод) "было бы быстрее" (давай проверим? бери мой код переводи в С и посмотрим) "не, ну тут вот этого нет, и вот такого нет, не получится прямо вот как" (ну еще бы, а самописные им аналоги почему то медленнее. ну не верю что он не пробовал, просто не получилось иначе все бы об этом знали)  "и вообще работать нужно, а не фигней маяться. С все равно самый быстрый" (а смысл в его быстроте, если он из-за этого такой сложный что конкретно ты с ним не справляешься?)


Prok186   (2011-06-22 08:39:00) [29]

Прежде чем книжку писать, надо научиться читать: выше сказано, что приложения ВКЛЮЧАЮТ  в себя базы данных. В серьёзных научных приложениях они тоже нужны: для хранения исходных данных в виде связанных таблиц для различных вариантов задачи, и для хранения результатов расчётов (и ссылок).


KilkennyCat   (2011-06-22 08:20:00) [30]

книжку что ли написать... "Нетрадиционные методы. Использование Делфи без БДЕ и не для БД"


Ega23   (2011-06-22 08:10:00) [31]


> К сожалению, многие участники форума не понимают, что Delphi
> - не только для написания красивой обёртки для БД.


Спасибо, поржал. Заряд хорошего настроения с утра - отличный подарок на ДР!  :)))


MBo   (2011-06-22 05:35:00) [32]

>вдвое более подробной (по одной координате)
Вот я потому и спрашивал, что для серьезных расчетных задач требуемый объем памяти обычно растет полиномиально в зависимости от дискретности сетки (в трехмерном случае - как обратный куб шага ячейки), и двойной запас памяти практически ничего не решает - всё равно приходится дробить задачи.


Prok186   (2011-06-22 04:41:00) [33]

Смысл 2Гб --> 4Гб? Конечно есть. Мы на работе используем Delphi для создания приложений расчётной гидродинамики: там есть и базы данных, и графика OpenGL для 3D визуализаций, и обычная, и создание анимаций (AVI-Server тоже написано на Delphi). Приложения - многопоточные (расчётов много), причём очень критичные к объёму памяти. Удвоение доступной памяти - весьма заметно: память, есс-нно, выделяется динамически: вдовое больший её объём означает возможность применения вдвое более подробной (по одной координате) расчётной сетки... К сожалению, многие участники форума не понимают, что Delphi - не только для написания красивой обёртки для БД. По быстродействию (расчётные методы) код на Delphi лишь немного уступает Visual C++, и опережает примерно в 1.5раза Builder. Критичные к времени куски кода написаны у нас на Visual Studio C++ в виде DLL.


Германн   (2011-06-22 02:05:00) [34]


> Prok186 ©   (21.06.11 20:53) [4]

А ответить на вопрос
> MBo ©   (21.06.11 05:41) [3]
>
> А есть ли смысл?

что мешает?


Prok186   (2011-06-21 20:53:00) [35]

С флагом разобрался сам: его константа описана в Windows.pas, так что Windows надо перед установкой флага прописать в Uses.
А где можно скачать пробную Delphi 64-bit? Она ведь уже вышла.


MBo   (2011-06-21 05:41:00) [36]

А есть ли смысл?
Маловероятно, что в наличии задача, которой требуется именно "от двух до четырех" гигабайт.


KilkennyCat   (2011-06-21 00:37:00) [37]

http://forall.ru-board.com/egor23/online/FAQ/Virtual_Memory/Limits_Virtual_Memory.html#p2


Eraser   (2011-06-20 20:13:00) [38]

> [0] Prok186 ©   (20.06.11 20:08)

не мучайся, подожди 64 битный компилятор или устнови бету.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо