32位应用程序内存限制没有检查内存分

如果你的软件经常运行不稳定,请检查一下内存。 &(&6&)
17-11-20 15:46
本帖最后由 南宫浩 于 17-11-20 15:48 编辑
提醒一下各位,如果你经常遇到软件运行不稳定,闪退、报错、卡死,甚至蓝屏的情况,那么你应该首先怀疑一下你的内存条的体质是不是有问题。
这年头windows系统很强大,如果内存里的数据运行的时候出点小错系统也能自动修复或者忽略,所以,很多时候,一条有问题的内存插在电脑上也能开机,甚至大部分时间能够正常运行。但内存的错误并不是每次都能被系统自动修复的,赶上了某些关键数据出错,系统修复不了,就会软件报错、闪退、卡死,甚至直接系统崩溃蓝屏了。
提供给各位一个软件——memtest pro。
把电脑里的软件、后台程序什么的,能关的都关掉,然后运行memtest,它可以一个字节一个字节的检查你的内存,如果遇到错误,就会在下面跳出错误记录。合格的内存条理应是一条错误都没有。只要跳出哪怕一条错误,你都可以理直气壮的找卖给你的商家要求质保换新(内存这玩意一般没人给你修,质保都是直接换新的)。
memtest pro使用方法:
1,解压文件,放在哪都行,这是个绿色软件。
2,管理员身份运行“memTestPro.exe”。
3,点“start testing”。如图:
4,如果你的内存在4G以上它会弹出一个提示,告诉你一个“memtest”进程只能检测3G左右的内存,如果你的内存很大它会自动开启更多的memtest进程来检查更多的内存。点确定就可以。
过一会,你会发现跳出来好多个memtest,每个进程检测3G左右,直到把你所有的空闲内存都用上。
注意,如果你的内存很多,比如像我这样插满128G的。。。。。。那么检测时间会非常漫长(128G内存要跑一天一夜还不一定能跑完一遍),而且在检测期间你的电脑基本上干不了别的,所以建议找空闲时间来做检测,而且建议一次只测一条内存,其他的内存先拔下来,否则检测出错误也不知道到底是哪条内存有毛病。另外,检测过程中CPU占用率99%,内存占用率99%,所以要保障主机散热良好。
这个检测程序跑到100%就算是检查了一遍了。然而到了100%它并不会停止,而是会继续101%、102%.....因为有的时候,某些体质不太好的内存条,第一遍检查可能没什么问题,但高负载运行时间长了就有可能开始出错。所以,如果想要更彻底的验证内存的体质,可以让memtest跑更长时间,一般来说跑到500%还没问题那就说明你这内存条体质真的很棒了。
记住、哪怕跳出一条报错,都是内存的质量有问题,可以理直气壮的要求质保换新。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
17-11-20 15:56
谢谢科普!
17-11-20 16:08
现在内存条价格涨了3倍,导致一些二次回收、翻新颗粒的内存条 充斥着市场,
17-11-20 17:01
感谢楼主提供分享!谢谢!!
有个问题:很多时候单条内存都是好的,但当两条或者两条以上的内存搭配在一起就不见得稳定了,特别是但不同品牌不同批次的内存混搭时更容易产生兼容性问题。即使是同品牌同批次也不排除没有兼容性问题存在。
所以,建议在单条检测通过后再进行两两,三三组合检测,直至所有排列都通过才算放心……这时间成本……所以我还是不检测了。
17-11-20 17:13
感谢楼主提供分享!谢谢!!
有个问题:很多时候单条内存都是好的,但当两条或者两条以上的内存搭配在一 ...
这年头4代内存的兼容问题其实极少碰到。只要memtest检测没有错误,并且插口不存在接触不良问题,一般都是挺稳的。
17-11-20 17:41
感谢科普知识
17-11-20 19:43
占楼占楼。。。
&&&&&&&&&&&&
&&&&&&&&& &&&
&&&&&&&&&&
软硬件产品/器材分类讨论(按字母顺序排序)
主题数: 323202, 帖子数: 3115774,
&会员人数:Android系统检测程序内存占用各种方法
转载 & & 投稿:junjie
这篇文章主要介绍了Android系统检测程序内存占用各种方法,本文讲解了检查系统总内存、检查某个程序的各类型内存占用、检查程序状态、检查程序各部分的内存占用等内容,需要的朋友可以参考下
1.检查系统总内存
liuhx@uc ~ $ adb shell cat /proc/meminfo
MemTotal:&&&&&&&& 840868 kB
MemFree:&&&&&&&&& 457344 kB
Buffers:&&&&&&&&&&& 1744 kB
Cached:&&&&&&&&&& 203064 kB
SwapCached:&&&&&&&&&&& 0 kB
Active:&&&&&&&&&& 234932 kB
Inactive:&&&&&&&& 129644 kB
Active(anon):&&&& 170292 kB
Inactive(anon):&&&&&&& 0 kB
Active(file):&&&&& 64640 kB
Inactive(file):&& 129644 kB
Unevictable:&&&&&&&&&& 0 kB
Mlocked:&&&&&&&&&&&&&& 0 kB
SwapTotal:&&&&&&&&&&&& 0 kB
SwapFree:&&&&&&&&&&&&& 0 kB
Dirty:&&&&&&&&&&&&&&&& 0 kB
Writeback:&&&&&&&&&&&& 0 kB
AnonPages:&&&&&&& 159820 kB
Mapped:&&&&&&&&&&& 97916 kB
Slab:&&&&&&&&&&&&&& 7808 kB
SReclaimable:&&&&&& 2920 kB
SUnreclaim:&&&&&&&& 4888 kB
PageTables:&&&&&&&& 3516 kB
NFS_Unstable:&&&&&&&&& 0 kB
Bounce:&&&&&&&&&&&&&&& 0 kB
WritebackTmp:&&&&&&&&& 0 kB
CommitLimit:&&&&& 420432 kB
Committed_AS:&&& 1295272 kB
VmallocTotal:&&&& 122880 kB
VmallocUsed:&&&&&& 16508 kB
VmallocChunk:&&&&& 76804 kB
第一行MemTotal就是总内存。一般并不会等于手机标榜的数值。说是2G内存的手机,会在1.8G左右
2.检查某个程序的各类型内存占用
可用dumpsys meminfo 包名。不知道包名的话,可以用ps命令得到所有运行的程序,也包括得到pid。以自带的浏览器为例:
liuhx@uc ~ $ adb shell dumpsys meminfo com.android.browser
Applications Memory Usage (kB):
** MEMINFO in pid 939 [com.android.browser] **
&&&&&&&&&&&&&&&&&&&&&&&& Shared& Private&&&& Heap&&&& Heap&&&& Heap
&&&&&&&&&&&&&&&&&& Pss&&& Dirty&&& Dirty&&&& Size&&& Alloc&&&& Free
&&&&&&&&&&&&&&& ------&& ------&& ------&& ------&& ------&& ------
&&&&&& Native&&&& 7111&&&&& 748&&&& 7048&&&& 8964&&&& 8634&&&&& 329
&&&&&& Dalvik&&&& 7338&&&& 5096&&&& 6892&&&& 7568&&&& 7041&&&&& 527
&&&&&& Cursor&&&&&&& 0&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&& Ashmem&&&&& 276&&&&&&& 0&&&&& 276&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& Other dev&&&&&&& 4&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&& .so mmap&&&& 5050&&&& 1728&&&&& 252&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& .jar mmap&&&&&&& 0&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& .apk mmap&&&&& 418&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& .ttf mmap&&&&& 439&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& .dex mmap&&&&&&& 0&&&&&&& 0&&&&&&& 0&&&&&&&&&&&&&&&&&&&&&&&&&&
&& Other mmap&&&& 2320&&&&&& 16&&&&&& 24&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&& Unknown&&&& 5173&&&&&& 12&&&& 5172&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&& TOTAL&&& 28129&&&& 7600&&& 19664&&& 16532&&& 15675&&&&& 856
&&&&&&&&&&&&&& Views:&&&&& 104&&&&&&&& ViewRootImpl:&&&&&&& 1
&&&&&&&& AppContexts:&&&&&&& 4&&&&&&&&&& Activities:&&&&&&& 1
&&&&&&&&&&&&& Assets:&&&&&&& 2&&&&&&& AssetManagers:&&&&&&& 2
&&&&&& Local Binders:&&&&&& 15&&&&&&& Proxy Binders:&&&&&& 19
&&& Death Recipients:&&&&&&& 0
&&&& OpenSSL Sockets:&&&&&&& 0
&&&&&&&& MEMORY_USED:&&&& 1468
& PAGECACHE_OVERFLOW:&&&&& 899&&&&&&&&& MALLOC_SIZE:&&&&& 168
&DATABASES
&&&&& pgsz&&&& dbsz&& Lookaside(b)&&&&&&&&& cache& Dbname
&&&&&&&& 4&&&& 1180&&&&&&&&&&&& 68&&&&&&& 54/55/9& /data/data/com.android.browser/databases/browser2.db
&&&&&&&& 4&&&& 1180&&&&&&&&&&&& 25&&&&&&&& 1/60/2& /data/data/com.android.browser/databases/browser2.db (2)
&&&&&&&& 4&&&& 1180&&&&&&&&&&&& 65&&&&&&& 90/23/7& /data/data/com.android.browser/databases/browser2.db (1)
&&&&&&&& 4&&&&&& 40&&&&&&&&&&&& 18&&&&&&&& 0/15/1& /data/data/com.android.browser/databases/webview.db
&Asset Allocations
&&& zip:/system/app/Browser.apk:/resources.arsc: 881K
dumpsys的输出结果在不同版本的android系统可能不同。
其中Pss Total是程序占用的PSS。
3.检查程序状态
liuhx@uc ~ $ adb shell cat /proc/939/status
Name:&android.browser
State:&S (sleeping)
TracerPid:&0
FDSize:&256
Groups:&03 50013
VmPeak:&& 215504 kB
VmSize:&& 206780 kB
VmLck:&&&&&&& 0 kB
VmHWM:&&& 52108 kB
VmRSS:&&& 47748 kB
VmData:&&& 53616 kB
VmStk:&&&&&& 84 kB
VmExe:&&&&&&& 8 kB
VmLib:&&& 29300 kB
VmPTE:&&&&& 156 kB
Threads:&29
SigQ:&0/6656
SigPnd:&0000
ShdPnd:&0000
SigBlk:&1204
SigIgn:&0000
SigCgt:&94e8
CapInh:&0000
CapPrm:&0000
CapEff:&0000
CapBnd:&fffffffffffffeff
voluntary_ctxt_switches:&451
nonvoluntary_ctxt_switches:&3563
VmRss是程序占用的RSS
4.检查程序各部分的内存占用。
cat /proc/939/smaps
这个命令的输出结果很长,下面是一部分结果:
4bb39b000 r--p f:00 560&&&&&&& /system/lib/libGLESv1_enc.so
Size:&&&&&&&&&&&&&&&&& 8 kB
Rss:&&&&&&&&&&&&&&&&&& 8 kB
Pss:&&&&&&&&&&&&&&&&&& 8 kB
Shared_Clean:&&&&&&&&& 0 kB
Shared_Dirty:&&&&&&&&& 0 kB
Private_Clean:&&&&&&&& 0 kB
Private_Dirty:&&&&&&&& 8 kB
Referenced:&&&&&&&&&&& 8 kB
Swap:&&&&&&&&&&&&&&&&& 0 kB
KernelPageSize:&&&&&&& 4 kB
MMUPageSize:&&&&&&&&&& 4 kB
4b39b000-4b39c000 rw-p f:00 560&&&&&&& /system/lib/libGLESv1_enc.so
Size:&&&&&&&&&&&&&&&&& 4 kB
Rss:&&&&&&&&&&&&&&&&&& 4 kB
Pss:&&&&&&&&&&&&&&&&&& 4 kB
Shared_Clean:&&&&&&&&& 0 kB
Shared_Dirty:&&&&&&&&& 0 kB
Private_Clean:&&&&&&&& 0 kB
Private_Dirty:&&&&&&&& 4 kB
Referenced:&&&&&&&&&&& 4 kB
Swap:&&&&&&&&&&&&&&&&& 0 kB
KernelPageSize:&&&&&&& 4 kB
MMUPageSize:&&&&&&&&&& 4 kB
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具启动应用时,出现一个 允许将UI用于管理应用程序 的进程_百度知道
启动应用时,出现一个 允许将UI用于管理应用程序 的进程
求助,如何解决..&进程后,桌面可以使用,然而等很久应用都未启动..,也没有这个应用的进程产生,桌面也无法点击,任务栏可以点击使用,结束这个&UI
束&UI;进程后...&quot
我有更好的答案
后一个属于system。如果不想每开机都要进任务管理器结束该进程,所以一个简单的办法就是:进入C:&#92.exe进程,就不会卡死了。方法(2)开机之后任务管理器中会出现两个ChsIME;System32\InputMethod\CHS,找到ChsIME.exe,将system用户的权限设为拒绝即可。方法(3)安装第三方输入法,将系统自带微软拼音输入法删除。目前已经确定,只要结束第二个ChsIME.exe进程(即system用户)就不会出现卡UAC的情况,等输入法M图标出现后,再点击是;Windows&#92,前一个属于当前用户(User或者自定义的用户)问题是ChsIME.exe卡了UAC导致的,总结了一下目前有的解决方法:方法(1)在UAC界面等3-4秒
采纳率:27%
级到2016年度更新版本后,然后再去启动或运行那个之前卡住的软件你会发现已经不会卡住了,现在已通过远景论坛找到问题的根本,即微软输入法进程导致.exe)都结束一遍,先结束掉“允许将UI用于管理应用程序”的进程,然后将所有的“Microsoft IME”(ChsIME,出现这种情况的时候,也出现这个情况
运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。)一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。1、微软IE缓冲溢出漏洞引起2、内存或虚拟内存地址使用冲突造成程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统有时前程序未结束又有新的任务开始到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况3、劣质内存条也会出现这个问题一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。4、微软WINDOWS系统的漏洞,windows把内存地址0XX0000ffff指定为分配null指针的地址范围,如果程序试图访问这一地址,则认为是错误。c/c++编写的程序通常不进行严格的错误检查,当采用malloc来分配内存而可供分配的地址空间不够的情况下返回null指针。但是代码不检查这种错误,认为地址分配已经成功,于是就访问0X的地址,于是就发生内存违规访问,同时该进程被终止。ASCII字符填充组成的pif文件时会出现以下情况:一个非法的pif文件(用ascii字符\'x\'填充)至少要369字节,系统才认为是一个合法的pif文件,才会以pif的图标[pifmgr.dll,0]显示,才会在属性里有程序、字体、内存、屏幕”等内容。而且仅仅当一个非pif文件的大小是369字节时察看属性的“程序”页时,不会发生程序错误,哪怕是370字节也不行。当对一个大于369字节的非法pif文件察看属性的“程序”页时,Explorer会出错,提示:\'***\'指令引用的\'***\'内存。该内存不能为\'read\',问题出在pif文件的16进制地址:0xx87]0xx01]和0xxC3]0xx02]即使是一个合法pif文件,只要改动这四处的任意一处,也会引起程序错误。而只要把0xx的值改为[0xFF][0xFF],那么其它地址任意更改都不会引起错误。5、可能没有完全正确安装apache服务,且启动了它的原故;把服务中的OracleOraHomeXXHTTPServer改成停止6、应用程序没有检查内存分配失败程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x”。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。7、应用程序由于自身BUG引用了不正常的内存指针在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x”,而是其他随机数字。----------------------------------------------------------如果系统经常有所提到的错误提示,下面的建议可能会有帮助:1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。3.试用新版本的应用程序。4、删除然后重新创建Winnt\\System32\\Wbem\\Repository文件夹中的文件:在桌面上右击我的电脑,然后单击管理。在&服务和应用程序&下,单击服务,然后关闭并停止WindowsManagementInstrumentation服务。删除Winnt\\System32\\Wbem\\Repository文件夹中的所有文件。(在删除前请创建这些文件的备份副本。)打开&服务和应用程序&,单击服务,然后打开并启动WindowsManagementInstrumentation服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WBEM\\CIMOM\\AutorecoverMOFs/viewthread.php?tid=627383&fpage=1&highlight=下面我从几个例子给大家分析:例一:打开IE浏览器或者没过几分钟就会出现&0x70dcf39f&指令引用的&0x&内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了6.0,自升级后,会被IE5.0代替。例二:在windowsxp下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows98里运行却正常。解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32c:\\winnt\\apppatch\\slayerui.dll。右键,属性,也会出现兼容性的选项。例三:RealOneGold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read”的提示。解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“0x”(每次变化)指令引用的“0xff000011”内存不能为“read”,终止程序请按确定。解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。例五:双击一个游戏的快捷方式,“0x77f5cd0”指令引用“0xffffffff”内存,该内存不能为“read”,并且提示Client.dat程序错误。解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0x772b548f”指令引用的“0x”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了
哥们,我也是这个问题,现在解决了吗
调了下感觉好多了,具体原因我也搞不懂。
3条折叠回答
为您推荐:
其他类似问题
应用程序 进程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。2012年7月 C/C++大版内专家分月排行榜第二2012年6月 C/C++大版内专家分月排行榜第二
匿名用户不能发表回复!|

我要回帖

更多关于 32位应用程序内存限制 的文章

 

随机推荐