Показать полную графическую версию : [решено] Скрипт применения твиков в зависимости от объема памяти. Как?
Подскажите пожалуйста скрипт который бы вносил в реестр определенный твик в зависимости от установленной оперативной памяти в компе.
Допустим если памяти имеется 0-500 то такой то твик, 500-1000 - такой то... 1000-1500 - такой то... 1500-2000 - такой то.... 2000 и более - такой то....
Пример одного из твиков:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"PagingFiles"=hex(7):43,00,3a,00,5c,00,70,00,61,00,67,00,65,00,66,00,69,00,6c,\
00,65,00,2e,00,73,00,79,00,73,00,20,00,31,00,35,00,30,00,30,00,20,00,31,00,\
35,00,30,00,30,00,00,00,00,00
1. По-моему windows это сама делает, однако именно её регламент я не знаю.
2. Надо сразу же определиться в том, что x86 не видит более 3.5~ Гб, а сервера с ключём /3Gb может и видят.
3. и нижний предел тоже можно прикинуть, скажем 128мб, ибо сейчас адекватно не бывает ниже :)
offtop:
Pozia, мне нравиться, что здесь тоже 00,00,00\ байты с чем я сам и борюсь, хотя каждому своё :)
1. По-моему windows это сама делает, однако именно её регламент я не знаю. »
криво делает, не так как нужно
2. Надо сразу же определиться в том, что x86 не видит более 3.5~ Гб, а сервера с ключём /3Gb может и видят. »
знаю
3. и нижний предел тоже можно прикинуть, скажем 128мб, ибо сейчас адекватно не бывает ниже »
все бывает
$a = MemGetStats()
Select
Case $a[1] <= 500
RegWrite($twik1)
Case 500 < $a[1] <= 1000
RegWrite($twik2)
Case 1000 < $a[1] <= 2000
RegWrite($twik3)
Case ELSE
RegWrite($twik4)
EndSelect
kaster, неверно память определяет. У меня 4 гига а выполняется RegWrite($twik2)
Правда я так записал:
$a = MemGetStats()
Select
Case $a[1] <= 500
RunWait("REGEDIT /S 1.reg")
Case 500 < $a[1] <= 1000
RunWait("REGEDIT /S 2.reg")
Case 1000 < $a[1] <= 2000
RunWait("REGEDIT /S 3.reg")
Case ELSE
RunWait("REGEDIT /S 4.reg")
EndSelect
ммм.... потому что я дурак, написал за 3 мин по наитию, и в голове все смешалось :)
надо так
$a = MemGetStats()
Select
Case $a[1] <= 500
RunWait("REGEDIT /S 1.reg")
Case 500 < $a[1] AND $a[1] <= 1000
RunWait("REGEDIT /S 2.reg")
Case 1000 < $a[1] AND $a[1] <= 2000
RunWait("REGEDIT /S 3.reg")
Case ELSE
RunWait("REGEDIT /S 4.reg")
EndSelect
saavaage
01-08-2010, 02:20
Pozia, один нюанс - память измеряется в KB, поэтому все значения $a[1] надо умножить на 1024 ...
Просто так для проформы прикладываю свой вариант скрипта по автоматическому заданию размера файла подкачки (может пригодится народу):
$a = MemGetStats()
Select
Case $a[1] <= 261963
RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 512 512"))
Case 261963 < $a[1] AND $a[1] <= 523926
RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 1024 1024"))
Case 523926 < $a[1] AND $a[1] <= 1047852
RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 1536 1536"))
Case ELSE
RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 2048 2048"))
EndSelect
Если отключить файл подкачки, то ключ принимает значение: "PagingFiles"=hex(7):00,00,00,00
Через батник это задается так:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v testKeyBat /t REG_MULTI_SZ /d "\0" /f
А через AutoIt у меня получается либо hex(7):00,00 в таком варианте:
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "")
либо hex(7):00,00,00,00,00,00 в таких случаях:
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", @LF)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "" & @LF)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "" & @LF & "")
А как же задать hex(7):00,00,00,00 ?
P.S.
saavaage, наверное, лучше использовать @HomeDrive & "\pagefile.sys" вместо "C:\pagefile.sys"
saavaage
08-08-2010, 00:51
seriych, согласен с лучше использовать @HomeDrive & "\pagefile.sys" вместо "C:\pagefile.sys" », но дело в том, что файл подкачки не обязательно надо располагать на системном разделе. Есть мнения, что его лучше, вообще, кидать на другой жесткий диск (для улучшения производительности)...
saavaage,
Вообще мнений есть много :)
И что на системный лучше не располагать, и на диск с торрентами... ИМХО это имеет смысл, если мы файл подкачки кинем на другой ФИЗИЧЕСКИЙ диск. А другой логический- один черт.
А @HomeDrive лучше использовать, хотябы потому что он заведомо существует, в отличие от диска C :)
Ну а как добавить ключик не в курсе? А то пока так использую:
ShellExecute(@ComSpec, '/c reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "\0" /f', '', '', @SW_HIDE)
Работает, конечно, но хотелось бы узнать, как стандартным RegWrite сделать.
На всякий случай, зачем это нужно:
1) на некоторых нетбуках 2-4ГБ диски и файл подкачки лучше отрубить, иначе вечные жалобы на нехватку места.
2) Есть мнение, что лучше сначала обнулить файл подкачки, а после перезагрузки задать фиксированный, чтобы он был менее фрагментирован.
saavaage
08-08-2010, 13:46
seriych, см. http://forum.oszone.net/thread-174885.html сама прога здесь http://forum.oszone.net/thread-124374.html
хотя я бы не загонялся и делел очиску через
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "")
saavaage,
Ну не просто так же винда ставит не такое значение.
saavaage
08-08-2010, 16:45
seriych, если есть результат, значит все ОК, имхо. В гугле искал, ничего путного не нашел на эту тему...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC