Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: www.rascalspb.narod.ru
 Профиль | | #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
Доо))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам