当前位置:文档之家› Js内存泄漏及解决方案

Js内存泄漏及解决方案

Js内存泄漏及解决方案
Js内存泄漏及解决方案

在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题,下面分类给出:

1、给DOM对象添加的属性是一个对象的引用。范例:

var MyObject = {};

document.getElementById('myDiv').myProp = MyObject;

解决方法:

在window.onunload事件中写上: document.getElementById('myDiv').myProp = null;

2、DOM对象与JS对象相互引用。范例:

function Encapsulator(element) {

this.elementReference = element;

element.myProp = this;

}

new Encapsulator(document.getElementById('myDiv'));

解决方法:

在onunload事件中写上: document.getElementById('myDiv').myProp = null;

3、给DOM对象用attachEvent绑定事件。范例:

function doClick() {}

element.attachEvent("onclick", doClick);

解决方法:

在onunload事件中写上: element.detachEvent('onclick', doClick);

4、从外到内执行appendChild。这时即使调用removeChild也无法释放。范例:

var parentDiv = document.createElement("div");

var childDiv = document.createElement("div");

document.body.appendChild(parentDiv);

parentDiv.appendChild(childDiv);

解决方法:

从内到外执行appendChild:

var parentDiv = document.createElement("div");

var childDiv = document.createElement("div");

parentDiv.appendChild(childDiv);

document.body.appendChild(parentDiv);

5、反复重写同一个属性会造成内存大量占用(但关闭IE后内存会被释放)。范例:

for(i = 0; i < 5000; i++) {

hostElement.text = "asdfasdfasdf";

}

这种方式相当于定义了5000个属性!

解决方法:

其实没什么解决方法:P~~~就是编程的时候尽量避免出现这种情况咯~~

说明:

1、以上资料均来源于微软官方的MSDN站点,链接地址:

https://www.doczj.com/doc/211284294.html,/librar ... e_leak_patterns.asp

大家可以到上面这个地址中看到详细的说明,包括范例和图例都有。只是我英文不太好,看不太懂,如果我上述有失误或有需要补充的地方请大家指出。

2、对于第一条,事实上包括 element.onclick = funcRef 这种写法也算在其中,因为这也是一个对对象的引用。在页面onunload时应该释放掉。

3、对于第三条,在MSDN的英文说明中好像是说即使调用detachEvent也无法释放内存,因为在attachEvent的时候就已经造成内存“LEAK”了,不过detachE vent后情况还是会好一点。不知道是不是这样,请英文好的亲能够指出。

4、在实际编程中,这些内存问题的实际影响并不大,尤其是给客户使用时,客户对此绝不会有察觉,然而这些问题对于程序员来说却始终是个心病 --- 有这样的BUG心里总会觉得不舒服吧?能解决则给与解决,这样是最好的。事实上我在https://www.doczj.com/doc/211284294.html,这样顶级的JS源码站点中,在它们的源码里都会看到采用上述解决方式进行内存的释放管理。

理解并解决IE的内存泄漏方式

Web开发的发展

在过去一些的时候,Web开发人员并没有太多的去关注内存泄露问题。那时的页面间联系大都比较简单,并主要使用不同的连接地址在同一

个站点中导航,这样的设计方式是非常有利于浏览器释放资源的。即使Web页面运行中真的出现了资源泄漏,那它的影响也是非常有限而且常常

是不会被人在意的。

今天人们对Web应用有了高更的要求。一个页面很可能数小时不会发生URL跳转,并同时通过Web服务动态的更新页面内容。复杂的事件关联

设计、基于对象的JScript和DHTML技术的广泛采用,使得代码的能力达到了其承受的极限。在这样的情况和改变下,弄清楚内存泄露方式变得

非常的急迫,特别是过去这些问题都被传统的页面导航方法给屏蔽了。

还算好的事情是,当你明确了希望寻找什么时,内存泄露方式是比较容易被确定的。大多数你能遇到的泄露问题我们都已经知道,你只需

要少量额外的工作就会给你带来好处。虽然在一些页面中少量的小泄漏问题仍会发生,但是主要的问题还是很容易解决的。

泄露方式

在接下来的内容中,我们会讨论内存泄露方式,并为每种方式给出示例。其中一个重要的示例是JScript中的Closure技术,另一个示例是

在事件执行中使用Closures。当你熟悉本示例后,你就能找出并修改你已有的大多数内存泄漏问题,但是其它Closure相关的问题可能又会被忽

视。

现在让我们来看看这些个方式都有什么:

1、循环引用(Circular References)— IE浏览器的COM组件产生的对象实例和网页脚本引擎产生的对象实例相互引用,就会造成内存泄漏。

这也是Web页面中我们遇到的最常见和主要的泄漏方式;

2、内部函数引用(Closures) — Closures可以看成是目前引起大量问题的循环应用的一种特殊形式。由于依赖指定的关键字和语法结构,

Closures调用是比较容易被我们发现的;

3、页面交叉泄漏(Cross-Page Leaks) —页面交叉泄漏其实是一种较小的泄漏,它通常在你浏览过程中,由于内部对象薄计引起。下面我们

会讨论DOM插入顺序的问题,在那个示例中你会发现只需要改动少量的代码,我们就可以避免对象薄计对对象构建带来的影响;

4、貌似泄漏(Pseudo-Leaks) —这个不是真正的意义上的泄漏,不过如果你不了解它,你可能会在你的可用内存资源变得越来越少的时候极

度郁闷。为了演示这个问题,我们将通过重写Script元素中的内容来引发大量内存的"泄漏"。

循环引用

循环引用基本上是所有泄漏的始作俑者。通常情况下,脚本引擎通过垃圾收集器(GC)来处理循环引用,但是某些未知因数可能会妨碍从其

环境中释放资源。对于IE来说,某些DOM对象实例的状态是脚本无法得知的。下面是它们的基本原则:

Figure 1: 基本的循环引用模型

本模型中引起的泄漏问题基于COM的引用计数。脚本引擎对象会维持对DOM对象的引用,并在清理和释放DOM对象指针前等待所有引用的移除

。在我们的示例中,我们的脚本引擎对象上有两个引用:脚本引擎作用域和DOM 对象的expando属性。当终止脚本引擎时第一个引用会释放,DOM

对象引用由于在等待脚本擎的释放而并不会被释放。你可能会认为检测并修复假设的这类问题会非常的容易,但事实上这样基本的的示例只是

冰山一角。你可能会在30个对象链的末尾发生循环引用,这样的问题排查起来将会是一场噩梦。

如果你仍不清楚这种泄漏方式在HTML代码里到底怎样,你可以通过一个全局脚本变量和一个DOM对象来引发并展现它。

你可以使用直接赋null值得方式来破坏该泄漏情形。在页面文档卸载前赋null值,将会让脚本引擎知道对象间的引用链没

