powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разделение памяти между модулями, ShareMM итп
10 сообщений из 10, страница 1 из 1
Разделение памяти между модулями, ShareMM итп
    #40084678
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня,

разбираюсь с темой увеличения памяти через {$SETPEFLAGS $20} или {$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE} в x32 приложениях и мучает вопрос. Можно ли заставить Delphi в разных модулях (dll, ocx итп) совместно используемых в приложении использовать разные менеджеры памяти и применять опцию {$SETPEFLAGS $20} только в рамках одного из модулей?
Тут не совсем в тему но в нужную сторону кое что описано но конечного понимания пока не возникло.
Хорошо бы что то почитать на эту тему.

Спасибо
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084682
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun
Можно ли заставить Delphi в разных модулях (dll, ocx итп) совместно используемых в приложении использовать разные менеджеры памяти и применять опцию {$SETPEFLAGS $20} только в рамках одного из модулей?


Посмотрите ShareMem.pas: он используети borlndmm.dll (или что там сейчас), если вы его поменяете (назовете MyMM.pas и измените названние длл, в проект включать первым), то может сработать, но взаимодействие между модулями с разными ММ придется делать с учетом ограничений.
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084683
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тот тут вроде понятно расписано
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084728
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun
Можно ли заставить Delphi в разных модулях (dll, ocx итп) совместно используемых в приложении использовать разные менеджеры памяти
Именно так все и происходит, если не приложить дополнительных усилий и не заставить их использовать разные модули общий менеджер памяти

Другой вопрос, что я не уверен, что {$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE} можно использовать в dll
hlopotun
Хорошо бы что то почитать на эту тему.
Рихтер
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084737
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"применять опцию {$SETPEFLAGS $20} только в рамках одного из модулей" нельзя конечно - это флаг для процесса.
Да, и как вы себе представляете передачу указателя между модулями, если бы то, чего вы хотите, было возможным??
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084784
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot _Vasilisk_#22348798]
hlopotun

............
Другой вопрос, что я не уверен, что {$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE} можно использовать в dll
............

В тесте, когда инструкция стоит в основной программе и в dll работает, по крайней мере в dll процедуре до 3Гб памяти выделяет, без этой инструкции провоцирует исключение OutOfMemory.
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084786
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
"применять опцию {$SETPEFLAGS $20} только в рамках одного из модулей" нельзя конечно - это флаг для процесса.
Да, и как вы себе представляете передачу указателя между модулями, если бы то, чего вы хотите, было возможным??

да, согласен. Нет никакой гарантии что за пределами 2Гб не будет выделена память мод функции или что либо другое используемое из других модулей. Другими словами или везде или нигде. А учитывая наличие модуля без исходников из D5 (генератор отчётов) идею можно похоронить. Потому как минимум этот модуль перевести на новую модель не получится, даже если везде перевести конвертацию из Pointer в Integer на Pointer в NativeUInt и выключить контроль переполнения.
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084790
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hlopotun
А учитывая наличие модуля без исходников из D5 (генератор отчётов) идею можно похоронить.

Можно попробовать. В генераторе отчетов по идее не должно быть указательной магии.
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084797
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Угадай автора по названию темы".
...
Рейтинг: 0 / 0
Разделение памяти между модулями, ShareMM итп
    #40084812
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun,

ОФФ

Я подумал, раз вы в теме менеджеров памяти так плотно закопались, то (чтобы расширить горизонты) посоветую ещё вот эту страничку
  • https://github.com/d-mozulyov/BrainMM . Там нет ответов на вопрос топика, просто инфа по менеджеру памяти BrainMM и всякие сравнения, надо листать вниз. Там в тексте есть дальнейшие ссылки.
  • Так же и эту https://github.com/andremussche/scalemm по менеджеру памяти ScaleMM .
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разделение памяти между модулями, ShareMM итп
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]