`
熊滔爱孟涛静
  • 浏览: 122566 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

游戏优化

阅读更多

一.代码优化

  内存会溢出肯定和代码逃不了关系,99.99%学java的人都知道垃圾回收器是 java的一大优点并据此来嘲笑C++。显然这个特性为代码编写者省了不少事,但这个特性却带来了不少隐患。举个例子在游戏当中经常有不同场景的切换,如从游戏逻辑退到主菜单逻辑,对游戏逻辑对象的态度很多人会选择忘记等待垃圾回收器来收尸。乍看之下似乎并无不妥垃圾回收器会来善后。实际上垃圾回收器并非实时的,它不像C++的Delete语句马上释放不用的内存。当从游戏逻辑切换到主菜单逻辑这时两个对象同时存在很可能这时内存就不够用了。读到这里很多人会发现实际上垃圾回收器在j2me上并不怎么好用,从一个角度上来讲在j2me上所有垃圾必须由手工释放,除简单类型以外所有对象都必须显式地置空例如 imgs=null; 实际上java提供了一个不错的工具用来查找内存溢出,java.lang.Runtime.freeMemory() 。它可以返回当前的剩余内存数,将它适当的安放在代码中可以有效的监测内存使用状况。很大一部份的j2me程序员之前都是从事pc软件开发工作,充裕的内存掩盖了许多写代码的不良习惯。如下所示:

         //a 不为空 
  a=new Logic();
 
  很多人可能对此有异议,他们会认为新的对象会把旧的对象冲掉并且释放内存。这里面包含两个问题:1. 该段代码是先创建对象然后再进行赋值操作的,也就是说在这期间有两个对象同时存在这就很可能会产生溢出。2. 这样做也会妨碍垃圾回收器的工作

  较好的写法如下:

         a=null; 
  a=new Logic();
 


  虽然麻烦了点但在j2me中还是必要的。接着看下例。

  drawString("游戏时间:" + time ,50,50,Graphics.LEFT|Graphics.TOP);

  "游戏时间:" + time 很完美在paint()方法当中每次都被刷一遍显示在屏幕上。危机往往隐藏在美丽的外表,该语句会引起新的内存重新分配来存储 "游戏时间:" + time 而显示完以后又必须由垃圾回收器释放,用了双倍时间,并且容易发生内存溢出。依此类推在重复执行的方法里应尽量避免重复定义对象。与paint()方法类似在循环里也有类似的情况存在。

  把所有对象的初始化放在构造函数里想必是再正当不过了,大多数人通常的做法是把当前逻辑所要用到的资源通通初始化完毕。

  很大一部份的内存溢出都是发生在构造函数中。内存使用的高峰期都是在构造函数中所以避开这个高峰能有效的防止溢出。建议最好的办法是第一次使用时初始化。如下所示

         if (img==null){ 
  //初始化

  }
 
  现在做游戏很多时候都需要地图数组,声音数组,还有一些其它资源这些资源很多可以放在代码中也有的可以放在文件当中。

  强烈建议将这些资源放在文件中需要时在load进来。这些资源文件如果放在代码中则会占用不小的代码段空间,而代码一般是程序一运行就装载到内存当中。

  除上面列举的方法外还有一些大家所熟知的顺便一提, 比如关闭没用的rms ,关闭没用的网络连接,关闭没用的流。正确地停止线程。良好的程序架构减少代码偶合性也是一个不错的方法,无论在代码调式,内存释放都可以做到非常清析。

  二.图片优化

  j2me的内存杀手无疑非图片莫属,一张3k的图片可以占用20多k的内存不信大家把load前后的内存剩余打印出来对比看看。所以防止内存溢出最直接的办法就是从图片入手。

  1.图片压缩: 多数人马上会想到这个办法。不错这个办法是最有效的。在photoshop里图片制作完成后不要选择 "存储为",而是选择 "存储为 web 所用格式" 可以根据里面的选项进行压缩,特别是颜色这一项越小越好不过相应的图像会有所失真。不要认为这样就完了。

  实际上该图片还可以再次压缩,在网上有许多类似的工具。推荐一款可以压缩png格式的软件 xat.com Image Optimizer 效果不错。经常都有 70% 的压缩率且图像不会失真。

  假如你有多张规格一样的图片,那么建议你把它做成一张长条图片。有两个原因:

  1、 这样节省存储空间和内存空间。大家可做个试验将10张图片的内容放在一张当中对比看看文件大小有没有变化。

  2 、10张图片需要10个image 对象需要进行10次io操作浪费时间不说还浪费内存。当笔者发现这个好处时兴奋地把所有图片都存成一张,吱地一声内存又溢出了...原因想必大家也知道!!图片太大了不要把不同界面的图片整合在一起否则经常会得不偿失。

  作图时还有一些细节需要注意,颜色数量,分辩率,图像模式(最好是索引颜色),画布大小都会影响到图片大小。

  三.工具优化

  谁都知道混淆器是用来保护代码的以加大反编译的难度(个人认为这是在嘲笑程序员的智商)。实际上用它来优化程序也是不错的选择,至少有两点好处:

  1、 压缩程序大小。

  2、节省内存空间。

分享到:
评论

相关推荐

    盛大游戏优化大师软件v3.8.13073.0114中文官方免费版

    游戏优化大师是专为游戏用户打造的专业优化工具箱,致力于解决游戏型用户的电脑配置、系统优化等问题,是超过千万游戏用户推荐的游戏必备工具。 游戏优化大师支持近百款网络游戏和单机游戏,只要您正常安装了这些...

    网页游戏优化卫士v1.7官方免费版

    网页游戏优化卫士是专为网页游戏玩家量身打造的浏览器优化工具,能够帮助玩家优化系统性能,提升浏览器玩网页游戏体验。主要功能:优化与游戏无关的程序和系统资源,还能帮助用户修复异常的浏览器状态,解决网页游戏...

    网页游戏优化卫士 v1.5.exe

    网页游戏优化卫士是专为网页游戏玩家量身打造的浏览器优化工具,能够帮助玩家优化系统性能,提升浏览器玩网页游戏体验。主要功能:优化与游戏无关的程序和系统资源,还能帮助用户修复异常的浏览器状态,解决网页游戏...

    盛大游戏优化大师 v2.0 Beta

    游戏优化大师是为游戏体验而生的通用游戏化工具。具有自主专利的内存,CPU和网络动态管理技术。帮您智能解决游戏时的卡机、停顿、内存不足等问题,简单到只需按下"开启游戏模式"即可立即优化。 盛大游戏优化大师 v...

    360游戏优化器独立版(绿色免安装).rar

    360游戏优化器能够一键优化你的系统,帮你清理内存,为游戏腾出更多系统资源,加快运行速度。清理物理内存将物理内存占用交换到虚拟内存中,为游戏腾出更多可用内存空间。屏蔽WINDOWS左键,防止在游戏中不小心按到...

    游戏优化大师2012V3.9.13929.0630中文官方正式版

    游戏优化大师,自动识别超过20款的游戏,自动提示开启,拥有自主的CPU,网络及CPU动态管理技术,全智能解决卡机,停顿,内存不足等常见问题,是你流畅游戏的好帮手。 游戏优化大师 特色功能: 全面性能检测 针对玩...

    Smart Game Booster(cpu游戏优化加速软件)官方中文版V5.2.0.567

    Smart Game Booster(cpu游戏优化加速软件)官方中文版V5.2.0.567

    生命游戏优化源码

    生命游戏优化源码 C 和 C++两个版本

    AMDRadeonHD显卡游戏优化档案13.5CAP1版ForWinXP-32-64Vista-32-64Win7-32-64Win8-32-64

    AMD Radeon HD显卡游戏优化档案13.5 CAP1版For WinXP-32/WinXP-64/Vista-32/Vista-64/Win7-32/Win7-64/Win8-32/Win8-64(2013年5月24日发布) 自从AMD调整了催化剂更新策略之后,AMD显卡催化剂驱动在功能上的变动也...

    360游戏优化器独立版

    360游戏优化器独立版 绿色的单文件 功能单一 体积小 从庞大的安全卫士里分离出来 方便使用

    酷客游戏优化器 v1.4.zip

    使用酷客游戏优化器让游戏运行更轻松。 酷客游戏优化器具体功能: 1:一键式优化网络 2:一键式优化系统设置 3:一键式对进程进行优化 支持全部游戏,自动根据系统状况进行优化,速度提升看得到。

    网页游戏优化卫士 v1.5

    网页游戏优化卫士是专为网页游戏玩家量身打造的浏览器优化工具,能够帮助玩家优化系统性能,提升浏览器玩网页游戏体验。主要功能:优化与游戏无关的程序和系统资源,还能帮助用户修复异常的浏览器状态,解决网页游戏...

    mmo游戏优化经验;初级分享

    移动游戏的优化经验;针对不同类型的情况来分析并解决

    Flash游戏优化技巧

    Flash游戏优化技巧;Flash游戏优化技巧;Flash游戏优化技巧

    CPU和游戏优化.pdf

    "CPU和游戏优化" 在讨论 CPU 和游戏优化时,我们需要了解多核 CPU 的工作机制和游戏的运行机制。随着 AMD 锐龙的横空出世,电脑 CPU 进入了多核时代,多核 CPU 打游戏并不一定更快,某些情况下甚至会更慢。游戏的...

    360游戏优化大师独立版

    360游戏优化大师独立版

    外星人入侵游戏优化重构

    《Python编程:从入门到实践》第二部分项目1:外星人入侵。小游戏开发自写。对游戏的开始程序进行了优化和重构。添加start_game函数,按P开始游戏,添加了计分板文字,调整外星人在屏幕中的位置。

    AMD游戏优化软件(AMDGamingEvolved)v1.0官方安装免费版

    AMD Gaming Evolved是一款由amd联合raptr打造的专业游戏优化软件,软件可以大大地优化APM系列CPU的性能,让你玩起来更加地流畅,改善玩家的游戏体验,除此之外,AMD Gaming Evolved还提供共了驱动更新、系统优化、...

    Chris PC Game Booster 2.40注册版游戏优化器.rar

    游戏优化加速器Chris PC Game Booster,如果你是游戏爱好者,就一定不要错过这个游戏加速器,它可以在不更换硬件的前提下,优化加速你的游戏运行速度。能够调节你的CPU在最高效状态,提高你的显卡GPU频率,提高...

    玩游戏优化加速的工具

    应该是优化CPU之类的 用了 觉得没什么效果 ,,不过在论坛找到的 应该不错

Global site tag (gtag.js) - Google Analytics