有了。现在它将能正常的清理引用并释放DOM对象。在这个示例中,作为Web开发员的你因该更多的了解了对象间的关系。

作为一个基本的情形,循环引用可能还有更多不同的复杂表现。对基于对象的JScript,一个通常用法是通过封装JScript对象来扩充DOM对

象。在构建过程中,你常常会把DOM对象的引用放入JScript对象中,同时在DOM对象中也存放上对新近创建的JScript对象的引用。你的这种应

用模式将非常便于两个对象之间的相互访问。这是一个非常直接的循环引用问题,但是由于使用不用的语法形式可能并不会让你在意。要破环

这种使用情景可能变得更加复杂,当然你同样可以使用简单的示例以便于清楚的讨论。

更复杂的办法还有记录所有需要解除引用的对象和属性,然后在Web文档卸载的时候统一清理,但大多数时候你可能会再造

成额外的泄漏情形,而并没有解决你的问题。

闭包函数(Closures)

由于闭包函数会使程序员在不知不觉中创建出循环引用,所以它对资源泄漏常常有着不可推卸的责任。而在闭包函数自己被释放前,我们很难判断父函数的参数以及它的局部变量是否能被释放。实际上闭包函数的使用已经很普通,以致人们频繁的遇到这类问题时我们却束手无策。在详细了解了闭包背后的问题和一些特殊的闭包泄漏示例后,我们将结合循环引用的图示找到闭包的所在,并找出这些不受欢迎的引用来至何处。

Figure 2. 闭包函数引起的循环引用

普通的循环引用,是两个不可探知的对象相互引用造成的,但是闭包却不同。代替直接造成引用,闭包函数则取而代之从其父函数作用域中引入信息。通常,函数的局部变量和参数只能在该被调函数自身的生命周期里使用。当存在闭包函数后,这些变量和参数的引用会和闭包函数一起存在,但由于闭包函数可以超越其父函数的生命周期而存在,所以父函数中的局部变量和参数也仍然能被访问。在下面的示例中,参数1将在函数调用终止时正常被释放。当我们加入了一个闭包函数后,一个额外的引用产生,并且这个引用在闭包函数释放前都不会被释放。如果你碰巧将闭包函数放入了事件之中,那么你不得不手动从那个事件中将其移出。如果你把闭包函数作为了一个expando属性,那么你也需要通过置null将其清除。

同时闭包会在每次调用中创建,也就是说当你调用包含闭包的函数两次,你将得到两个独立的闭包,而且每个闭包都分别拥有对参数的引用。由于这些显而易见的因素,闭包确实非常用以带来泄漏。下面的示例将展示使用闭包的主要泄漏因素:

如果你对怎么避免这类泄漏感到疑惑,我将告诉你处理它并不像处理普通循环引用那么简单。"闭包"被看作函数作用域中的一个临时对象。一旦函数执行退出,你将失去对闭包本身的引用,那么你将怎样去调用detachEvent方法来清除引用呢?在Scott Isaacs的MSN Spaces上有一种解决这个问题的有趣方法。这个方法使用一个额外的引用(原文叫second closure,可是这个示例里致始致终只有一个closure)协助window对象执行onUnload事件,由于这个额外的引用和闭包的引用存在于同一个对象域中,于是我们可以借助它来释放事件引用,从而完成引用移除。为了简单起见我们将闭包的引用暂存在一个expando属性中,下面的示例将向你演示释放事件引用和清除expando属性。

在这篇KB文章中,实际上建议我们除非迫不得已尽量不要创建使用闭包。文章中的示例,给我们演示了非闭包的事件引用方式,即把闭包函数放到页面的全局作用域中。当闭包函数成为普通函数后,它将不再继承其父函数的参数和局部变量,所以我们也就不用担心基于闭包的循环引用了。在非必要的时候不使用闭包

这样的编程方式可以尽量使我们的代码避免这样的问题。

最后,脚本引擎开发组的Eric Lippert,给我们带来了一篇关于闭包使用通俗易懂的好文章。他的最终建议也是希望在真正必要的时候才使用闭包函数。虽然他的文章没有提及闭包会使用的真正场景,但是这儿已有的大量示例非常有助于大家起步。

页面交叉泄漏(Cross-Page Leaks)

这种基于插入顺序而常常引起的泄漏问题,主要是由于对象创建过程中的临时对象未能被及时清理和释放造成的。它一般在动态创建页面元素,并将其添加到页面DOM中时发生。一个最简单的示例场景是我们动态创建两个对象,并创建一个子元素和父元素间的临时域(译者注:这里的域(Scope)应该是指管理元素之间层次结构关系的对象)。然后,当你将这两个父子结构元素构成的的树添加到页面DOM树中时,这两个元素将会继承页面DOM中的层次管理域对象,并泄漏之前创建的那个临时域对象。下面的图示示例了两种动态创建并添加元素到页面DOM 中的方法。在第一种方法中,我们将每个子元素添加到它的直接父元素中,最后再将创建好的整棵子树添加到页面DOM中。当一些相关条件合适时,这种方法将会由于临时对象问题引起泄漏。在第二种方法中,我们自顶向下创建动态元素,并使它们被创建后立即加入到页面DOM结构中去。由于每个被加入的元素继承了页面DOM中的结构域对象,我们不需要创建任何的临时域。这是避免潜在内存泄漏发生的好方法。

Figure 3. DOM插入顺序泄漏模型

接下来,我们将给出一个躲避了大多数泄漏检测算法的泄漏示例。因为我们实际上没有泄漏任何可见的元素,并且由于被泄漏的对象太小从而你可能根本不会注意这个问题。为了使我们的示例产生泄漏,在动态创建的元素结构中将不得不内联的包含一个脚本函数指针。在我们设置好这些元素间的相互隶属关系后这将会使我们泄漏内部临时脚本对象。由于这个泄漏很小,我们不得不将示例执行成千上万次。事实上,一个对象的泄漏只有很少的字节。在运行示例并将浏览器导航到一个空白页面,你将会看到两个版本代码在内存使用上的区别。当我们使用第一种方法,将子元素加入其父元素再将构成的子树加入页面DOM,我们的内存使用量会有微小的上升。这就是一个交叉导航泄漏,只有当我们重新启动IE进程这些泄漏的内存才会被释放。如果你使用第二种方法将父元素加入页面DOM再将子元素加入其父元素中,同样运行若干次后,你的内存使用量将不会再上升,这时你会发现你已经修复了交叉导航泄漏的问题。

