Будет ли свопинг на машине с ОЗУ 4 ГБайт ???

Тема в разделе "WASM.WIN32", создана пользователем ksacvet777, 13 фев 2007.

  1. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    MrMadguy
    -- уже поправили .

    Ладно .. ч мбольше ОЗУ , тем лучше . никто с этим спорить не будет.

    А как я могу для заданного приложения запретить свопигн ????
    если такое возможно .
     
  2. Levis

    Levis New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2007
    Сообщения:
    1
    Booster
    У каждого процесса по 2 гига, остальные 2 - общие, которые в нормальном случае отданы нулевому кольцу.
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Я тут на С# столкнулся с приколом. Как известно там есть автоматический сборщик мусора. Только у меня почему-то он работает очень странно, память жрёт почём зря. Даже если уже кончилась оперативная память он всё равно не освобождает уже не нужную, а берёт из свопа. Это конечно не проблема OS, а проблема сборщика, но всё же не очень здорово. И вообще этот С# памяти жрёт очень много, и на каждый вызов таймера забирает дополнительную и ни фига не освобождает, вообщем хрень ещё та.
     
  4. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Я с ещё большим приколом столкнулся: отключил своп и программы под .net начал запускать наравне с обычными. Так вот, как только память заканчивается - проги начинают падать с AV независимо от того, на чём написаны. Так что управляемый safe код никакой не safe на самом деле, падает только в путь.

    А памяти .net жрёт по определению больше, это понятно (и печально). Кроме того в ряде случаев GC поток банально зависает и сборка мусора прекращается. У Рихтера описывались условия при которых это происходит.
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    roman_pro
    А можешь поподробнее об этих условиях? У меня "Рихтер Дж. Программирование на платформе Microsoft .NET Framework", но я там этого не встретил. Просто у меня сейчас шарповый проект, и хочется сделать его работоспособным. Эта прога жрёт памяти очень много, ещё я создаю в ней дополнительный поток, и она ни как не хочет у меня стабильно работать, периодически эксепшен вылетает где-то в системной библиотеке в контроле ListView.

    B вообще у меня сложилось впечатление что сборщик мусора в конце концов заберёт всю память (и своп тоже), и память будет просто перетекать из одного приложения в другое, но свободной не будет вовсе.
     
  6. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Хукните #PF, сразу увидите как часто винда запихивает в своп страницы.
    При 512Mb у меня она успивает скинуть страницу (с адресом в edi) между коммандами:
    movsb
    jmp [edi]
    При 2Гб уже реже, но все равно довольно часто...
     
  7. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    Тут такая проблема
    - Требуется приложение , оперирующее с большим массивом - 650 мегабайт , читает и пишет в него . Всё бы ничего , но главное требование - быстродействие !!!

    Если при чтении или записи в то место , в которое долго не было обращения компьютер будет читать с данные с диска, то о каком быстродействии говорить !!!
    Это неприемлимо .

    Как бы мне запретить свопигн для процесса , если это возможно в винде .

    Если нет , то возможно ли это в других ОС ?????


    ..спасибо заранее..
     
  8. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    ksacvet777
    Если есть деньги, то лучше взять GC-RAMDISK. Плюс в том, что по мере апгрейда на более новую платформу (с ДДР2 памятью), старую память не придется выкидывать, а можно будет в него воткнуть (к тому-же сейчас 1Гб DDR400 стоит менее 80у.е.). Будет гарантированно 4-гбайтный диск, с которого можно быстро грузить ОСь (конечно не Висту ;) ), и вообще использовать как основной компонент бесшумного ПК. Минус - скорость первой версии, ограничивается SATA интерфейсом, до 150мб/сек, что конечно очень печально. Да, и чтобы данные могли неделю прожить после выключения - желательно питание модернизировать (отдельный БП, или мощную АКБ приаттачить).
     
  9. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    ksacvet777
    чет мало че понял.. может тебе VirtualLock нужен? Работает только при действующей привилегии SeLockMemoryPrivilege
     
  10. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    alpet
    - очень интересно ...

    Спасибо за наводку , смотрю в гугле- что же это за зверь такой , GC-RAMDISK .

    С деньгами то не проблема, возьму , если понадобится .
    Nouzui
    и вам спасибо , разберусь чуть позже .. :)
     
  11. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    alpet

    http://thg.ru/storage/20050910/index.html

    и

    http://www.ixbt.com/storage/gigabyte-iram-p1.shtml

    действительно !!! очень интересная штука !!!

    , а вы сами то с ней работали ?????
     
  12. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    так в нём можно и подкачку хранить !!!!

    и критические по быстрому доступу данные !!!
     
  13. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    [DELETED]
     
  14. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Ну значит невнимательно 19ю главу читали, в частности про вызов метода Finalize. (стр. 396, 2е издание):

     
  15. bodomus

    bodomus New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2006
    Сообщения:
    6
    я так понимаю вопрос поставлен будет ли свопить ответ нет. Если свопа нет кужда свопить ?
    А если поставишь несколько монстров типа музыкального софта, то в определенный момент когда софту понадобится выделить или зарезервировать память а свободной физической не будет что делать ОС ? куда сбрасывать устаревшие страницы ? и где взять место чтобы выделить память ?
     
  16. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Выше об этой ситуации уже писал:
    Т.е. программы кидают AV, а система кидает сообщение в таком убогом MessageBox'е 16ти разрядном (без визуальных стилей): "Свободная виртуальная память системы заканчивается. Windows увеличит размер файла подкачки....". Вообщем обычно проще нажать reset и не мучиться.
     
  17. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Меня особенно прикалывает в net то, что GC и поток программы вообщем-то работают не зависимо, и память может кончится в любой момент, а также другие ресурсы, а сборщику может быть по барабану. Рихтер говорит о том, что всё что требует ресурсов надо оборачивать в try. Так какое же нафик тут удобство программинга, когда ты не контролируешь мусор, и надо ловить всякие исключения. Ручками лучше, так как и ресурсов меньше жрёт, и если утекает винишь себя, а не чешешь долго репу в непонятках.
    Я конечно понимаю что и на асме может кончится память, но в Net наверняка не знаешь освободиться или нет.
     
  18. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Недавно начал работать с железом, и по этому возможно мои вопросы покажутся глупостью:

    ksacvet777
    вы говорите что появились новые машины с 4гб озу, что то я не допонимаю. У меня Intel P4, с матерью от ASUS, 4 гнезда под ОЗУ, видел 1 гб карточки озу. И что мне мешает подключить 1 гб карточки 4 штуки?

    RAM-диск - это физическая примочка к компу? Если так, то через че он подключается?
    У меня 1 HDD, плюс 2 DVD-ROM.
     
  19. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    По поводу C#:
    GC (Garbare Collection, он же сборщик мусора) конечно отстойный спорить не буду.

    Про Thread (потоки) не все так просто с Visual Control'ерами, там поток дожен к делегату подключаться, или же анонимный делегат создавать нужно. Я к примеру активно пользуюсь патоками, и вроде не раз exception не возникал, хотя когда я тока пытался опирировать с ними (незная как нужно это делать) у меня постоянно вылетал Cross-Thread Exception(Debug mode), а в релизе всякое с компонентом необычное происходило :)
     
  20. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Arthur
    Надо указывать чипсет. Вот его устройство и мешает подключить 4ГБ. Так как линий адресса 32. А под устройства начиная от биуса и видео карты, требуется адресатное пространство в памяти соответствующая их объему. Проще всего было не заморачиваться и сделать поддержку 3ГБ озу и 1ГБ отвести под нужды других устройств.
    Есть чипсеты которые поддерживают до 4ГБ озу при этом часть резервируется под нужды PCI устройств.


    Вроде как имеется ввиду RAM-диск это область в памяти зарезервированная и она работает как диск. Это еще в ДОСе было, винчестера нет, создал RAM-диск загонишь туда пару дискет и работаешь нормально.
    Хотя есть устройства на основе SDRAM которые подключаются по USB и виден как диск.