Страница: 1 |
Страница: 1 |
Вопрос: Половая дискриминация памяти
Добавлено: 12.12.09 11:56
Автор вопроса:
VβÐUηìt | Web-сайт:
Допустим есть программа, которая написана не на .NET. Она висит фоне, и вызывается по нажатии клавиши. Винда, видя что она не используется, через некоторое время прекладывает ее на жесткий диск в файл подкачки, в результате чего первый вызов жутко тормозный. Вопрос в следующем: можно ли процессу задать какие-нибудь атрибуты так, чтобы он всегда был в оперативной памяти, и винда не засовывала его в файл подкачки как неиспользуемый?
Заранее благодарен.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа: VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 13.12.09 12:08
Сложно?
Номер ответа: 2
Автор ответа: Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 14.12.09 01:21
ближе к невозможно наверно. невыгружаемая память есть только у ядра, аллоченная функцией. а те страницы, которые выдаются секциям кода данных итп - по умолчанию свопливаемые. так что либо пиши дров, меняй атрибуты страниц, либо делай поток с циклом, который проходит все твое АП и перебирает байтики, чтобы страницы не свопились как неиспользуемые. Про первое уже мало что помню - почитай таненбаума или руссиновича. Там много интересных нюансов. Я как то писал дров, который преобразовывал виртуальные адреса в физические, но вроде регистр CR3 меня убил. Кароч попробуй.
Номер ответа: 3
Автор ответа: UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #3
Добавлено: 14.12.09 01:46
Или интегрируй свою прогу в ядро винды))))
Номер ответа: 4
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 14.12.09 10:02
Попробуй поиграть с SetProcessWorkingSetSize (dwMinimumWorkingSetSize).
Номер ответа: 5
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 14.12.09 10:05
Ну, или, если есть желание повозиться с памятью, пробуй VirtualLock.
Только так ли это нужно? Гарантий особых под разные оси никто не даст - а проблем хватануть можно...
Номер ответа: 6
Автор ответа: VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #6
Добавлено: 14.12.09 13:13
Мне только XP, Vista и 7)))) А сервиспаки особой васи недодут. Значит, воспользуюсь SetProcessWorkingSetSize. Спасибо.
Номер ответа: 7
Автор ответа: VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #7
Добавлено: 19.12.09 22:36
Внатуре помогло))) Круть просто! Откусил 40 метров на свою прогу и забыл про тормоза!
Номер ответа: 8
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 21.12.09 10:04
Ну ты же понимаешь что злоупотреблять этим не следует?
Номер ответа: 9
Автор ответа: VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 21.12.09 18:36
Доо))