Articles of 分析器

Unity引擎内存使用问题 – 占用超过它应该

我正在制作一个主要由精灵组成的2D游戏。 由于它们中的很多文件尺寸太大,所以我将它们换成没有纹理的未照明材料的网格 。 现在,问题是Unity默认情况下,只是打开一个空白的场景,根据探查器使用20 MB的纹理内存。 所以我检查了实例化我的精灵100个(每个294 kb),其中profiler显示100MB使用。 之后我只有那些场景中的网格,还有100个,顶点数为124 ,三个数为47 。 内存使用率仍然在100 MB左右,纹理使用量为20 MB 最后我实例化100-100,所以精灵和网格在一起。 我有大约106 MB使用的内存。 这是我用过的精灵的记忆: 这是我用过的网格记忆。 现在,据我所知,网格应该在记忆方面摇滚,因为它们的分辨率低,没有附加的纹理。 有人能告诉我发生了什么事,为什么我的网格比使用精灵更糟? 如何解决这个问题?

GLES2.0 3D Android游戏性能和multithreading更新?

我已经剖析了我的混合Java \ C ++ Android游戏,并得到以下结果: 正如你所看到的,粉红色的想法是更新游戏的C ++函数。 它执行诸如更新逻辑之类的东西,但大多数情况下它会生成一个“请求列表”来进行渲染。 事情是,我在C ++上生成DrawLists,然后将它们发送给Java,使用GLES2.0进行处理和绘制。 从那以后,我可以将更新从9ms提高到7ms左右,但是我想问一下,如果我能从multithreading更新中受益, 据我所知,花费时间最多的function就是在时间轴上看到它的颜色。 所以粉红色的区域大部分被更新。 另一个区域有MainOpenGL.Handle,因为它是主要贡献者(这是我的Java函数),但是由于没有绘制到图的顶部,我可以得出结论其他事情正在使用CPU的同时发生? 甚至没有在这个图中显示的GPU的东西。 我不确定GPU如何工作。 它是否与CPU并行计算东西? 还是像SoC一样是CPU使用率的一部分? 我不确定。 无论如何,如果GPU事情发生与CPU并行,那么我会猜测,如果我这样做的C + +更新并行的OpenGL调用的线程,我可能会使用“死CPU时间”,由于GPU停滞或也许有更早的GPU调用得到处理,因为它不必等待更新完成? 你如何建议在此基础上提高性能?

我的程序太慢了,我如何使用Eclipse进行configuration?

我的简单的opengl程序真的太慢,不stream畅。 我用简单的照明和简单的材料渲染30个球体。 我做的唯一复杂的计算的东西是光线鼠标和球体之间的碰撞检测(这工作正常,我只在mouseMoved做)我没有使用任何线程,只是一个animation师移动领域。 我怎样才能剖析我的jogl项目? 或者也许(最可能…)我有一些opengl指令,我不明白,使渲染特别准确(或背面渲染,我不需要或任何我不知道我只是进入opengl世界)

Profiler中的WaitForTargetFPS大量使用CPU

所以我正在检查Unity的标准资产示例项目,并且它们在Profiler中都有很高的FPS编号。 我自己开始了一个小小的项目,只是一个简单的精灵,通过刚体和飞机作为地板运动,突然间: 我search了什么WaitForTargetFPS代表,但显然没有一个普遍的共识,可能会导致这么高的CPU使用率。 那么,为什么这么一个简单的项目具有这样的性能(与更复杂的Unity示例项目相比)呢?

Unity Profiler – 什么会导致GC Alloc中PlayerEndOfFrame有10-16MB?

我找不到有关“PlayerEndOfFrame”的文档。 当然这是一个框架的结束,但是会导致GC Alloc变得如此之高? 这是使用IP连接到统一性分析器的远程计算机上的debugging版本生成的分析器结果。

使用线程和脚本解释器分析代码

基本上,我怎么configuration一个有multithreading和脚本解释器的游戏? (在我的情况下是Lua) 我不知道在哪里寻找。 另外,能够剖析类似于发布代码的代码会更好,我的“debugging”二进制文件大约是12倍… 编辑:我的游戏是用C ++编译的,用GCC编译,现在在Windows和GNU / Linux上运行,本地编译(例如:Windows上的MingW,GNU上的常规GCC)。

我在哪里可以findOpenGL状态更改分析?

是否有任何基准测量OpenGL 3.x / 4.x的状态变化成本,并为所有显卡收集平均值? (我不想只为我的旧AMD卡进行优化,我甚至不确定我是否正确地进行分析)。 我发现了一些configuration文件数据,但是对固定function管道的date有些过时。 实际上似乎FBO设置是最慢的操作(在交换缓冲区后只做一次),但我想平均知道“多less速度”比较例如纹理绑定。 所以,我可以说,10%的错误阈值,并尝试组织前期的呼叫。

Gfx.WaitForPresent性能问题

我正在制作2D手机游戏,在手机上运行得非常好(60 fps)。 但是,在某些情况下,性能会大幅下降到20 fps甚至更低。 它发生在随机的时间,所以我不能指出是什么造成这一点。 在性能下降Gfx.WaitForPresent出现在我的分析器,吃了很多的权力。 我知道,这可能是因为Vsync打开,但我已经禁用,以及阴影,AA和一切绝对杀死移动性能。 还有什么可能是这个问题? 我的游戏很大程度上依赖于良好的游戏性能,所以这需要尽快解决。 编辑:我也注意到,GPU停留在0毫秒,这真的很奇怪。

用GLProfiler分析LibGDX游戏

我正在试图剖析我的LibGDX游戏,它在PC上运行速度为60FPS,在我的手机上运行速度为42-45 FPS。 要么提高性能,提高到60,要么locking在30(我不想这样做)。 我在LibGDX wiki上find了GLProfiler,我试了一下。 ( GLProfiler ) 以下是我如何使用它: @Override public void render(float stateTime) { //my Render Code System.out.println( " Drawcalls: " + GLProfiler.drawCalls + ", Calls: " + GLProfiler.calls + ", TextureBindings: " + GLProfiler.textureBindings + ", ShaderSwitches: " + GLProfiler.shaderSwitches + "vertexCount: " + GLProfiler.vertexCount.value ); GLProfiler.reset(); } 在create()函数上使用GLProfiler.enable()。 在dispose()函数上使用GLProfiler.disable()。 这是我的输出: Drawcalls:35,Calls:666,TextureBindings:35,ShaderSwitches:60,vertexCount:36.0 Drawcalls:33,Calls:626,TextureBindings:33,ShaderSwitches:56,vertexCount:36.0 […]