`
crazier9527
  • 浏览: 1004630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于开发游戏时性能优化的一些方法(转)

阅读更多

目前来说Android平台在整体性能上表现不错,大多数调用都是Dalvik API通过JNI到底层了,但是在游戏性能方面和iPhone的Objective-C有着较大的差距,最新发现有如下的改进:

  1. 首先内存方面,可以参考 Android堆内存也可自己定义大小 和 优化Dalvik虚拟机的堆内存分配

  2. 基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。Android123提示游戏开发者,这点比较有意思的是Google推出NDK可能是帮助游戏开发人员,比如OpenGL ES的支持有明显的改观,本地代码操作图形界面是很必要的。

  3. 图形对象优化,这里要说的是Android上的Bitmap对象销毁,可以借助recycle()方法显示让GC回收一个Bitmap对象,通常对一个不用的Bitmap可以使用下面的方式,如

  if(bitmapObject.isRecycled()==false) //如果没有回收  
         bitmapObject.recycle();   

  4. 目前系统对动画支持比较弱智对于常规应用的补间过渡效果可以,但是对于游戏而言一般的美工可能习惯了GIF方式的统一处理,目前Android系统仅能预览GIF的第一帧,可以借助J2ME中通过线程和自己写解析器的方式来读取GIF89格式的资源。

  5. 对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureDetector 和重力感应来实现操控。通常我们还要考虑误操作问题的降噪处理。

Android堆内存也可自己定义大小

    对于一些大型Android项目或游戏来说在算法处理上没有问题外,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了上次Android开发网提到的 优化Dalvik虚拟机的堆内存分配 外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的dalvik.system.VMRuntime类来设置最小堆内存为例:

  private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;

  VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //设置最小heap内存为6MB大小。当然对于内存吃紧来说还可以通过手动干涉GC去处理,我们将在下次提到具体应用。

优化Dalvik虚拟机的堆内存分配

对于Android平台来说,其托管层使用的Dalvik Java VM从目前的表现来看还有很多地方可以优化处理,比如我们在开发一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,使用dalvik.system.VMRuntime类提供的setTargetHeapUtilization方法可以增强程序堆内存的处理效率。当然具体原理我们可以参考开源工程,这里我们仅说下使用方法:   private final static float TARGET_HEAP_UTILIZATION = 0.75f; 在程序onCreate时就可以调用VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);  即可。

 

转自:http://blog.csdn.net/wenhaiyan/archive/2010/04/23/5519567.aspx

分享到:
评论

相关推荐

    移动平台游戏的性能优化

    移动平台游戏性能优化是一门重要的技术领域,随着智能手机和平板电脑的快速发展,越来越多的游戏开发者开始重视如何在移动设备上实现高质量游戏体验的同时,保证游戏运行流畅无延迟。在此背景下,Qualcomm骁龙游戏和...

    Unity性能优化.pptx

    Unity性能优化是指在游戏开发中提高游戏性能的过程,包括优化CPU和GPU的使用,以提高游戏的帧率和画质。下面是 Unity性能优化的相关知识点: 1. Unity性能调试工具及使用方法 Unity提供了多种性能调试工具,例如...

    unity性能优化(pdf).rar

    Unity性能优化是游戏开发中的重要环节,特别是在使用Unity3D引擎进行C#编程时,确保游戏运行流畅、资源高效利用是提升用户体验的关键。本PDF文档很可能是针对Unity引擎的性能优化策略进行深入探讨的资料,涵盖了多...

    Unity游戏开发优化

    性能优化的步骤: 1. 分析问题:首先需要分析游戏中的性能问题。 2. 确定优化目标:确定需要优化的目标,例如游戏资源、算法、游戏对象等。 3. 实现优化:使用合适的技术和方法来实现优化。 4. 迭代优化:反复进行...

    移动游戏GPU性能优化

    移动游戏GPU性能优化是游戏开发中一项极为重要的工作,因为它直接影响游戏在不同移动设备上的流畅度和用户体验。优化GPU性能首先要理解它的工作原理和性能瓶颈的来源。 CPU端性能瓶颈主要出现在将渲染资源准备完毕...

    云风游戏优化.ppt

    首先,优化并不总是关于提高帧速率,尽管帧速率是衡量游戏流畅度的重要指标。优化的目标应包括减少加载时间、控制CPU占用率,甚至是在多任务环境下保持稳定性能。优化工作应该始于开发初期,而非等到问题出现时才...

    王哲:Cocos2D游戏性能优化

    Cocos2D这款用于开发2D游戏的开发框架以及由其衍生的Cocos2D-X跨平台开发框架和众多分支,正在帮助越来越多的开发者实现高效稳定...作为Cocos2D-X核心开发者,王哲将分享优化Cocos2D-X、Cocos2D-HTML5游戏性能的案例。

    Flash开发性能优化宝典

    在Adobe Flash平台上开发应用时,性能优化是提升用户体验的关键因素。Flash因其强大的交互性和跨平台能力,曾广泛应用于网页游戏、动画以及丰富的互联网应用程序(RIA)。然而,随着技术的发展,Flash面临性能挑战,...

    如何优化基于Unity开发的3D移动游戏

    以下分别详细解析了在Unity环境下开发3D移动游戏时,资源、引擎、代码和着色器四个方面的优化知识点。 一、资源相关优化 资源优化是游戏优化的基础,主要包括动态物体和静态物体的优化、纹理和音频数据的处理、...

    J2ME游戏开发的高级优化技巧 J2ME游戏开发的高级优化技巧

    优化可以帮助提升游戏性能,确保游戏运行在最佳状态。 首先,我们需要理解优化的重要性。实时游戏要求快速的响应时间,以维持至少10 FPS以上的刷新率,这对于动作游戏的可玩性和挑战性至关重要。对于非实时游戏,如...

    C++性能优化技术

    以下是一些C++性能优化的重要知识点: 1. **算法优化**:优化算法是提升程序性能的根本方式。选择合适的数据结构和高效的算法可以显著减少计算量和内存使用,从而提高程序性能。 2. **循环优化**:循环是计算密集...

    游戏程序优化教程、Game软件优化详解

    尽管两种语言有很多相似之处,但在性能优化方面还是存在一定的差异: - **性能差异**:传统观念认为C语言比C++更快大约10%,但这种观点并不准确。实际上,现代编译器已经非常先进,能够生成高效的机器码,使得C++和...

    iOS and macOS 性能优化

    在iOS和macOS平台上进行性能优化是开发过程中至关重要的一环,它关系到应用程序的响应速度、用户体验以及设备电池寿命。本资源"iOS and macOS 性能优化"提供了一个详细指南,帮助开发者提升应用的效率。以下是一些...

    网络游戏-用于优化网络性能的网络分析方法和装置以及具有实施所述方法的程序的记录介质.zip

    标题中的“网络游戏-用于优化网络性能的网络分析方法和装置”揭示了该文件内容的核心,主要涉及网络游戏领域的网络性能优化技术。这通常涉及到网络通信、数据传输效率、延迟减少、带宽管理等多个方面。网络分析方法...

    android 游戏性能测试 源码

    总的来说,这个源码可能包含了一些用于测试和分析Android游戏性能的关键组件,如性能监控工具、渲染性能测试、内存使用跟踪等。通过理解和应用这些测试方法,开发者能够系统地优化游戏,提高其在各种Android设备上的...

    Android性能优化

    ### Android性能优化详解 在移动应用开发领域,特别是在Android平台上,提供流畅且高效的用户体验至关重要。优秀的用户体验主要体现在三个方面:快速响应、即时反馈以及平滑无间断的操作体验。本文将围绕这三个方面...

    游戏开发技术总结(经典之作)第十集源代码

    快一点"这个文件名可能指的是游戏性能优化方面的内容。在游戏开发中,性能优化是一项重要的任务,因为它直接影响到游戏的流畅度和用户体验。这可能涵盖了如何减少CPU和GPU的负载,优化内存使用,以及使用多线程技术...

    unity3d iphone游戏开发时的场景优化

    在Unity3D进行iPhone游戏开发时,场景优化是提升游戏性能、确保流畅体验的关键环节。由于移动设备的硬件限制,特别是在早期的iPhone上,未经优化的游戏可能会遇到运行效率低下、卡顿等问题。以下是对给定内容中提到...

Global site tag (gtag.js) - Google Analytics