getfield

Unity3D游戏开发中的数据存储

匆匆过客 提交于 2019-12-03 03:03:09
所有的游戏开发都离不开数据存储的操作, Unity3D 也不例外,下面向大家介绍一下 Unity3D 相关的数据存储方法。 一、 PlayerPrefs 是 Unity 系统自带的一种最简单的存储方式,以 plist 键值对方式存放, pc 存放在注册表中, ios 存放在 plist 中,而 android 存放在 data 文件夹 / 中。 使用例子如下: PlayerPrefs.SetInt("keyInt",100); PlayerPrefs.SetFloat("keyFloat",100.02f); PlayerPrefs.SetString("keyString","100"); PlayerPrefs.GetInt("keyInt",0); PlayerPrefs.GetFloat("keyFloat",0); PlayerPrefs.GetString("keyString","0"); PlayerPrefs.DeleteAll(); PlayerPrefs.DeleteKey("keyInt"); bool hasKeyInt = PlayerPrefs.HasKey("keyInt"); 二、读取普通文本资源 :TextAsset TextAsset text = (TextAsset)Resources.Load("unity3d"); Debug.Log

Avoiding getfield opcode

匿名 (未验证) 提交于 2019-12-03 02:11:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: In Java's String class, the trim method contains this: int off = offset; /* avoid getfield opcode */ char[] val = value; /* avoid getfield opcode */ I'm a bit puzzled by the comment "avoid getfield opcode" ... What does this mean? (I take it this avoids the use of getfield in the bytecode but why is this a Good Thing [TM]?) Is it to prevent object creation in case trim doesn't do anything (and hence this is returned) or? 回答1: My guess is that the point is to copy the values into local variables once, to avoid having to fetch the field value

C++的性能优化实践【转】

痞子三分冷 提交于 2019-11-26 18:31:30
原文: http://www.cnblogs.com/me115/archive/2013/06/05/3117967.html 1. 二八法则:在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的;在优化实践中,我们将精力集中在优化那20%最耗时的代码上,整体性能将有显著的提升;这个很好理解。函数A虽然代码量大,但在一次正常执行流程中,只调用了一次。而另一个函数B代码量比A小很多,但被调用了1000次。显然,我们更应关注B的优化。 2. 编完代码,再优化;编码的时候总是考虑最佳性能未必总是好的;在强调最佳性能的编码方式的同时,可能就损失了代码的可读性和开发效率; 工具: 1 Gprof 工欲善其事,必先利其器。对于Linux平台下C++的优化,我们使用gprof工具。gprof是GNU profile工具,可以运行于linux、AIX、Sun等操作系统进行C、C++、Pascal、Fortran程序的性能分析,用于程序的性能优化以及程序瓶颈问题的查找和解决。通过分析应用程序运行时产生的“flat profile”,可以得到每个函数的调用次数,消耗的CPU时间(只统计CPU时间,对IO瓶颈无能为力),也可以得到函数的“调用关系图”,包括函数调用的层次关系,每个函数调用花费了多少时间。 2. gprof使用步骤 1) 用gcc、g++