Page 28 of 31

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 8:54 pm
by Serge
Евгений ограничил объём когда сделал расшареные длл.
Собственно MIN_DEFAULT_DLL_ADDR = 0x10000000 делит память приложения пополам.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 9:06 pm
by Mario
Но почему из 2 Гб всего лишь 900 Мб? Не логичней ли под библиотеки 0,5 Гб отдать, под выделяемую память 1,5 Гб. Начнешь так большой документ открывать, а память то нема!

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 9:26 pm
by Serge
Mario
Я с тобой согласен, это код надо переделывать.
Кстати куча ограничена 1.5Гб с очень старых времён.

На все наши длл хватит нескольких Мб.

И да, 640 Кб хватит всем.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 9:40 pm
by Mario
Это сказал Билли, а не я. К тому же 640 Кб до сих пор для многих наших приложений хватает. Вот для данных не хватает иногда.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 9:47 pm
by Serge
Это относится к принципам проектирования. 640 кб впишите нужное значение хватит всем. Вики пишет что Билли этого не говорил.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 10:13 pm
by Mario
Ну не знаю кто там как проектирует. Однако если изначально задумывалось отдать приложению 2 Гб, а потом ВНЕЗАПНО задумалось 900 Мб, то второе решение неизвестно чем обосновано. Чужие тараканы, он такие... чужие что ли. :mrgreen:

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 10:34 pm
by Serge
Я поправлю код, вопрос сколько оставить ? 512Мб имхо много. Если бы в системе был файл настроек, но его нет.
MIN_DEFAULT_DLL_ADDR = 0x10000000 это не Гб, это 256Mb а верхняя 512 . Так что длл режут кучу на две неравные части. А верхняя граница кучи немного ниже 1.5Гб.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 10:50 pm
by Mario
Ну, поскольку некоторые наши товарищи заняты портированием Сишных библиотек, то думаю либо 256, либо 512 Мб надо таки оставить под библиотеки.
А кстати идея - может приложению самому определять сколько оно хочет отдать под библиотеки? Или в полете это уже невозможно сделать?

З.Ы. Кстати почему верхняя граница кучи ниже 1,5 Гб - это фундаментальное препятствие или как?

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 11:01 pm
by Serge
Нет в полёте уже не поменять. Не помню почему меньше 1.5 Гб. Скорее всего была причина, а потом забыл исправить.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 11:07 pm
by Mario
А если использовать новый заголовок программ для определения сколько размер отдавать? Для стандартных типов оставим разумный минимум под библиотеки, а для нового заголовка программист будет сам указывать значение.

Re: Новая модель ядра

Posted: Sun Feb 26, 2012 11:14 pm
by Serge
Базовый адрес для загрузки ДЛЛ устанавливается ядром. Он для всех приложений одинаков иначе ДЛЛ не сделать расшареными.

Re: Новая модель ядра

Posted: Mon Feb 27, 2012 12:19 am
by Mario
Мда... дилемма. Ладно давай сделаем пока 256 Мб под библиотеки.

Re: Новая модель ядра

Posted: Mon Feb 27, 2012 8:35 am
by Serge
Изменения в функции 40:
Бит 31 регистра ebx управляет фильтрацией событий мыши.
Бит 31 = 0 - окно всегда получает события от мыши.
Бит 31 = 1 - окно получает события мыши только в активном состоянии.

Планируется:
Бит 30 = 0 - окно получает события от мыши если курсор находится за пределами окна
Бит 30 = 1 - окно не получает события от мыши если курсор находится за пределами окна

Re: Новая модель ядра

Posted: Thu Mar 01, 2012 2:34 am
by Mario
Я восстановил код закомментированный в r. 2414. Этот код вводился еще в ревизиях 1466 и 1513. Без него приложения активно обрабатывающие мышь при перетаскивании окна или изменении размеров окна могут менять положение собственного курсора многократно. Как пример можно посмотреть на реакцию KFM и OpenDialog с этим кодом и без него. Если координаты курсора мыши попадают в "активную зону" приложения, то начинаются чудесатые чудеса. Это именно обработка предотвращающая некорректное поведение активного окна. Не нужно убирать этот код!

Re: Новая модель ядра

Posted: Thu Mar 01, 2012 8:01 am
by Serge
Mario
А теперь запусти плеер попробуй закрыть окно.
Если KFM неправильно мышь обрабатывает, чем другие программы виноваты ?