这类泄漏应该被澄清,因为这个解决方法有悖于我们在IE中的一些有益经验。创建带有脚本对象的DOM元素,以及它们已进行的相互关联是了解这个泄漏的关键点。这实际上这对于泄漏来说是至关重要的,因为如果我们创建的DOM元素不包含任何的脚本对象,同时使用相同的方式将它们进行关联,我们是不会有任何泄漏问题的。示例中给出的第二种技巧对于关联大的子树结构可能更有效(由于在那个示例中我们一共只有两个元素,所以建立一个和页面DOM不相关的树结构并不会有什么效率问题)。第二个技巧是在创建元素的开始不关联任何的脚本对象,所以你可以安全的创建子树。当你把你的子树关联到页面DOM上后,再继续处理你需要的脚本事件。牢记并遵守关于循环引用和闭包函数的使用规则,你不

会再在挂接事件时在你的代码中遇到不同的泄漏。

我真的要指出这个问题,因为我们可以看出不是所有的内存泄漏都是可以很容易发现的。它们可能都是些微不足道的问题,但往往需要成千上万次的执行一个更小的泄漏场景才能使问题显现出来,就像DOM元素插入顺序引起的问题那样。如果你觉得使用所谓的"最佳"经验来编程,那么你就可以高枕无忧,但是这个示例让我们看到,即使是"最佳"经验似乎也可能带来泄漏。我们这里的解决方案希望能提高这些已有的好经验,或者介绍一些新经验使我们避免泄漏发生的可能。

貌似泄漏(Pseudo-Leaks)

在大多数时候,一些APIs的实际的行为和它们预期的行为可能会导致你错误的判断内存泄漏。貌似泄漏大多数时候总是出现在同一个页面的动态脚本操作中,而在从一个页面跳转到空白页面的时候发生是非常少见的。那你怎么能象排除页面间泄漏那样来排除这个问题,并且在新任务运行中的内存使用量是否是你所期望的。我们将使用脚本文本的重写来作为一个貌似泄漏的示例。

象DOM插入顺序问题那样,这个问题也需要依赖创建临时对象来产生"泄漏"。对一个脚本元素对象内部的脚本文本一而再再而三的反复重写,慢慢地你将开始泄漏各种已关联到被覆盖内容中的脚本引擎对象。特别地,和脚本调试有关的对象被作为完全的代码对象形式保留了下来。

如果你运行上面的示例代码并使用任务管理器查看,当从"泄漏"页面跳转到空白页面时,你并不会注意到任何脚本泄漏。因为这种脚本泄漏完全发生在页面内部,而且当你离开该页面时被使用的内存就会回收。对于我们原本所期望的行为来说

这样的情况是糟糕的。你希望当重写了脚本内容后,原来的脚本对象就应该彻底的从页面中消失。但事实上,由于被覆盖的脚本对象可能已用作事件处理函数,并且还可能有一些未被清除的引用计数。正如你所看到的,这就是貌似泄漏。在表面上内存消耗量可能看起来非常的糟糕,但是这个原因是完全可以接受的。

总结

每一位Web开发员可能都整理有一份自己的代码示例列表,当他们在代码中看到如列表中的代码时,他们会意识到泄漏的存在并会使用一些开发技巧来避免这些问题。这样的方法虽然简单便捷,但这也是今天Web页面内存泄漏普遍存在的原因。考虑我们所讨论的泄漏情景而不是关注独立的代码示例,你将会使用更加有效的策略来解决泄漏问题。这样的观念将使你在设计阶段就把问题估计到,并且确保你有计划来处理潜在的泄漏问题。使用编写加固代码(译者注:就是异常处理或清理对象等的代码)的习惯并且采取清理所有自己占用内存的方法。虽然对这个问题来说可能太夸张了,你也可能几乎从没有见到编写脚本却需要自己清理自己占用的内存的情况;使这个问题变得越来越显著的是,脚本变量和expando属性间存在的潜在泄漏可能。

如果对模式和设计感兴趣,我强烈推荐Scott的这篇blog,因为其中演示了一个通用的移除基于闭包泄漏的示例代码。当然这需要我们使用更多的代码,但是这个实践是有效的,并且改进的场景非常容易在代码中定位并进行调试。类似的注入设计也可以用在基于expando 属性引起的循环引用中,不过需要注意所注册的方法自身不要让泄漏(特别使用闭包的地方)跑掉。

管道泄漏检测方法简单比较

管道泄漏检测方法简单比较 管道泄漏检测技术的研究从上世纪九十年代开始,历经二十年,已经有放射物检测法、质量平衡法、电缆检测法、微波探测、磁场感应传感器探测法、红外探测法等多种直观、简单的方法被淘汰,现在行业中有三种方法被广为介绍:光纤检漏法、负压波法、次声波法。 1、光纤检漏法: 根据Joule-Thomson效应原理,当管道发生泄漏时,泄漏源附近的温度会相应降低,监视该局部温度变化,可以对泄漏进行监测和定位。根据这个原理,光纤法应该是非常有效并且定位准确的,但存在以下几个问题: ①当泄漏量较小时,泄漏源附近温度变化较小,对光纤传感器的检测灵敏度要求相当高,因此成本也相应偏高。 ②当使用与管道平行埋设的光纤时,由于当初埋设光纤的目的不是做管道泄漏检测,因此,光纤的埋设离管道有一定的距离,并不是贴着管道埋设(实际工程中,我们多次遇到光纤离管道有十几米距离的情况),如此一来,因管道发生泄漏而引起的温度降低,光纤就检测不到。 ③即使原有光纤与管道离得很近,当发生图一情况时,由于光纤和泄漏点处于管道的两端,仍然无法报警,按照国外的报道,光纤检测系统里面的光纤需要三根均匀分布在管道周围(如图二所示),才能确保管道的泄漏报警。 图一:检测光纤与泄漏点处于管道两端

图二:光纤应埋设三根,均匀分布在管道周围 2、负压波法 当管道发生泄漏时,泄漏处由于管道内介质外泄造成管道压力突然下降,在流体中产生一个瞬态负压波,负压波沿管道向上、下游传播。由于管道的波导作用,负压波可传播数十公里,根据负压波到达上、下游测量点的时间差以及负压波在管道中的传播速度,可以计算泄漏位置。由于负压波法有效距离长、安装简捷、成本较低,目前在国内得到广泛的的应用。 负压波法有其自身的缺陷,表现在以下几个方面: ①对泄漏量要求很大:负压波法能迅速检测出泄漏量很大的泄漏,对泄漏量较小的泄漏没有效果。目前,业界对能够报警的泄漏量值说法不一,根据胜利油田一个招标项目里给出的指标:灵敏度:系统应在20秒之内探测出大于流量10%的泄漏,2分钟内探测出大于管道设计流量2%的泄漏;我们依稀可以推测出2%是一个很高的指标(详见胜利油田2013年3月招标文件《07管线漏失监控系统》); ②在天然气管道上不起作用:在天然气管道上,如果发生泄漏,泄漏处的压缩气体迅速扩张,不产生可以检测得到的负压波,因此,负压波法对天然气管道无能为力; ③在海底管道上不起作用:海底的管道受海浪冲刷,在海底如同面条般不停的摆动,管道内的介质压力相应的不停变化,负压波系统会不停的发出报警信号;福建泉港联合石化的一条总长15公里的海底管道,原本设计安装一套负压波系统,后因不停报警而撤换成次声波系统。 ④定位不准确:负压波信号是直流信号(波形如图3所示),信号从开始到结束的时

