找回密码
 加入
搜索
查看: 2664|回复: 11

有大哥能提供一个效率高点的内存整理代码?

[复制链接]
发表于 2008-10-26 16:07:59 | 显示全部楼层 |阅读模式
有大哥能提供一个效率高点的内存整理代码?

小弟先谢谢了

[ 本帖最后由 superflq 于 2008-10-28 14:44 编辑 ]
发表于 2008-10-26 17:17:50 | 显示全部楼层
官方有个,论坛出有人发了上来,但只是将物理内存转到虚拟内存中.
 楼主| 发表于 2008-10-26 19:16:31 | 显示全部楼层
我搜索了,搜索不到么
 楼主| 发表于 2008-10-26 19:24:43 | 显示全部楼层
整理系统内存的
发表于 2008-10-26 22:04:10 | 显示全部楼层

#include <process.au3>

If WinExists("RAM_Clean") Then Exit
AutoItWinSetTitle("RAM_Clean")

FileInstall("empty.exe", @TempDir & "\empty.exe")

HotKeySet("!{Pause}", "_RAM_Clean")
HotKeySet("!{Del}", "Delete")
Break(0)

Local $T, $I, $L

Input_timer()

TraySetToolTip("自动整理间隔为:" & $T & "分钟" & @LF & "按ALT+PAUSE立即整理,按ALT+DEL退出!")

While 1
        Call("Clean")
        Sleep(4000)
        TrayTip("", "", 1)
        Sleep(($T * 60000) - 8000)
WEnd

Func _RAM_Clean()
        TrayTip("", "开始整理内存...", 1)
        $mem = MemGetStats()
        $list = ProcessList()
        For $I = 1 To $list[0][0]
                $line = "empty.exe" & Chr(32) & $list[$I][1]
                If $list[$I][1] <> 0 And $list[$I][1] <> 4 Then
                        RunWait(@ComSpec & " /c " & $line, "", @SW_HIDE)
                EndIf
        Next
        $mem1 = MemGetStats()
        $var = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "EnableBalloonTips")
        If $var = 0 Then
                ToolTip("整理前可用/整理后可用" & Chr(13) & Chr(13) & Round($mem[2] / 1024, 1) & "/" & Round($mem1[2] / 1024, 1) & Chr(32) & "MB", @DesktopWidth - 135, @DesktopHeight - 76)
                Sleep(4000)
                ToolTip("")
        Else
                TrayTip("整理前可用/整理后可用", Round($mem[2] / 1024, 1) & "/" & Round($mem1[2] / 1024, 1) & Chr(32) & "MB", 4, 1)
                Sleep(4000)
        EndIf
        TrayTip("", "内存整理结束...", 1)
EndFunc   ;==>Clean

Func Delete()
        FileDelete(@TempDir & "\empty.exe")
        Exit
EndFunc   ;==>Delete

Func Input_timer()
        $T = InputBox("内存整理", "自动整理的间隔时间(分钟)", 20, " 2", 190, 115, -1, -1, 6)
        Select
                Case @error = 1 Or @error = 3
                        Exit
                Case @error = 2
                        $T = 10
                Case StringIsDigit($T) = 0
                        Input_timer()
        EndSelect
EndFunc   ;==>Input_timer
发表于 2008-10-27 14:03:30 | 显示全部楼层
楼上的。empty.exe是什么东东?
发表于 2008-10-27 14:08:39 | 显示全部楼层
原帖由 ceoguang 于 2008-10-27 14:03 发表
楼上的。empty.exe是什么东东?

微软的内存清理程序
 楼主| 发表于 2008-10-27 17:18:06 | 显示全部楼层
提示说empty.exe不存在,
发表于 2008-10-27 21:24:39 | 显示全部楼层
发表于 2008-10-27 21:25:11 | 显示全部楼层
http://www.1msoft.com/column/system-yingyong/MemoryEmpty.html3
另外有个内存释放代码

_ReduceMemory(@AutoItPID)
Func _ReduceMemory($i_PID = -1)
    If $i_PID <> -1 Then
        Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
        Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
        DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
    Else
        Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
    EndIf

    Return $ai_Return[0]
EndFunc   ;==>_ReduceMemory
发表于 2008-10-28 11:06:08 | 显示全部楼层
用AutoIt增强微软内存释放工具Empty   谁能提供一下这个软件的代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-10-28 14:42:36 | 显示全部楼层
谢谢BOB,支持
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-2 12:36 , Processed in 0.081164 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表