请尝试以下 *** 作:
一、暂时停用安全保护软件。
安全保护软件与防火墙对于您的计算机安全是一个非常重要的环节。然而,在保护您的计算机的同时,这些软件可能会同时导致Blizzard的游戏无法正常的下载、安装,或更新。停用或暂时不安装安全保护软件可以解决这些问题。
二、优化网络连接。
由于网络问题复杂且成因较多,以下每一条都曾经帮助过相当部分用户解决问题,请逐一尝试,每个步骤都有可能解决您的问题。
1、自定义hosts可能导致网络问题,请删除 C:\Windows\system32\drivers\etc\hosts 文件,重启计算机后将生成默认的hosts文件。
2、取消代理服务器设置
(1)、同时按下Win键+R键盘在运行窗口输入 inetcplcpl ,点击确定后看到Internet属性栏
(2)、点击连接标签确保选中 从不进行拨号连接
(3)、单击 局域网设置按钮确保未勾选为LAN使用代理服务器,并点击确定。
三、测试您的互联网连接。
1、点击开始,并在下面查找框里输入cmd。
2、在命令窗口,输入tracertcnlogonbattlenet>C:/testtxt并按下回车键
3、若按下回车后,提示客户端没有所需的特权或者拒绝访问,可以尝试将目标地址修改为其他盘符,如tracertcnlogonbattlenet> E:/testtxt
4、请耐心等待计算机运行tracert命令,可能需要几分钟时间。当返回至命令提示时,说明tracert已经完成
5、输入exit并按下回车可关闭命令窗口
分析结果:
(1)在最左侧的数字是跳数。
(2)接下来的三个数字(每个后面跟有"ms")是时长,以毫秒为单位,它是您的计算机收到您尝试连接的计算机的响应所耗费的时间。一个很高的值,例如基于宽带是200ms或拨号是350ms,则表明传送速度是缓慢的,可能会导致延迟情况。
星号()表示您的计算机没有收到来自您所尝试连接的计算机的所有响应这代表它可以完全阻止您连接到我们的服务器,或者导致您突然断开连接。
(3)最后部分信息是您尝试连接的服务器的这一跳的DNS(或"名字")IP号码。如果您没有收到来自这个服务器的任何响应,您可能会收到一条错误提示,类似'RequestTimedOut','DestinationNetUnreachable',"连接超时","无法访问目标网络"。
重要:由于我们魔兽世界服务器需要阻止来路不明的访问和攻击,您可能在tracert的最后的一跳得到一个错误提示,类似"cnlogonbattlenetreports:Destinationhostunreachable"。这个提示是正常的,并不表示您的互联网连接有异常。
如果您发现在达到我们魔兽世界游戏服务器之前您的Traceroute的跳数出现任何错误提示或星号,您需要联系您的网络供应商(ISP)并向他们提供您的Traceroute结果以寻求进一步的帮助。
四、不要使用网络加速
请尝试取消任何一种网络加速之后,重启电脑并且重新登入游戏。
五、请尝试向暴雪官方提供详细的测试流程
暴雪测试玩家网络与《魔兽世界》相关服务器或网段之间,各网络过路节点的实际情况。以便寻求最佳解决方案。
测试地址如下:魔兽世界中国官方网站-测试专用用户协助测试说明
后面显不显示速度都没什么关系首先修改你游戏安装目录下边的
\element\userdata\server里的serverlisttxt文件,此文件为服务器地址文件
建议修改前先备份
将此文件修改为
电信一区
叹妙 29000:582158353 501
流波 29000:5821583159 502
幻月 29000:5821583176 503
玄鸟 29000:5821583189 504
静竹 29000:5821583204 505
乘黄 29000:5821583224 506
斩龙 29000:5821583239 507
紫电 29000:582158615 508
墨雪 29000:582158627 509
飞景 29000:582158637 510
承影 29000:582158325 521
通天 29000:582158654 522
天龙 29000:582158674 527
伏虎 29000:582158693 528
君临 29000:5821586123 538
真武 29000:5821586145 539
电信二区
望月 29000:12565205168 511
广目 29000:12565207201 512
湛泸 29000:12565206215 513
白泽 29000:1256520526 514
赤霄 29000:1256520538 523
飞天 29000:1256520726 524
斩魔 29000:12576231197 529
白虹 29000:12576231207 530
御雷 29000:12576231219 531
风神 29000:12576231235 532
霸天 29000:2183081218 540
紫微 29000:12565205200
百炼 29000:12565205186
网通一区
应龙 29000:221192143165 515
天狼 29000:221192143181 516
须弥 29000:221192143189 517
流采 29000:221192143203 518
赤焰 29000:221192143218 519
玉清 29000:221192143211 520
傲鹰 29000:221192146189 525
覆海 29000:221192143243 526
九天 29000:2111471224 533
射日 29000:221192146199 534
无双 29000:221192146212 535
镇魔 29000:221192146224 536
玄火 29000:22119214333 537
然后直接通过element文件夹里的elementclientexe文件登陆游戏!
原来的serverlisttxt里面显示的是:
电信一区
叹妙 29000:tanmiaolinkzhuxiancomcn 501
流波 29000:liubolinkzhuxiancomcn 502
幻月 29000:huanyuelinkzhuxiancomcn 503
玄鸟 29000:xuanniaolinkzhuxiancomcn 504
静竹 29000:jingzhulinkzhuxiancomcn 505
乘黄 29000:chenghuanglinkzhuxiancomcn 506
斩龙 29000:zhanlonglinkzhuxiancomcn 507
紫电 29000:zidianlinkzhuxiancomcn 508
墨雪 29000:moxuelinkzhuxiancomcn 509
飞景 29000:feijinglinkzhuxiancomcn 510
承影 29000:chengyinglinkzhuxiancomcn 521
通天 29000:tongtianlinkzhuxiancomcn 522
天龙 29000:tianlonglinkzhuxiancomcn 527
伏虎 29000:fuhulinkzhuxiancomcn 528
君临 29000:junlinlinkzhuxiancomcn 538
真武 29000:zhenwulinkzhuxiancomcn 539
电信二区
望月 29000:wangyuelinkzhuxiancomcn 511
广目 29000:guangmulinkzhuxiancomcn 512
湛泸 29000:zhanlulinkzhuxiancomcn 513
白泽 29000:baizelinkzhuxiancomcn 514
赤霄 29000:chixiaolinkzhuxiancomcn 523
飞天 29000:feitianlinkzhuxiancomcn 524
斩魔 29000:zhanmolinkzhuxiancomcn 529
白虹 29000:baihonglinkzhuxiancomcn 530
御雷 29000:yuleilinkzhuxiancomcn 531
风神 29000:fengshenlinkzhuxiancomcn 532
霸天 29000:batianlinkzhuxiancomcn 540
紫微 29000:ziweilinkzhuxiancomcn
百炼 29000:bailianlinkzhuxiancomcn
网通一区
应龙 29000:yinglonglinkzhuxiancomcn 515
天狼 29000:tianlanglinkzhuxiancomcn 516
须弥 29000:xumilinkzhuxiancomcn 517
流采 29000:liucailinkzhuxiancomcn 518
赤焰 29000:chiyanlinkzhuxiancomcn 519
玉清 29000:yuqinglinkzhuxiancomcn 520
傲鹰 29000:aoyinglinkzhuxiancomcn 525
覆海 29000:fuhailinkzhuxiancomcn 526
九天 29000:jiutianlinkzhuxiancomcn 533
射日 29000:sherilinkzhuxiancomcn 534
无双 29000:wushuanglinkzhuxiancomcn 535
镇魔 29000:zhenmolinkzhuxiancomcn 536
玄火 29000:xuanhuolinkzhuxiancomcn 537
这样的数据对吧``
如果你要进入电信一的叹秒服的话就将叹妙 29000:tanmiaolinkzhuxiancomcn 501改成叹妙 29000:582158353 501 tanmiaolinkzhuxiancomcn 501
就行了``注意这个时候其他的IP不要更改``然后直接通过element文件夹里的elementclientexe文件登陆游戏!会看到服务器的,只不过后面没现实PING而已,这个时候直接登陆你要进的那个服务器连接还是能进去的
还有,改之前最好备份`
直观地说,就是storecpp的第519行出错了。
但并不一定是说,519行有什么语法错误,也可能根源在此之前。
该警告表明程序在选定点的行为与预期行为不符合。
在程序跟踪调试过程出现此警告,最常见的错误就是引用了不存在的变量或函数,或者变量未经过声明、函数未经定义,又或者把某个局部变量当做全局变量引用。此类错误通常归结为所谓的“野指针”。
另一类可能是编程习惯不严谨,导致的内存泄漏。
查错应首先着手于519行调用了什么,如果是变量或函数,则此变量在之前是否未声明、函数未定义,又或者曾经存在但在519行之前又被删去;如果519行是与创建资源相关,那么资源创建与其特性是否考虑周到。比如,反复创建同一类资源,在前一资源未释放内存条件下又重复创建。如此,可能导致分配的内存很快耗尽,程序崩溃。
一、assertion的作用
assertion用于差错,C++通过assert宏提供断言功能,其功能定义如下:
assert([表达式]);//表达式为假,程序终止在这一行,并报错。
断言是一种判断条件,在程序执行中的特定点条件表达式必须为真。在条件不满足时系统停止程序的执行并报告错误。
C++通过assert宏提供断言功能,要使用assert宏必须包含头文件#include <cassert>
assert要执行一个可以得出true或者false的表达式。通常,关系表达式,逻辑表达式或者返回为bool值的函数都可以用于assert表达式
二、程序在选定点的行为与预期行为不符合,可能的原因包括野指针和内存泄漏
野指针——野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行 *** 作很容易造成程序错误。
内存泄漏(Memory Leak)——指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
泄漏原因
在C语言中,从变量存在的时间生命周期角度上,把变量分为静态存储变量和动态存储变量两类。静态存储变量是指在程序运行期间分配了固定存储空间的变量而动态存储变量是指在程序运行期间根据实际需要进行动态地分配存储空间的变量。在内存中供用户使用的内存空间分为三部分:
程序存储区
静态存储区
动态存储区。
程序中所用的数据分别存放在静态存储区和动态存储区中。静态存储区数据在程序的开始就分配好内存区,在整个程序执行过程中它们所占的存储单元是固定的,在程序结束时就释放,因此静态存储区数据一般为全局变量。动态存储区数据则是在程序执行过程中根据需要动态分配和动态释放的存储单元,动态存储区数据有三类函数形参变量、局部变量和函数调用时的现场保护与返回地址。由于动态存储变量可以根据函数调用的需要,动态地分配和释放存储空间,大大提高了内存的使用效率,使得动态存储变量在程序中被广泛使用。
开发人员进行程序开发的过程使用动态存储变量时,不可避免地面对内存管理的问题。程序中动态分配的存储空间,在程序执行完毕后需要进行释放。没有释放动态分配的存储空间而造成内存泄漏,是使用动态存储变量的主要问题。一般情况下,开发人员使用系统提供的内存管理基本函数,如malloc、recalloc、calloc、free等,完成动态存储变量存储空间的分配和释放。但是,当开发程序中使用动态存储变量较多和频繁使用函数调用时,就会经常发生内存管理错误,例如:
分配一个内存块并使用其中未经初始化的内容;
释放一个内存块,但继续引用其中的内容;
子函数中分配的内存空间在主函数出现异常中断时、或主函数对子函数返回的信息使用结束时,没有对分配的内存进行释放;
程序实现过程中分配的临时内存在程序结束时,没有释放临时内存。内存错误一般是不可再现的,开发人员不易在程序调试和测试阶段发现,即使花费了很多精力和时间,也无法彻底消除。
产生方式的分类
以产生的方式来分类,内存泄漏可以分为四类:
常发性内存泄漏:发生内存泄漏的代码会被多次执行到,每次被执行时都会导致一块内存泄漏。
偶发性内存泄漏:发生内存泄漏的代码只有在某些特定环境或 *** 作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
一次性内存泄漏:发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄漏。
隐式内存泄漏:程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。
1、野指针的病例:
在画图的时候经常会定义一些画刷啊,画笔啊之类的指针,一般都是这么干的:CPen myPen=new CPen
然后用完后就会来一句:delete myPen,发现程序居然会报错!把这个delete语句删除就没问题了,这是为什么呢?难道不需要释放吗?
而且观察到用来申请内存的new貌似和平常的不一样,是紫色的,就像宏定义一样,但在new上右键又转不到类似宏的定义上去,这又是为什么呢?
已经把画笔还原成了原来的oldPen,但是在最后delete oldPen就会报错,只能改成上面那句oldPen=NULL;
oldPen 是个"pen" select 回去后, 表示 还回 , 必须是 存在的!
把它delete 掉了就不存在了!
所以不要管 pOldPen(不要=0,不要delete) , 这是个局部变量 ,出函数就没有了。
2、内存泄漏的病例:
非静态内部类创建静态实例造成的内存泄漏
例如,有时候我们可能会在启动频繁的Activity中,为了避免重复创建相同的数据资源,可能会出现如下写法:
public class MainActivity extends AppCompatActivity {
private static TestResource mResource = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
if(mResource == null){
mResource = new TestResource();
}
//
}
class TestResource {
//
}
}
这样在Activity内部创建了一个非静态内部类的单例,每次启动Activity时都会使用该单例的数据。虽然这样避免了资源的重复创建,但是这种写法却会造成内存泄漏。因为非静态内部类默认会持有外部类的引用,而该非静态内部类又创建了一个静态的实例,该实例的生命周期和应用的一样长,这就导致了该静态实例一直会持有该Activity的引用,从而导致Activity的内存资源不能被正常回收。
解决方法:将该内部类设为静态内部类或将该内部类抽取出来封装成一个单例,如果需要使用Context,就使用Application的Context。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)