石油管道监控系统解决方案

石油管道监控系统 解决方案 目录 一、系统概述........................................ 错误!未定义书签。 设计原则....................................... 错误!未定义书签。指导思想和原则................................. 错误!未定义书签。设计依据....................................... 错误!未定义书签。二、前端监控设计.................................... 错误!未定义书签。 .监控系统结构图................................. 错误!未定义书签。监控摄像机设计.................................. 错误!未定义书签。 高清网络摄像机............................... 错误!未定义书签。标清模拟摄像机............................... 错误!未定义书签。 三、供电系统设计.................................... 错误!未定义书签。 太阳能供电..................................... 错误!未定义书签。 太阳能供电系统分析........................... 错误!未定义书签。系统安装

环境分析............................ 错误!未定义书签。方案设计.................................... 错误!未定义书签。设备介绍.................................... 错误!未定义书签。复合光缆供电................................... 错误!未定义书签。 光电复合缆直流远供技术...................... 错误!未定义书签。直流远供系统安全性能保护.................... 错误!未定义书签。远供方案.................................... 错误!未定义书签。远供设备介绍................................ 错误!未定义书签。 一、系统概述 为了保证输油管道正常工作以及防盗预警,有必要对输油管道的沿途做好视频监控工作,这样不仅可以大大增强输油管道安全管理,而且还给贵公司的日常工作带来极大便利。在此过程中监控设备的供电问题是本方案要解决的重点。 此次的监控项目与以往不同,由于输油管道的架设路线中不能就近取电,所以我们经研究后提出了两种解决方案:第一种方案是使用太阳能供电系统对监控摄像机供电;第二种是采用光电复合光缆在传递信号的同时对摄像机供电。这两种方式各有特点,在下面会有详细介绍。设计原则 本设计综合考虑输油管道需防范的区域,该区域长度比较大,有些地方是交通不便,人迹很少的区域,所以在设置防范系统监控点时,可以在重点区域选择监控点,以便充分的利用资源。

基于负压波和流量平衡的管道泄漏监测系统研究

基于负压波和流量平衡的管道泄漏监测系统研究  李新建 邓雄 (西南石油大学 石油工程学院 四川 成都 610500) 【摘 要】输油管道大量应用于现代社会中,但是由于自然因素和人为因素 管道泄漏事故时有发生,造成严重后果,因此建立管道泄漏监测系统意义重大。本文介绍了管道泄漏监测的原理,设计了负压波-流量平衡法监测系统,可以同时监测压力和流量,对于由泄漏所引起的负压波和流量变化进行综合判断,解决了单独使用负压波检测技术时误报率高、无法实时监测管道和缓慢渗漏的问题,采用了一些新技术,提高了输油管线发生泄漏时报警和定位的精确性。在油田的实验结果表明,该系统稳定可靠。 【关键词】 泄漏监测系统,负压波,流量平衡,小波变换 作者简介 李新建(1986-) 河南新蔡人,主要从事输油管道的泄漏检测和降 低油品蒸发损耗等油气储运方面的学习与研究。 1 泄漏监测与定位的研究意义 自1879年世界上首条输油管道建成以来,经过一百多年的发展,管道运输已经发展成为公路、铁路、空运、海运之外的第五大运输体系。管道运输具有成本低、供给稳定、节能、安全等优点,广泛应用于流体的输送。但是,随着管龄的增长,由于腐蚀、磨损等自然因素,管道泄漏事故时有发生,据统计1986年以前修建的输油管线平均穿孔率为0.66次/(公里.年),另 一方面,近年来不法分子在输油 管道上打孔盗油行为也日益频繁。 输油管道泄漏不仅影响了管道的正常运行,而且还威胁到人们的生命财产安全,流失油品会造成巨大的经济损失,还会造成环境污染。如何能够实时地监测管道泄漏事故,并尽快定位泄漏点,对降低油品损失和环境污染、预防重大事故的发生,具有重要的现实意义。 2 泄漏检测和定位的原理 2.1 负压波法泄漏检测技术和定位原理[1] 管道发生泄漏时,泄漏点因流体介质损失而引起的局部液体密度减小,导致瞬间压力降低,作为压力波源通过流体介质向泄漏 故障诊断

内存读取错误的原因

该内存读取错误,不能read 或written 2010年06月15日星期二 4:57 P.M. 该内存不能read 或written的常见原因: 使用Windows操作系统的人有时会遇到这样的错误信息:“0X????????指令引用的 0x00000000内存,该内存不能written”,然后应用程序被关闭。如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的常见原因。 一、应用程序没有检查内存分配失败 程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。 内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。 若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。 内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。 二、应用程序由于自身BUG引用了不正常的内存指针 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。 如果系统经常有所提到的错误提示,下面的建议可能会有帮助: 1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。 2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系

输油管道泄漏监测技术及应用

输油管道泄漏监测技术及应用 摘要:文章对国内外输油管道泄漏检测方法进行了分析,对油田输油管道防盗监测的方法进行了探讨。针对油田输油管道防盗监测问题,指出了油田输油管道防盗监测系统的关键技术是管道泄漏检测报警及泄漏点的精确定位,并介绍了胜利油田输油管道泄漏监测系统的应用情况。 主题词:输油管道泄漏监测防盗

泄漏是输油管道运行的主要故障。特别是近年来,输油管道被打孔盗油以及腐蚀穿孔造成泄漏事故屡有发生,严重干扰了正常生产,造成巨大的经济损失,仅胜利油田每年经济损失就高达上千万元。因此,输油管道泄漏监测系统的研究与应用成为油田亟待解决的问题。先进的管道泄漏自动监测技术,可以及时发现泄漏,迅速采取措施,从而大大减少盗油案件发生,减少漏油损失,具有明显的经济效益和社会效益。 1 国内外输油管道泄漏监测技术的现状 输油管道泄漏自动监测技术在国外得到了广泛的应用,美国等发达国家立法要求管道必须采取有效的泄漏监测系统。 输油管道检漏方法主要有三类:生物方法、硬件方法和软件方法。 1.1 生物方法 这是一种传统的泄漏检测方法,主要是用人或经过训练的动物(狗)沿管线行走查看管道附件的异常情况、闻管道中释放出的气味、听声音等,这种方法直接准确,但实时性差,耗费大量的人力。 1.2 硬件方法 主要有直观检测器、声学检测器、气体检测器、压力检测器等,直观检测器是利用温度传感器测定泄漏处的温度变化,如用沿管道铺设的多传感器电缆。声学检测器是当泄漏发生时流体流出管道会发出声音,声波按照管道内流体的物理性质决定的速度传播,声音检测器检测出这种波而发现泄漏。如美国休斯顿声学系统公司(ASI)根据此原理研制的声学检漏系统(wavealert),

