精华内容
下载资源
问答
  • 教你怎样维修内存条

    千次阅读 2017-01-18 18:03:00
    上个月,在玩Photoshop时,电脑忽然没有反应,画面静止不动,机器无法重新启动,我打开机箱,拔出内存条一看,一个小元件的焊点已熔化,不禁想起前段时间机器有数次启动自检显示乱码死机,重启动又正常的情况,再把内存条拿到...

    上个月,在玩Photoshop时,电脑忽然没有反应,画面静止不动,机器无法重新启动,我打开机箱,拔出内存条一看,一个小元件的焊点已熔化,不禁想起前段时间机器有数次启动自检显示乱码死机,重启动又正常的情况,再把内存条拿到朋友的机子上试也点不亮,用电烙铁重焊那个小元件,也不起作用。毫无疑问,我的内存条罢工了。

    内存条小小一块,价格却不低,能否省几两银子呢?我这个江湖郎中倒要试试运气!

    兵马未动,粮草先行,我费尽心机找寻有关资料。市面上芯片级的硬件书几乎没有,咱只好杀牛偏用宰鸡刀——用放大镜观察,用万用表测量通断。这是一根2MB×16片的杂牌168线SDRAM,据我的经验,集成块的电源引脚通常在最角上,经过反复观察和通断测量,确定引脚1(正面)和引脚85(反面)为电源引入脚,我焊掉了焊点熔化的小元件(位于85脚上方),并用刀片划断85脚的铜箔线,抱着试试看的想法,心想剩余的16M内存应该正常了吧!重新插入内存,检查一遍连线,开机,我不禁揉揉眼睛,自检32M通过,同时运行大型程序Photoshop和3DMAX没有出现错误,至此故障完全排除。

    总结一下,内存条两面为对称设计,由电源电路、译码电路和芯片组成。电源由金手指引入,经过小电阻电容后接到芯片的电源脚,地址线经过译码电路译码后连接到芯片的片选引脚。据此,内存条的损坏可分为两类:内存芯片的损坏外围电路的损坏。值得一提的是,损坏的内存条往往会有焊点发亮,这是过流造成的,根据发亮焊点的位置就可以大概知道是哪部分出了故障。

    对于前者,表现为开机自检时内存测试不能通过,或者可以开机,但运行程序时频繁死机。它的修理办法是:一、用程序报错的地址推算出损坏的芯片,更换单个的芯片,这种方法可以使它完全恢复。手工焊接并非不可能,水货内存条都是在手工作坊内生产的。二、去掉外围电路的元件或割断金手指的连线,使损坏的单面不工作。内存的容量会减半。

    后者多为电源电路故障,因为电源电路工作在相对大电流状态。故障表现为开机点不亮,系统不自检,高级的主板还会发出连续的嘀嘀报警声。损坏的小元件会导致电源电路的失常,由我的例子可见,内存两面的电源是通过内存条中许许多多的通孔连接在一起的,只要将损坏的小元件去掉,损坏面的电源脚割断,就OK了。

    展开全文
  • B部分标明的是该内存模组的生产日期,以三个阿拉伯数字的形式表现。第一个阿拉伯数字表示生产的年份,后面两位数字表明是在该年的第XX周生产出来的。如上图中的517表示该模组是在05年的第17周生产的。C部分表示该...

    怎么看内存条型号大小

     


    A部分标明的是生产此颗粒企业的名称——Hynix。B部分标明的是该内存模组的生产日期,以三个阿拉伯数字的形式表现。第一个阿拉伯数字表示生产的年份,后面两位数字表明是在该年的第XX周生产出来的。如上图中的517表示该模组是在05年的第17周生产的。

    C部分表示该内存颗粒的频率、延迟参数。由1-3位字母和数字共同组成。其根据频率、延迟参数不同,分别可以用“D5、D43、D4、J、M、K、H、L”8个字母/数字组合来表示。其含义分别为D5代表DDR500(250MHz),延迟为3-4-4;D43代表DDR433(216MHz),延迟为3-3-3;D4代表DDR400(200MHz),延迟为3-4-4;J代表DDR333(166MHz),延迟为2.5-3-3;M代表DDR266(133MHz),延迟为2-2-2;K代表DDR266A(133MHz),延迟为2-3-3;H代表DDR266B(133MHz),延迟为2.5-3-3;L代表DDR200(100MHz),延迟为2-2-2。

    D部分编号实际上是由12个小部分组成,分别表示内存模组的容量、颗粒的位宽、工作电压等信息。具体详细内容如图二所示。


    D部分编号12个小部分分解示意图


    采用现代颗粒的内存颗粒特写

    第1部分代表该颗粒的生产企业。“HY”是HYNIX的简称,代表着该颗粒是现代生产制造。第2部分代表产品家族,由两位数字或字母组成,“5D”表示为DDR内存,“57”表示为SDRAM内存。

    第3部分代表工作电压,由一个字母组成。其中含义为V代表VDD=3.3V & VDDQ=2.5V; U代表VDD=2.5V & VDDQ=2.5V;W代表VDD=2.5V & VDDQ=1.8V;S代表VDD=1.8V & VDDQ=1.8V来分别代表不同的工作电压。

    第4部分代表内存模组的容量和刷新设置,由两位数字或字母组成。对于DDR内存,分别由“64、66、28、56、57、12、1G”来代表不同的容量和刷新设置。其中含义为:64代表64MB容量,4K刷新;66代表64MB容量,2K刷新; 28代表128MB容量,4K刷新;56代表256MB容量,8K刷新;57代表256MB容量,4K刷新;12代表512MB容量,8K刷新;1G代表1GB容量,8K刷新。

    第5部分代表该内存颗粒的位宽,由1个或2个数字组成。分为4种情况,分别用“4、8、16、32”来分别代表4bit、8bit、16bit和32bit。

    第6部分表示的是Bank数,由1个数字组成。有三种情况,分别是“1”代表2 bank,“2”代表4 bank,“4”代表8 bank。

    第7部分代表接口类型,由一个数字组成。分为三种情况,分别是“1”代表SSTL_3,“2”代表SSTL_2;“3”代表SSTL_18。

    第8部分代表该颗粒的版本,由一个字母组成,这部分的字母在26个字母中的位置越*后,说明该内存颗粒的版本越新,目前为止HY内存共有5个版本,表现在编号上,空白表示第一版,“A”表示第二版,依次类推,到第5版则有“D”来代表。购买内存的时候版本越说明新电器性能越好。

    第9部分代表的是功耗,如果该部分是空白,则说明该颗粒的功耗为普通,如果该部分出现了“L”字母,则代表该内存颗粒为低功耗。

    第10部分代表内存的封装类型,由一个或两个字母组成。由“T”代表TOSP封装,“Q”代表LOFP封装,“F”代表FBGA封装,“FC”代表FBGA(UTC:8 x 13mm)封装。

    第11部分代表堆叠封装,由一个或两个字母组成。空白代表普通;S代表Hynix;K代表M&T;J代表其它;M代表MCP(Hynix);MU代表MCP(UTC)。

    第12部分代表封装材料,由一个字母组成。空白表示普通,“P”代表铅,“H”代表卤素,“R”代表铅和卤素。

    总的说来,其实只要记住第2、3、6和C部分等几处数字的实际含义,就能很轻松对使用现代DDR SDRAM内存颗粒的产品进行辨别。尤其是C部分数字,它将很明确的告诉消费者,这款内存实际的最高工作状态是多少。
    总的来说购买采用现代颗粒的DDR400内存条,最好购买编号是“HYXXXXXXXDX”,对于DDR400内存来说编号的尾数最好是“D43”,因为“D”代表的是最新版的现代DDR内存颗粒,在超频方面其表现非常出色的表现。而“D43”所代表的是216MHz的工作频率,将其运用在DDR400内存中,实际上是将“D43”降频为“D4”使用,具有很强的超频能力。对于目前内存市场的发展和其优惠价格来说,512MB/DDR400和DDR2/533内存是现在最值得购买的内存,无论是其价格还是在用料上都是非常优惠和出色的,最后提醒大家的是购买内存时要注意售后服务.

    展开全文
  • 问题解决_系统识别不了内存

    千次阅读 2020-09-23 15:05:59
    电脑原来没有任何问题,新加内存后,操作系统法识别新内存,原来的部分内存条也识别不了了,表现为内存不增反降。 具体情况: 微星X299pro主板 bios能识别内存,但是系统不识别内存 内存插好了 内存没有坏 问题解决...

    问题描述:

    电脑原来没有任何问题,新加内存后,操作系统法识别新内存,原来的部分内存条也识别不了了,表现为内存不增反降。
    具体情况:
    微星X299pro主板
    bios能识别内存,但是系统不识别内存
    内存插好了
    内存没有坏

    问题解决:

    检查前提条件: 最后加到的内存总容量大小,是否被系统、主板、CPU支持。

    • 比如XP支持的内存好像就只有4G。win10和ubuntu能支持很大内存,网上看到1T的都有。

    • 主板具体支持多少内存要看官网说明。一般来说,普通家用小主板有支持32G、64G的,普通大主板有支持128G、256G的,服务器用主板就有支持更高的。以下是微星X299pro主板支持的内存:
      在这里插入图片描述

    • CPU具体支持多少内存要看官网说明。

    排除内存没插好: 进入bios看看是否识别,如果识别了说明插好了;重新插试一试。我的不是这个问题。

    排除新加内存是坏的: 比如用新内存替换原来同品牌同容量的内存条,看看操作系统是否识别,如果可以识别说明内存是好的。比如只插新内存条看看是否能开机。

    如果不是以上三个原因,网上检索后发现可能的原因比较复杂:比如说内存的兼容性问题、CPU的内存控制问题、主板的内存安装顺序问题。前面两个可能性比较专业,暂时没有找到合适的解决方案。幸运的是,通过排查第三个可能性,我的问题解决了。

    将内存按照主板说明书上的顺序添加:

    1. 找到主板说明书:https://www.msi.com/Motherboard/support/X299-PRO#down-manual
    2. 查看内存安装指南:
      下表中,1 DIMMs ~ 8 DIMMs的意思是:从1条内存逐渐增加到8条,分别应该插在哪个槽。
      在这里插入图片描述
      -在这里插入图片描述
    3. 按照上图所示按照顺序插,并且同频率、同容量、同品牌优先。PS:听说买的时候最好买三同的,否则有可能发生难以预料的问题。我的有三个牌子,两种容量,每种容量一种频率,幸好成功了。
      在这里插入图片描述
    展开全文
  • Java程序里的内存泄漏是如何表现

    千次阅读 2012-08-28 13:25:04
    大多数程序员都知道使用...这个过程意味着 Java 已经解决了困扰其他编程语言的一个棘手的问题 -- 可怕的内存泄漏。果真是这样的吗?  在进行深入讨论之前,让我们先回顾一下垃圾收集是如何进行实际工作的。垃圾收集

    大多数程序员都知道使用类似于 Java 的编程语言的好处之一就是他们无需再为内存的分配和释放所担心了。你只需要简单地创建对象,当它们不再为程序所需要时 Java 会自行通过一个被称为垃圾收集的机制将其移除。这个过程意味着 Java 已经解决了困扰其他编程语言的一个棘手的问题 -- 可怕的内存泄漏。果真是这样的吗?

      在进行深入讨论之前,让我们先回顾一下垃圾收集是如何进行实际工作的。垃圾收集器的工作就是找到程序不再需要的对象并在当它们不再被访问或引用时将它们移除掉。垃圾收集器从贯穿整个程序生命周期的类这个根节点开始,扫描所有引用到的节点。在遍历节点时,它跟踪那些被活跃引用着的对象。那些不再被引用的对象就满足了垃圾回收的条件。当这些对象被移除时被它们占用的内存资源会交还给 Java 虚拟机(JVM)。

      因此 Java 代码的确不需要程序员负责内存管理的清理工作,它自行对不再使用的对象进行垃圾收集。然而,需要记住的是,垃圾收集的关键在于一个对象在不再被引用时才被统计为不再使用。下图对这一概念进行了说明。

      上图表示在一个 Java 程序执行时具有不同的生命周期的两个类。类 A 首先被实例化,它存在的时间比较长,几乎贯穿整个进程的生命周期。在某个时间点,类 B 被创建,类 A 添加了一个对这个新建类的引用。我们假设类 B 是某个用于显示并返回用户指令的用户界面部件。尽管类 B 不再被使用,如果类 A 对类 B 的引用未被清除,类 B 将继续存在并占据内存空间,即使下一次垃圾收集被执行。

      什么时候需要注意内存泄漏?

      如果在你的程序执行一段时间之后遇到 java.lang.OutOfMemoryError 的话,内存泄漏无疑是最值得怀疑的。除了这种明显的情况之外,什么时候需要考虑内存泄漏?完美主义的程序员会回答说所有的内存泄漏都需要进行审查和更改。然而,在跳到这一结论之前还需要考虑其他几点因素,包括程序的生命周期以及内存泄漏的大小。

      考虑一下在一个程序的生命周期里垃圾收集器可能从未执行的情况。无法保证什么时候 JVM 会调用垃圾收集 -- 即使程序显式调用 System.gc()。通常情况下,垃圾收集器不会自动运行,直到程序需要比目前可用内存还要多的内存。此时,JVM 会首先尝试调用垃圾收集器以获取更多可用内存。如果这个尝试仍旧不能够释放出足够的资源,JVM 将会从操作系统获取更多内存,直到达到所允许内存的最大值。

      举个例子来说,一个小型的 Java 应用程序,用来显示一些简单的配置修改的用户界面元素,出现了内存泄漏。垃圾收集器可能在程序关闭之前都不会被调用到,因为 JVM 可能总是有足够的内存来创建程序所需要的所有对象。因此,在这种情况下,即便是一些已死对象在程序运行的时候仍旧占据着内存,但这并不影响实际应用。

      如果开发中的 Java 代码将以每天 24 小时运行在服务器上,这时内存泄漏将会比上面的那个配置工具程序要明显的多了。即便是代码中最小的内存泄漏,在持续运行的情况下最终也将耗尽所有可用内存。

      相反的情况下,即使一个程序只是短暂存活,却分配了大量临时对象(或者少量的占用大量内存的对象),在这些对象不再需要时没有取消引用,这样的 Java 代码也会达到内存限制。

      最后一个值得注意的问题是,不必过于担心(Java 程序所造成的)内存泄漏。Java 内存泄漏不应该被认为是像其他语言中所发生的那样危险,比如 C++ 的内存丢失将永远不会返回给操作系统。Java 应用程序中,我们把不再需要的却占据着内存资源的对象都交给 JVM.所以在理论上来说,一旦 Java 程序和它的 JVM 关闭掉,所有分配的内存都将归还给操作系统。

      如何断定程序具有内存泄漏

      查看一个运行在 Windows NT 平台上的 Java 程序是否具有内存泄漏,你可以简单地在程序运行的时候去观察任务管理器中的内存设置。然而,在观察一些运行中的 Java 程序之后,你会发现,它们跟本地应用程序相比使用更多内存。我开发过的一些 Java 项目会启用 10 到 20 MB 的系统内存。与这个数字相比,本地的操作系统自带的 Windows Explorer 程序使用到 5 MB.

      另外一个关于 Java 程序的内存使用要注意的是典型的运行在 IBM JDK1.1.8 JVM 上的程序似乎在其运行时不断吞噬了越来越多的系统内存。程序似乎永远不会返回一些内存给操作系统,直到一个非常大的物理内存分配给它。这会不会就是内存泄漏的迹象?

      要明白是怎么回事,我们需要熟悉 JVM 是如何将系统内存使用作自己的堆的。在运行 java.exe 时,你可以使用一些特定的选项来控制垃圾收集的堆的启动容量和最大容量(分别是 -ms 和 -mx)。Sun 的 JDK 1.1.8 默认使用 1 MB 的启动设置和 16 MB 的最大设置。IBM JDK 1.1.8 默认使用机器物理内存容量的一半作为最大设置。这些内存设置对 JVM 发生内存溢出时的做法具有直接影响,这时 JVM 可能会继续增长堆内存,而不是等待一个垃圾回收的结束。

      因此为了寻找并最终消除内存泄漏,我们需要比任务监视程序更好的工具。当你想检测内存泄漏的时候内存调试程序(参见下文的参考资料)可以派上用场了。这些程序通常会给你关于堆内存里对象的数量、每个对象实例的个数以及对象使用中的内存等一些信息。此外,它们还会提供很有用的视图,这些视图可以显示每个对象的引用和引用者,以便你跟踪内存漏洞的来源。

      接下来,我将展示如何使用 Sitraka Software 的 JProbe 调试工具来检测和消除内存泄漏,希望会对你就如何部署这些工具并成功消除内存泄漏产生一些启发。

      一个内存泄漏的例子

      这个示例主要展示了我们部门开发的一个商业版应用的一个问题,这个问题在 JDK 1.1.8 上工作了几个小时后被测试人员找出来。这个 Java 应用程序的相关代码和包是由几个不同团队的程序员开发出来的。程序里出现的内存泄漏的原因,我怀疑,是由一些没有真正理解其他(团队)开发的代码的程序员所引起。讨论中的 Java 代码允许用户不必去写 Palm OS 本地代码来创建 Palm 个人数码助理应用。通过使用图形界面,用户可以创建表单,使用控件对它们进行填充,然后连接控件事件来创建 Palm 应用程序。测试人员发现,这个 Java 应用最终发生了内存溢出--表单和控件的创建和删除延时。开发人员并没有发现这个问题存在,因为他们的机器(相对 Palm)拥有着更多的物理内存。

      为了讨论这个问题,我使用了 JProbe 来断定问题的存在。即使拥有 JProde 提供的强大工具和内存快照,调查仍然是一个繁琐的、反复的过程,它涉及先确定内存泄漏的原因,然后做出代码更改并验证其效果。

      JProbe 有几个选项来控制在一次调试回话期间什么样的信息会被记录。经过一些试验后,我判定获取所需信息的最有效的方式是关掉性能数据收集,专注于捕获的堆数据。JProbe 提供了一个叫做运行时堆摘要的视图来显示 Java 应用程序在一段时间内使用的堆内存的数量。它同时也提供了一个工具栏按钮用来在需要时强制 JVM 执行垃圾收集 --在想要看一下一个类的给定实例不再为 Java 应用程序需要时是否会被垃圾收集,这个功能是很有用的。下图显示了在一段时间内使用的堆存储量。

      在堆使用情况图中,蓝色部分表示已分配的堆空间量。我启动 Java 程序之后它达到了一个稳定点,我强制垃圾收集器执行,这由绿线之前的蓝色曲线的一个骤降表示(这条绿线表示一个检查点被插入)。接下来,我先是添加而后删掉了四个表单并再次调用垃圾收集器。检查点之后的蓝色曲线的水平线比检查点之前的蓝色曲线的水平线高的事实告诉我们很可能出现了内存泄漏,因为该程序已经回归其只有一个简单可见的表单的初始状态。我检查实例确认了泄漏。总之,结果表明 FormFrame 类(表单的主 UI 类)的数量在检查点之后增加了四个。

      寻找原因

      要想将测试人员提交的问题隔离出来,第一步就是提供一些简单的、重复的测试用例。以上面那个例子为例,我发现简单地添加一个表单,删除这个表单,然后强制垃圾收集器的结果是一些关联到已经删除掉的表单的实例仍然存活着。这种问题通过 JProbe实例摘要视图来看是显而易见的,视图中统计了堆内存中每个类的实例的个数。

      要定位垃圾收集器工作时具体实例的引用,我使用了 JProbe 的引用画面,如下图所示,来断定哪些类仍然在引用已被删除掉的 FormFrame 类。这是调试这种问题的巧妙地方法之一,我通过它发现了很多不同的对象仍然在引用那些无用的对象。而通过试错来查明究竟是哪个引用者真正造成这个问题的过程却是相当耗时的。

      在这个案例中,根类(左上角红色的那个)是出现问题的起源。右侧用蓝色突出的那个类就是追踪到的 FormFrame 类。

      对于这个具体的例子,找到的罪魁祸首是一个包含一个静态的哈希表的字体管理类。通过引用列表追踪后,我发现根节点是一个静态的哈希表,这个哈希表保存了每个表单使用的字体。各种表单可以被独立地放大或缩小,所以哈希表包含了一个具有每个指定的表单的所有字体的向量。当表单的缩放视图改变时,带有字体的向量被获取并选择合适的缩放因素来适应字体大小。

      这个字体管理器的问题是,在创建表单时,当代码将字体向量放进哈希表时,却没有定义表单删除时对向量的移除。因此,这个在整个应用程序的生命周期都存在的静态的哈希表,却从来没有移除指向每个表单的键值。所以,所有的表单和其相关联的类被遗留在了内存中。

      问题修正

      对于这个问题的简单解决方案就是字体管理器增加一个方法,来允许哈希表的 remove() 方法会在用户删除表单时被调用到。增加的 removeKeyFromHashtables() 方法如下所示:

      public void removeKeyFromHashtables(GraphCanvas graph) {

      if (graph != null) {

      viewFontTable.remove(graph); // remove key from hashtable

      // to prevent memory leak

      }

      }

      然后,我在 FormFrame 类里添加了对这个方法的一个调用。FormFrame 使用 Swing 的内部框架来实现表单 UI,因此对于字体管理器的调用被添加到当内部框架完全关闭时所执行的方法,如下所示:

      /**

      * Invoked when a FormFrame is disposed. Clean out references to prevent

      * memory leaks.

      */

      public void internalFrameClosed(InternalFrameEvent e) {

      FontManager.get()。removeKeyFromHashtables(canvas);

      canvas = null;

      setDesktopIcon(null);

      }

      在我对代码做出修改以后,我使用调试工具来确认在相同的测试用例被执行时删除表单所关联到的对象的数目。

      内存泄漏的防止

      可以通过对一些常见问题的注意来防止内存泄漏。容器类,比如哈希表和向量,是找到引起内存泄漏的常见的地方。尤其是当这些类被声明为静态的并存活于应用程序的整个生命周期之中时。

      另一个常见(导致内存泄漏的)问题是当你将一个类注册为事件监听器,却没考虑到当这个类不再需要时将其注销。还有,指向其他类的成员变量在恰当的时候要设置为 null.

      结束语

      寻找内存泄漏的原因可能是一个繁琐的过程,还没有提到的一点是这将需要特殊的调试工具。然而,一旦你熟悉了追踪对象引用的工具和模式,你将能够跟踪内存泄漏。此外,你还会获得一些有价值的技能,不仅可以节省项目编程投入,而且在以后的项目中你将拥有找出可以防止发生内存泄漏的编程做法的眼光。

    展开全文
  • 两根一样的内存条也会不兼容

    万次阅读 2006-12-20 18:45:00
    前几天电脑出现了上面提到的情况,从网上下载下来的压缩包解压都出现CRC失败,EXE文件安装出错,还有游戏客户端总出现文件包损坏或者缺少重要文件,搞了好几天都没有检查出来原因,最后终于发现是内存问题。...
  • 如何检查内存泄露问题

    千次阅读 2014-07-18 10:16:50
     内存泄漏是编程中常常见到的一个问题内存泄漏往往会一种奇怪的方式来表现出来,基本上每个程序都表现出不同的方式。 但是一般最后的结果只有两个,一个是程序当掉,一个是系统内存不足。 还有一种就是比较介于...
  • 内存泄漏—排查问题

    千次阅读 2018-05-31 14:18:17
    内存泄漏—排查问题top命令输入了,得出了以下结果:从上图可以看到java服务,内存使用率达到了68.2%,。很显然现在需要jmap命令把heap中的对象占用内存的情况导出到对应的dump文件中。jmap -dump:format=b,file=...
  • JAVA 语言内存泄漏问题

    千次阅读 2007-05-13 22:06:00
    因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC 或JVM的问题。其实,这种想法是不正确的,因为Java 也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java 代码...
  • malloc函数 ...内存分配成功之后,malloc函数返回这块内存的首地址,你需要一个指针来接受这个地址。但是由于函数的返回值是void *类型,所以必须强制转换成你所接收的类型。也就是说这块内存将来要用来
  • 2、不要用金斯顿的U盘,很容易出现识别不了(表现为Flash Bios灯常亮,主板故障灯CPU不亮,主板不启动)。 3、正常情况下刷bios插上U盘后只需按一下flash bios buttom键即可,按键灯闪亮后主板启动,主板故障灯CPU...
  • vps的内存为512M,安装好nginx,php等启动起来,mysql...调整my.cnf 参数,重新配置(系统默认配置太高直接占用400M内存,小玩家玩不起呢)即可 performance_schema_max_table_instances=200 table_definition_cache=200 ta
  • Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代、老年代...2.3 ML(内存泄露) OOM(内存溢出)问题现象及分析 2.4 IBM DUMP分析工具使用介绍 Java应用CPU、线程问题分析 Java垃圾回收机制(GC)
  • 类创建对象和类指针创建对象的内存表现以及区别

    千次阅读 多人点赞 2015-01-15 10:30:31
    大家好,我是一个C++的初学者,所以不免要学习一下C++的面向对象和内存机制,我自己也一直没有弄清楚一个问题:  注:Student 是一个学生类;  Student stu;
  • C语言的内存布局问题

    千次阅读 2012-05-01 21:10:52
    本文主要简介一下c中的内存类型和布局问题。  2。内存的类型  (1)栈区(stack):由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。  在函数参数和地址入栈情况中...
  • 内存不能为只读问题的解决办法

    千次阅读 2013-01-18 14:34:13
    内存不能为Read只读问题的解决办法 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。  ...一:先说说硬件:  ...一般来说,电脑硬件是很不容易坏的。...内存条坏了(二手内存情
  • 内存分配成功之后,malloc函数返回这块内存的首地址,你需要一个指针来接受这个地址。但是由于函数的返回值是void *类型,所以必须强制转换成你所接收的类型。也就是说这块内存将来要用来存储什么类型的数据,比如.....
  • 一文理解内存屏障

    千次阅读 多人点赞 2019-05-15 14:40:20
    内存屏障是硬件之上、操作系统或JVM之下,对并发作出的最后一层支持。再向下是是硬件提供的...接下来,阐述问题的产生原理,了解为什么需要内存屏障;然后,浅谈内存屏障的标准、厂商对内存屏障的支持,并以volat...
  • [译]FaceBook出品:基于Android的内存优化
  • GoLang内存模型

    千次阅读 2019-03-03 11:14:39
    Go语言的内存模型规定了一个goroutine可以看到另外一个goroutine修改同一个变量的值的条件,这类似java内存模型中内存可见性问题(Java内存可见性问题可以参考拙作:Java并发编程之美一书)。 当多个goroutine并发...
  • Table of Contents ...本篇博客是记录使用spring batch做数据迁移时时遇到的一个关键问题:数据迁移量大时如何保证内存。当我们在使用spring batch时,我们必须配置三个东西: reader,processo...
  • 在OC这种面向对象语言里,内存...要像用一门语言写出内存使用效率较高且又没有bug的代码,就得掌握内存管理模型的种种细节。一旦理解这些规则,你就会发现,其实OC的内存管理没有那么复杂,再进入ARC之后就更为简单了。
  • 一次内存泄露问题的排查

    千次阅读 2011-11-14 12:32:11
     下面给了一个简单的内存泄露的例子。在这个例子中,我们循环申请 Object 对象,并将所申请的对象放入一个 Vector 中,如果我们仅仅释放引用本身,那么 Vector 仍然引用该对象,所以这个对象对 GC 来说是不可回收...
  • JAVA垃圾回收机制与内存泄露问题

    千次阅读 2011-05-24 10:09:00
    该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行...
  • Unity内存优化经验分享

    千次阅读 2017-01-08 12:55:34
    笔者介绍:姜雪伟,IT公司技术... 内存优化不论是游戏开发还是软件开发,都会涉及到这个问题,这个也是所有程序员绕不过的问题,必须要解决的。特别是在移动端盛行的时代,由于硬件的限制,这个问题愈发显得突出。开
  • WinCE内存管理

    千次阅读 2012-08-08 10:02:16
    程序中遇到的最重要的问题,那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM,这相对于个人电脑来说是十分少的,因为个人电脑的标准配置已经到了128MB 甚至更多。事实上,运行WinCE 的机器的内存十分缺乏,以...
  • 深入浅Linux内核内存管理基础

    千次阅读 2015-01-18 16:45:49
     从Linux操作系统层次上,内存可划分为用户空间内存和内核空间内存。  32位的CPU,最大寻址范围为2^32 - 1也就是4G的线性地址空间。Linux简化了分段机制,使得虚拟地址与线性地址总是一致的。Linux一般把这个4G的...
  • 1 压力测试过程中,发现被测对象性能不够理想,具体表现为:   进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70  2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒...
  • Android之——性能与内存优化

    千次阅读 2015-07-21 17:29:55
    高效代码的两基本的原则:(1)不要做不必要的事;(2)不要分配不必要的内存。 1. 内存优化  Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus one 对每个软件的内存限制是24M),同时Java语言...
  • 内存故障巧排除.rtf

    2019-09-12 06:11:38
    很明显,内存兼容问题暴露出来了,让他拿旧内存去市场加差价换回一条和第一次升级内存相同的内存条,故障排除。  维修心得:内存的兼容问题虽然不是很多,但是危害还是不小,因为它们往往有很多奇怪的表现,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,494
精华内容 56,997
关键字:

内存条出问题的表现