常见错误代码提示解决方案

常见错误代码提示 解决方案 1 2020年4月19日

常见错误代码提示解决方案: 1.停止错误编号:0x0000000A 说明文字:IRQL-NOT-LESS-OR-EQUAL 一般的原因:驱动程序使用了不正确的内存地址. 解决方法:如果无法登陆,则重新启动计算机.当出现可用的作系统列表时,按F8键.Windows高级选项菜单屏幕上,选择"最后一次正 确的配置",然后按回车键. 检查是否正确安装了所有的新硬件或软件.如果这是一次全新安装,请与硬件或软件的制造商联系,获得可 能需要的任何Windows更新或驱动程序.运行由计算机制造商提供的所有的系统诊断软件,特别是内存检查. 禁用或卸掉新近安装的 硬件(RAM,适配器,硬盘,调制解调器等等),驱动程序或软件. 确保硬件设备驱动程序和系统BIOS都是最新的版本. 确保制造商可帮助 你是否具有最新版本,也可帮助你获得这些硬件.禁用 BIOS内存选项,例如cache或shadow. 2.停止错误编号:0x0000001E 说明文字:KMODE-EXPTION-NOT-HANDLED 一般的原因:内核模式进程试图执行一个非法或未知的处理器指令. 解决方法:确保有足够的空间,特别是在执行一次新安装的时候. 如果停止错误消息指出了某个特定的驱动程序,那么禁用她.如果无法启动计算机.应试着用安全模式启动,以便删除或禁用该驱动程序. 如果有非 Microsoft支持的视频驱动程序,尽量切换到标准的VGA 驱动程序或Windows提供的适当驱动程序. 禁用所有新近安装的

文档仅供参考,不当之处,请联系改正。 驱动程序. 确保有最新版本的系统BIOS.硬件制造商可帮助确定你是否具有最新版本,也能够帮助你获得她. BIOS内存选项,例如cache,shadow. 3.停止错误编号:0x00000023或0x00000024 说明文字:FAT-FILE-SYSTEM或MTFS-FILE-SYSTEM 一般原因:问题出现在Ntfs.sys(允许系统读写NTFS驱动器的驱动程序文件)内. 解决方法:运行由计算机制造商提供的系统诊断软件,特别是硬件诊断软件.禁用或卸载所有的反病毒软件,磁盘碎片整理程序或备份程序. 经过在命令提示符下运行Chkdsk /f命令检查硬盘驱动器是否损坏,然后重新启动计算机 4.停止编号:0x0000002E 说明文字ATA-BUS-ERROR 一般的原因:系统内存奇偶校验出错,一般由硬件问题导致. 解决方法:卸掉所有新近安装的硬件(RAM.适配器.硬盘.调制解调器等等).运行由计算机制造商提供的系统诊断软件,特别是硬件诊断软件.确保硬件设备驱动程序和系统BIOS都是最新版本.使用硬件供应商提供的系统诊断,运行内存检查来查找故障或不匹配的内存.禁用BIOS内存选项,例如cache或shadow.在启动后出现可用作系统列表时,按F8.在Windows高级选项菜单屏幕上,选择"启动VGA模式:.然后按回车键.如果这样做还不能解决问题,可能需要更换不同的视频适配器列表,有关支持的视频适配器列表,请参阅硬件 3 2020年4月19日

石油管道监控系统解决方案v完整版

石油管道监控系统解决 方案v HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

石油管道监控系统 解决方案

目录

一、系统概述 为了保证输油管道正常工作以及防盗预警,有必要对输油管道的沿途做好视频监控工作,这样不仅可以大大增强输油管道安全管理,而且还给贵公司的日常工作带来极大便利。在此过程中监控设备的供电问题是本方案要解决的重点。 此次的监控项目与以往不同,由于输油管道的架设路线中不能就近取电,所以我们经研究后提出了两种解决方案:第一种方案是使用太阳能供电系统对监控摄像机供电;第二种是采用光电复合光缆在传递信号的同时对摄像机供电。这两种方式各有特点,在下面会有详细介绍。 设计原则 本设计综合考虑输油管道需防范的区域,该区域长度比较大,有些地方是交通不便,人迹很少的区域,所以在设置防范系统监控点时,可以在重点区域选择监控点,以便充分的利用资源。 视频监控系统属于弱电系统的一个部分,设计者应充分了解并掌握国家、有关部门制定的设计标准及规范,并严格执行。同时还要密切注意这些标准及规范的变化和修订,以便及时做出调整。 1.系统设计应贯彻多种防范措施综合利用的原则。 2.系统设计要遵循人-机效应最佳配合的原则。? 3.应考虑为使用操作人员设计一个良好的操作环境,这主要是指控制室 的环境和能使工作人员方便操作的控制台。? 4.应根据工程的规模、投入资金、现有人力和智力结构具体情况设计系 统的自动化程度。? 5.系统应考虑设计一套较为完善的自检功能,以帮助操作人员和技术人 员对系统作必要的检查。系统还应考虑设计必要的自动统计、记录和 查询、提示功能,以帮助操作人员了解系统运行和被操作的情况。? 6.为补充人的不足因素,使系统能在发生问题或突发性事件时能够及时 做出相应的连锁反应,系统应根据防范预案设计必要的多种宏指令, 以使系统具有预案处理能力等。 7.采取现代化与实用化相结合的原则。 指导思想和原则 系统适用性 整个系统的功能和性能完全立足于安全管理和生产运营管理,提供有效的技术防范电子化手段,以满足日益严峻的安全管理的需求,并考虑充分考虑满足当前和未来十年内项目发展与运营的功能要求。 系统先进性

管道泄漏监测解决方案

管道泄漏监测解决方案 序 即使使用同样的材料,由于采用的技术不同,就会生产出性能迥异的产品; 即使同样监测的是流量、压力、温度等常规信号,由于采用的算法不同,做出的管道泄漏监测系统也会有质的不同; 绝大多数管道泄漏监测系统的差别不在于信号,而在于算法,由此便有了国外占主流地位的统计法和国内占主流地位的负压力波法; 拥有独家发明专利的北京昊科航公司,率先推出了一种崭新的算法—基于模糊神经网络的算法,从而使管道泄漏监测系统有了如下业内领先的综合性能: 1、无须设定任何参数,无须人工定位,真正的无人管理系统; 2、无论是否有流量计,都能既无漏报又无误报; 3、发生瞬时量的0.5%泄漏量时也能在0~3分钟内报警,大泄漏几米到几十米、小泄漏500米以内的定位误差; 4、消除了各种仪表误差的影响,对现场信号要求不苛刻; 5、自动识别各种生产工艺操作,消除了人工操作引起的误报警; 6、多种可选择的冗余通信技术,保证了系统的全天候工作; 7、凡是流体输送管道,无论是单段还是管网、无论是海底、陆地还是地下、无论是双层管还是单层管、无论是多品种顺序输送的成品油还是原油,只要是流体输送管道都能监测; 8、完整的运行日志记录了各种操作和故障自检记录; 9、永久的泄漏记录和历史曲线、智能报表; 10、带有电子地图上的报警位置可同时显示里程和大地坐标。 目录 一、系统简介 1. HKH系列管道泄漏监测软件系统应用原理 2. 系统工作原理 3. 系统的主要性能指标和特点 4. 系统应用 二、应用案例解析

1. 长距离多泵站串联密闭输送成品油输送管网的泄漏监测报警定位技术 2. 油田集输管网的管道泄漏监测报警定位技术。 3. 抚顺—营口成品油输送管线监测报警定位技术。 4. 管线微泄漏的监测报警定位技术。 5. 中间有加热站的管道泄漏监测报警定位技术 6. 高含水高凝油管线的监测报警定位技术。 7. 长期稳定运行、既无误报又无漏报的技术 一、系统简介 1. HKH系列管道泄漏监测软件系统应用原理 1.1. 概述 管道泄漏报警从宏观角度看并不困难。很早以前,人们已经用电接点压力表、压力开关、记录仪等工具,有效的发现了管道的泄漏,但是这种办法最大的不足是不能定位,而且对于小规模泄漏这样报警也是不合理的。这是因为管道运行中由于各种原因会产生大量的噪声(压力、流量波动),不同的管道输送环境中,这些噪声幅值也不同,一般从0.01Mpa到0.2Mpa不等,而且它在时域分布上没有准确的规律。从统计学角度看,在一定时间内每条管线的这种分布还是有一定的规律,人们还是能够认识、区分这种变化规律的,把这种认识运用到管道泄漏监测技术中,就使该项技术不断进步,实用价值越来越大。 目前国内外应用的管道泄漏监测方法有许多种,但是国内占主导地位的还是负压力波法,国外占主导地位的是统计法。从国内具体管道上的使用效果来看,由于这些方法各有它的适用范围,都不能够完全适应中国油气管道泄漏持续时间短、突发性强、泄漏情况复杂的特点。针对这一情况,我公司在国内外先进管道泄漏监测技术的基础上研制开发了适合我国管道实际状况的《HKH 系列管道泄漏监测报警定位系统》这一智能型监测装置,它是在总结了国内外各种方法的优缺点后而重新提出来的、基于模糊神经网络的人工智能型管道泄漏监测系统。该技术克服了负压力波法只能对突然发生的大规模泄漏准确检测的局限性和统计法较灵敏但相对滞后和定位误差大的缺陷,能够在多种复杂情况下对各种大小泄漏进行及时报警和准确定位,这种技术广泛的适应性和它的优良性能在实际应用中得到了很好的验证。国家知识产权局专利局已经宣布我公司的“流体输送管道泄漏监测定位方法”为国家发明专利。 1.2.负压力波法的局限性 现阶段国内用的较多的负压力波法和传统方法相比是一个巨大的进步,它不但解决了定位问题而且也比传统方法误报少得多,从本质上说它是一种声学方法,即利用在管输介质中传播的声波

次声波LD-SAKER-V管道泄漏监测报警定位系统

L D-S A K E R管道泄漏监测报警定位系统廊坊市蓝德采油技术开发有限公司

])21([2 1 V t t L X -+= LD-SAKER-II 型为负压波原理判断方法; LD-SAKER-III 型为负压波+体积平衡原理判断方法;LD-SAKER-V 型为次声波、负压波、体积平衡综合判断方法。 二、 系统工作原理(LD-SAKER-V ) LD-SAKER-V 型管道泄漏监测报警定位系统是以次声波、负压波、体积平衡三种原理综合分析、判定的报警、定位系统。该管道泄漏监测报警定位系统在负压波和体积平衡法的基础上增加目前最先进的次声波技术,是集成了多学科技术的管道泄漏监测定位系统,从根本上提高了系统的可靠性和准确性。该系统针对所监测管段全天候实时监测,对管道运行中发生的泄漏等异常事件进行报警、定位,具有很高的灵敏度和定位精度。与GPS 为核心的定位导航系统及精确的管道电子地图相结合,可以使管理部门及时准确找到泄漏现场,使管道泄漏等异常事件造成的损失降到最低。 次声波是频率低于20赫兹的声波,其传播速度和声波相同,由于次声波频率很低,大气对其吸收小,有较强的穿透能力,不容易衰减,不易被水和空气吸收,所以它传播的距离较远。 次声波技术,是管道泄漏监测领域的一种新型的监测技术,用于监测管道泄漏及管道异常时所产生的次声波,通过频谱分析分理出泄漏产生的次声波并以曲线形式反映。实践证明,该波传播速度恒定(同一介质),信号能够非常清晰地传递到远端接收单元,为准确定位创造了条件。因此,结合此项技术的泄漏监测系统在监测精度和定位准确度上有了很大的提升。次声波管道泄漏监测采用一次表动态响应并能根据输送管道动态变化实现动态低频测量的电声换能器(次声传感器),接收管道运行过程中由于泄漏引起介质瞬间物理扰动而产生次声波。次声传感器安装在管道的首、末端,捕捉由于泄漏产生的次声波以及到达管道首、末端的时间差,由公式计算泄漏 点的具体位置。 注:管道长度L 、声波传波速度V 、t1-t2为首末、站次生波接收时间差。 LD-SAKER-V 型管道泄漏监测报警定位系统以数据曲线界面作为可视化管理的基本操作界面,形象地为生产管理人员提供管道运行数据,对泄漏等情况及时报警、给出定位信息,并及时记录存储。可以在查询界面上任意查询各种管道运行历史数据、报警记录等信息。 该系统可与生产管理中心实现数据共享,进行同步监测。将管理中心平台、次声波管道泄漏监测定位技术和GPS 导航技术结合在一起的管道泄漏监测报警定位系统将是最好的技术方案。三项技术的集合,构成完整的管道安全管理体系。直观的人机界面方便了管理人员的操作和对泄漏发生地信息的即时了解,精确快速的报警系统,确保泄漏在最短时间被发现,GPS 导航系统保证了所有管理部门都能在最短时间到达事发现场。

常见内存故障解析大全

常见内存故障解析大全 导读:我根据大家的需要整理了一份关于《常见内存故障解析大全》的内容,具体内容:内存出现问题一部分是因为升级内存,但由于内存种类的不匹配,往往会遇到一些麻烦,具体出现的内存问题我为你一一支招。1、无法正常开机支招:遇到这类现象主要有三个解决的途径:... 内存出现问题一部分是因为升级内存,但由于内存种类的不匹配,往往会遇到一些麻烦,具体出现的内存问题我为你一一支招。 1、无法正常开机 支招:遇到这类现象主要有三个解决的途径:第一,更换内存的位置,这是最为简单也是最为常用的一种方法,一般是把低速的老内存插在靠前的位置上。第二,在基本能开机的前提下,进入BIOS设置,将与内存有关的设置项依照低速内存的规格设置。比如:使用其中的一根内存(如果是[url="]DDR[/url]333和DDR400的内存混合使用,最好使用DDR333的内存),将计算机启动,进入BIOS设置,将内存的工作频率及反应时间调慢,以老内存可以稳定运行为准,方可关机插入第二根内存。 2、计算机运行不稳定 支招:遇到这类问题的出现主要是内存兼容性造成的,解决的基本思路是与上面大体相同。第一,更换内存的位置。第二,在BIOS中关闭内存由SPD自动配置的选项,改为手动配置。第三,如果主板带有I/O电压调节功能,可将电压适当调高,加强内存的稳定性。 3、混插后内存容量识别不正确

支招:造成这种现象的原因,第一种可能是主板芯片组自身的原因所造成的,一些老主板只支持256MB内存的容量(i815系列只支持512MB),超出的部分,均不能识别和使用。当然还有一些情况是由于主板无法支持高位内存颗粒造成的,解决这类问题的惟一方法就是更换主板或者内存。另外在一些情况下通过调整内存的插入顺序也可以解决此问题。 内存混插不稳定的问题是一个老问题了。面对这种情况,笔者建议您在选购内存条时,要选择象金士顿、金泰克这些高品质内存,因为它们的电气兼容性及稳定性都比较出色,出现问题的几率要低一些,并且售后也都有保障。 另一部分是因为内存在使用过程中,金手指与主板的插槽接触不良引起或者是中了病毒等原因引起的问题,具体出现的内存问题及支招如下。在 4、电脑无法正常启动,打开电脑主机电源后机箱报警喇叭出现长时间的短声鸣叫,或是打开主机电源后电脑可以启动但无法正常进入操作系统,屏幕出现"Error:Unable to ControlA20 Line"的错误信息后并死机。支招:出现上面故障多数是由于内存于主板的插槽接触不良引起。处理方法是打开机箱后拔出内存,用酒精和干净的纸巾对擦试内存的金手指和内存插槽,并检查内存插槽是否有损坏的迹象,擦试检查结束后将内存重新插入,一般情况下问题都可以解决,如果还是无法开机则将内存拔出插入另外一条内存插槽中测试,如果此时问题仍存在,则说明内存已经损坏,此时只能更换新的内存条。 5、开机后显示如下信息:"ON BOARD PARLTY ERROR"。 支招:出面这类现象可能的原因有三种,第一,CMOS中奇偶较验被设为

TERA游戏中弹出错误代码解决方案一览

TERA游戏中弹出错误代码解决?案?览 T E R A游戏弹出错误代码解决?案?览 1.C o d e1:275问题状况:此异常状况為?法正常连接T E R A游戏主程式 排除?式:?T E R A官?右上?「珍奇名品馆>游戏程式」内,下载「《T E R A》登?设定档」,下载后再安装?T E R A主程式资料夹中,安装完毕后再重新执?游戏便可排除。 2.C o d e1:257 问题状况:在游戏中閒置过久?跳回伺服器列表,重新点选登?伺服器时会跳出。 排除?式:连线逾时,请玩家重新执?游戏主程式 3.C o d e1:65535 问题状况:游戏执?所需的电脑资源不?,可能為游戏档案加载记忆体时间过长、N V I D I A O P T I M U S未正确切换?效能显卡、游戏执?档被强制关闭。 排除?式- (1)採?N V I D I A O P T I M U S?动切换显卡技术的笔记型电话,请参考「FA Q:笔记型电脑不能正常执?T E R A、游戏效能不佳、错误讯息65535」 (2)若玩家的游戏主程式為复製他?已安装版本,请玩家将资料夹:『T E R A S1G a m e C o n?g』内的所有S1开头档案全数删除再进?游戏,减少记忆体加载量。 (3)若电脑萤幕解析度?正常?例(4:3、16:9),例如:1366*768 (16:10),请将预设资料夹『C:M a c r o w e l l T E R A S1G a m e C o n?g』,底下的档案『S1O p t i o n.i n i』,搜寻下列『=』前?的英?项?,并将后?英?/数字调整如下列相同: I S_F U L L S C R E E N=F a l s e R E S O L U T I O N_X=1024 R E S O L U T I O N_Y=768 S C R E E N M O D E=2 如果有缺少任何?项请??增加在[V I D E O]下?。 (4)為了确保您的电脑有确实执?游戏主程式,请玩家先配合调低桌?解析度,?论解析度為多少,请先降1~2阶级,如:1920*1080调降成1440*900,接著请玩家啟动游戏,并确认?下是不是有很?的画?出现,然后请玩家先不要有任何动作,等待约5鐘后再看游戏是否确实开出。

石油管道保护施工方案59957

目录 一、编制依据 (1) 二、概述 (1) 1.项目简介 (1) 2.输油管道概况 (2) 3.石油管线保护措施设计 (3) 三、管道保护施工方案 (4) 1.组织管理和调查 (4) 2.挖掘机、压路机施工保护措施 (4) 四、危险性分析 (4) 1.易燃性 (5) 2.易爆性 (6) 3.挥发性 (6) 4.静电荷积聚性 (7) 5.易扩散、流淌性 (7) 6.热膨胀性 (7) 7.毒害性 (7) 8.忌接触氧化剂、强酸 (8) 五、安全对策措施 (8) 六、管线破坏事故的应急预案 (8)

一、编制依据 1.《长乐市营融线(峡漳线-占前路)道路工程》施工图设计文 件; 2.《长乐市营融线(峡漳线-占前路)道路工程》岩土工程勘察报 告; 3.中石化福建石油分公司《成品油管道安全保护告知书》; 4.工程区域现场勘查资料。 二、概述 1.项目简介 长乐营融线(峡漳线-占前路)道路工程位于长乐市营前街道,道路起点为省道203交叉口再往北105.133米,终点为武警指挥学院门口。 本项目为新建道路工程,道路全长1.88km,等级为乡道二级公路兼城市主干路,路面类型为水泥混凝土路面(设计年限30年),设计速度60km/h,道路红线宽度46m,双向六车道。 本次施工内容:道路工程、交通工程、涵洞工程、给排水(雨、污)水工程、电力排管工程、通信管道工程、道路照明工程、雨水泵站工程及人行天桥工程。 道路标准横断面:人行道 4.5m+非机动车道 5.0m +侧分带2.0m+机动车道23m+侧分带2.0m+非机动车道5.0m+人行道4.5m=46m。

2.输油管道概况 成品油管道(桩号TP4-62)、里程137.783KM横穿道路桩号K1+500处,管顶覆土1.5m。根据现场勘察,原地面高程为黄海高程2.7m,管顶埋深约为0.9m(黄海高程1.8m、土质为一般软土)。 由于本段道路工程路基属一般软基,软基处理采用抛石挤淤(抛石厚度经约为1m)。涉及综合管线有雨水管道及污水管道工程,其中雨水管道管内底黄海高程为3.45m,基槽底黄海高程为3.05m,与石油管顶高差为1.25m;污水管道管内底黄海高程2.62m,基槽底黄海高程为2.22m,与石油管顶高差为0.82m。 石油管道横穿道路平面图

解决XXXX指令引用的XXXX内存,该内存不能为read 的方法

解决"XXXX指令引用的XXXX内存,该内存不能为read" 的方法 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。 首先建议: 1、检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。 2、更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 3、尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。 4、删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。在"服务和应用程序"下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。)打开"服务和应用程序",单击服

石油管道智能巡检APP系统设计方案

石油管道智能巡检APP系统的设计与实现

目录 一.方案概述 (2) 二.需求分析 (4) 三.系统设计 (5) 4.1系统总体设计 (5) 4.1.1系统设计原则 (5) 4.1.2系统结构设计 (6) 4.1.3系统工作原理 (6) 4.2系统功能模块 (7) 4.2.1移动巡检APP端 (7) 4.2.2系统管理PC端 (7)

一.方案概述 本方案提出了以地理信息系统GIS为基础,以手机移动端APP进行移动巡检,在输油管线的空间数据采集和输油管线巡检等工作中,解决输油管线空间数据信息的采集、更新(地图修正)问题和日常检修维护问题。 输油管线的日常检修工作是石油管道运输领域的难点。巡检工作需要对自然环境的变化对管线造成的损坏,人为的对管道的破坏,设备老化情况,附属设备运行情况等进行巡查。如何在事故发生前对事故防范于未然,则需要派出巡检人员实地巡查,而面对跨境大,线路长的输油管道,如何提高巡查效率,最大程度的节约人力物力资源,辅助以高效的工具就尤为重要。 本方案以手机APP为终端,与全球定位系统GPS与GIS直接结合,在巡检的同时还完成石油输送空间资源的普查和日常管理,将石油管线所有空间资源以最直观的方式体现在地图信息上,支持的多种查询方式,使管理者更加准确、高效、全面的了解石油管线的详细资料,对于网络规划和网络优化以及管线预警,应急资源调度等工作效率提高,起到了至关重要的作用。

二.需求分析 石油管道管控的最终目标是降低成本、提高工作效率以及服务水平,这需要企业能够及时、准确、全面的掌握各条管道线路的详细信息。在日常巡检工作的同时完成管线资产的清查管理,实现在网设备的全生命周期管理,实现帐目与实物一致,对石油传输实现实时综合信息的掌握。 石油管道智能巡检系统的构建目标是通过油气管道智能巡检开发,实现对石油管道的巡检的实时,快捷,准确的巡检,从而使得巡检的效率提高。因此,石油管道智能巡检系统需要实现的功能为: ①准确的定位移动,确保信息准确全面。对于石油管道巡检人员的当前位置进行准确的定位,另外实现了对于地图中的石油管道,设备等的信息实现全面的双向的查询; ②对于石油管道日常的巡检计划以及巡检人员能够方便管理。 ③石油管道智能巡检系统能够实现对于信息的实时的传输,及时迅速的响应预警。巡检人员对现场进行拍照、位置上传、问题记录等数据采集,向数据中心的服务器进行实时的传输,同时,数据中心能够对巡检数据进行及时的处理。 ④石油管道智能巡检系统的安全性要求。石油管道系统应该满足实用性与先进性的要求,能够尽可能确保运行的可靠安全。通过登录时身份验证和不同用户设置不同访问权限的方式,保证系统的运行安全。对系统全部数据进行加密处理,通过远程数据库备份数据中心的数据,从而确保数据的安全以及系统的可靠稳定。

电脑0x_指令引用的0x内存错误修复

您好!出现:0x???????? 指令引用的0x????????内存。该内存不能为"read"或"written"。答案【shijan8原创】★严禁复制★ 【1】出现该问题原因很多,首先一定要清楚是在什么时候出现该问题,把下面写的看完,对照您电脑出现的问题进行正确的解决。 【2】盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议:最好安装【正版】系统或【完整版】系统。 【3】检查驱动是否出现问题,重新安装驱动或及时更新驱动。 【4】病毒引起的:升级杀毒软件或下载专杀工具,清理恶意插件,对电脑全盘杀毒。 【5】硬件引起的: (1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。(硬件上一般不会出现该问题) 【6】软件引起的: (1)安装的软件与系统或其它软件发生冲突,盗版或带病毒的软件,请慎重下载软件,最好使用正版。【这里主要说的是检查开机启动项,把没必要启动的启动项禁止开机启动】 (2)如果你的电脑中安装了两款或两款以上的同类软件,比如:两款杀毒软件、两款优化系统软件等,请卸载一款,以免发生冲突,以保持电脑稳定性。 (3)有些系统补丁下载安装了错误补丁,可能与您当前的系统或其它软件发生冲突,也会出现该问题。卸载该补丁,找到适合您电脑补丁,重新下载重新安装。(4)当下载安装或打开运行播放器、游戏、QQ等第三方软件,出现该问题时。可能是您下载的软件存在着危险,系统本身为了保护系统不受影响,也会出现该内存不能为“read”或“wrtten”。一般的解决办法就是卸载该软件重新安装。如果不能解决,需要更换同类型其它版本的软件,或找到发生冲突的软件卸载它,问题才能解决。 【注意】:如果以确定电脑没有病毒,检查清理电脑是否存在恶意插件,把它清理掉。如果您使用windows IE浏览器出现该问题,尤其是打了错误补丁,最近windows IE变得不太稳定。用360安全卫士、安装的急救箱或其它软件进行系统修复,如果没有效果,升级或降低IE版本试试。如果还是不行,最简单的解决办法就是:下载更换其它浏览器。【不用删除windows IE,直接使用其它浏览器即可。】比如:360安全浏览器、世界之窗浏览器、傲游等。 如果上面说的检查都没问题,可以试试下面的方法:看看能不能解决。 ◆开始→运行→输入cmd→回车,在命令提示符下输入下面命令 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车。 完成后,在输入下面的 for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车。 如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。(重启电脑)。 ●在检查运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \ShellExecuteHooks 下,应该只有一个正常的键值

相关主题
文本预览
相关文档 最新文档