±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ¸öÈ˲©¿Í£¬Ïêϸ½éÉÜÁËÈçºÎÊÕ¼¯ÐÔÄÜÖ¸±ê¡¢Í¨¹ýÕâЩָ±ê´´½¨»ù×¼²¢¿ÉÊÓ»¯²é¿´ÐÔÄÜÖ¸±êµÄ±ä»¯¡£
|
|
ÎÒÃǽ«½²½âÈçºÎʹÓöà¸öUnity¹¤¾ß£¬Í¨¹ý¼òµ¥µÄ·½·¨ÊÕ¼¯ÐÔÄÜÖ¸±ê²¢´´½¨»ù×¼£¬ÕâЩ¹¤¾ß°üÀ¨£º
1.Unity Test Runner
2.Unity Performance Testing Extension
3.Unity Performance Benchmark Reporter
ΪʲôÔÚUnityÖнøÐÐÐÔÄÜ»ù×¼²âÊÔ£¿
×÷ΪUnityµÄ¿ª·¢ÈËÔ±£¬Í¨³£»áÓöµ½ÒÔÏÂÇéÐΣºÏîÄ¿²»¾Ãǰ»¹ÔËÐеÃÁ÷³©¶ø¿ìËÙ£¬µ«½øÐÐÒ»´Î»ò¶à´Î¸Ä¶¯ºó£¬³¡¾°ÔËÐÐËÙ¶ÈÃ÷ÏÔ±äÂý£¬Ö¡ÊýÒ²½µÁ˺ܶ࣬ÆäËüÐÔÄÜÎÊÌ⿪ʼ²»¶Ï³öÏÖ¡£Ñ°ÕÒÔì³ÉÐÔÄÜϽµµÄ¸Ä¶¯»á·Ç³£À§ÄÑ¡£
Èç¹ûÄãÊÇÒ»ÃûµÃUnityºÏ×÷»ï°é£¬ÏëÒªÁ˽â×Ô¼º¿ª·¢µÄSDK¡¢Çý¶¯¡¢Æ½Ì¨¡¢×ÊÔ´°ü»òÆäËü¹¤¾ßÖеÄÐÔÄܱ仯¡£»òÕßÏëÒªÊÕ¼¯×Ô¼º²úÆ·ÔÚ²»Í¬Unity°æ±¾µÄÐÔÄÜÖ¸±ê£¬µ«²»ÖªµÀÈçºÎ½øÐÐÊÕ¼¯ºÍ¶Ô±È¡£

ÏÂÔØÊ¾ÀýÏîÄ¿
±¾ÎĽ«Ê¹ÓÃUnityPerformanceBenchmarkʾÀýÐÔÄܲâÊÔÏîÄ¿ÖеIJâÊÔ´úÂë¡£
Çë´ÓGitHubÏÂÔØ×îа汾µÄXRAutomatedTests£¬Äã¿ÉÒÔÔÚPerformanceTests×ÓĿ¼ÖÐÕÒµ½UnityPerformanceBenchmarkÏîÄ¿¡£
ÏÂÔØXRAutomatedTests£º
https://github.com/Unity-Technologies/XRAutomatedTests/releases
ÔÚUnity Test RunnerÖбàдÐÔÄܲâÊÔ
UnityPerformanceBenchmarkÏîÄ¿°üº¬¶à¸öʾÀý³¡¾°£¬ËüÃǽ«Í¨¹ýUnity
Performance Testing ExtensionÓÃÓÚUnityÐÔÄܲâÊÔ¡£
ÎÒÃÇÐèÒªÁ˽âÈçºÎʹÓÃUnity Test Runner ºÍUnity
Performance Testing Extension±àдÐÔÄܲâÊÔ¡£ÔÚ±àдǰÐÔÄܲâÊÔ֮ǰ£¬ÎÒÃÇÊ×ÏȽéÉÜÕâ¶þ¸ö¹¤¾ßµÄÐÅÏ¢¡£
1.Unity Test Runner
ÎÒÃǽ«Ê¹ÓÃUnity Test RunnerÔËÐÐÐÔÄܲâÊÔ¡£Unity
Test RunnerÊÇÄÚÖÃÔÚUnity±à¼ÖеIJâÊÔÖ´Ðпò¼Ü£¬ËüÔÊÐí¿ª·¢ÈËÔ±Ôڱ༺ÍÔËÐÐģʽÏÂÕë¶ÔÄ¿±êƽ̨²âÊÔ´úÂ룬ÀýÈ磺Standalone¡¢Androidϵͳ»òiOSϵͳ¡£
2.Unity Performance Testing Extension
Unity Performance Testing ExtensionÊÇÒ»¸öUnity±à¼Æ÷À©Õ¹°ü£¬ËüÌṩAPIºÍ²âÊÔÓÃÀýÊôÐÔ£¬ÔÊÐí¿ª·¢ÈËÔ±ÔÚUnity±à¼Æ÷ºÍ²¥·ÅÆ÷ÖжÔUnity
ProfilerÐÔÄÜ·ÖÎöÆ÷±ê¼ÇºÍ·ÇÐÔÄÜ·ÖÎöÆ÷µÄ×Ô¶¨ÒåÖ¸±ê½øÐвÉÑùºÍ¾ÛºÏ¡£
Unity Performance Test ExtensionÒªÇóʹÓÃUnity
2018.1»ò¸ü¸ß°æ±¾¡£Èç¹ûÔÚUnityPerformanceBenchmarkÏîÄ¿ÖÐÔËÐÐʾÀýÐÔÄܲâÊÔ£¬»òÕßʹÓÃUnity
Performance Test Extensionʱ£¬ÇëÈ·±£Ê¹ÓÃUnity 2018.1»ò¸ü¸ß°æ±¾¡£
ʹÓÃÃüÁîÐдò¿ªÊ¾ÀýÏîÄ¿
UnityPerformanceBenchmarkÏîĿʵÏÖÁËIPrebuildSetup½Ó¿Ú£¬ÕâÊÇUnity
Test RunnerµÄ×é³É¹¦ÄÜ£¬¿ÉÒÔÓÃÀ´ÊµÏÖSetup·½·¨£¬¸Ã·½·¨»áÔÚUnity Test RunnerÖ´ÐвâÊÔÔËÐÐǰ×Ô¶¯µ÷Óá£
UnityPerformanceBenchmarkÏîÄ¿µÄIPrebuildSetup.Setup·½·¨Ê×ÏÈ»á½âÎöÃüÁîÐвÎÊý£¬Ñ°ÕÒ²¥·ÅÆ÷¹¹½¨ÉèÖ᣸÷½·¨ÔÊÐíÎÒÃÇʹÓÃÏàͬUnityÏîÄ¿Áé»îµØÎªÐÔÄܲâÊÔ¹¹½¨²¥·ÅÆ÷£¬¾ßÌåÉèÖÿÉÒÔÕë¶Ô²»Í¬Æ½Ì¨¡¢äÖȾÏß³Ìģʽ¡¢²¥·ÅÆ÷ͼÐÎAPI¡¢½Å±¾ÊµÏÖÒÔ¼°Á¢ÌåäÖȾ·¾¶ºÍVR
SDKµÈÖ§³ÖXRµÄÉèÖöø¶¨¡£
Òò´Ë£¬ÎÒÃÇÐèÒª´ÓÃüÁîÐÐÓÃUnity´ò¿ªUnityPerformanceBenchmarkÏîÄ¿£¬´«ÈëÔÚUnity
Test RunnerÔËÐвâÊÔʱҪʹÓõIJ¥·ÅÆ÷¹¹½¨Ñ¡Ïî¡£
ʾÀý£ºÔÚWindowsϵͳÆô¶¯UnityPerformanceBenchmarkÏîÄ¿£¬¹¹½¨Android²¥·ÅÆ÷¡£
Unity.exe
-projectPath
C:\XRAutomatedTests-2018.2\PerformanceTests\UnityPerformanceBenchmark
-testPlatform Android -buildTarget Android
-playergraphicsapi=OpenGLES3 -mtRendering -scriptingbackend=mono |
Ö¸Áî»áÔÚWindowsϵͳÆô¶¯Unity£¬Õë¶Ô¾ßÓÐOpenGLES3ͼÐÎAPI¡¢¶àÏß³ÌäÖȾ¹¦ÄܺÍMono½Å±¾ºó¶ËµÄAndroidϵͳ½øÐй¹½¨¡£
ʾÀý£º´ÓOSXϵͳÆô¶¯UnityPerformanceBenchmarkÏîÄ¿ÒÔ¹¹½¨iOS²¥·ÅÆ÷¡£
./Unity
-projectPath /XRAutomatedTests-2018.2/PerformanceTests/UnityPerformanceBenchmark
-testPlatform iOS -buildTarget iOS -playergraphicsapi=OpenGLES3
-mtRendering -scriptingbackend=mono
-appleDeveloperTeamID=<yourAppleDeveloperTeamID>
-iOSProvisioningProfileID=<yourIosProvisionProfileID> |
Ö¸Áî»áÔÚOSXϵͳÆô¶¯Unity£¬²¢Õë¶Ô¾ßÓÐOpenGLES3ͼÐÎAPI¡¢¶àÏß³ÌäÖȾ¹¦ÄܺÍMono½Å±¾ºó¶ËµÄiOSϵͳ½øÐй¹½¨¡£¸ÃÖ¸ÁÌṩÁËApple¿ª·¢ÍŶÓÐÅÏ¢ºÍ²¿Êðµ½iOSÉ豸ËùÐèµÄÅäÖÃÎļþÐÅÏ¢¡£
µ±ÎÒÃÇ´ÓÃüÁîÐÐʹÓÃUnity´ò¿ªUnityPerformanceBenchmarkÏîĿʱ£¬ÈçÒÔÉÏʾÀýËùʾ£¬ÃüÁîÐвÎÊý½«±£´æÔÚÄÚ´æÖУ¬ÒÔ±ãIPrebuildSetup.Setup·½·¨½âÎö²¢ÓÃÓÚ¹¹½¨²¥·ÅÆ÷¡£
¾¡¹ÜÔÚUnity Test RunnerÖÐÔËÐвâÊÔʱ£¬²»±ØÊ¹ÓôÓÃüÁîÐÐÆô¶¯µÄ·½·¨£¬µ«¸Ã·½·¨¿ÉÒÔ±ÜÃâΪÿ¸ö²¥·ÅÆ÷ÅäÖÃʹÓõ¥¶ÀµÄ²âÊÔÏîÄ¿¡£
Á˽â´ÓÃüÁîÐдò¿ªÏîÄ¿ºÍÔËÐвâÊÔʱËùÓõ½µÄÃüÁîÐÐÑ¡ÏÇë²Î¿¼¡¶ÈçºÎÔËÐÐUnityÐÔÄÜ»ù×¼²âÊÔ¡·£º
https://github.com/Unity-Technologies/XRAutomatedTests/wiki/Performance-Tests#howtorun
Èç¹ûÏëÒªÁËÈçÎÒÃÇÈçºÎÔÚ²âÊÔÏîÄ¿ÖнâÎö²¥·ÅÆ÷¹¹½¨ÉèÖã¬Çë²é¿´UnityPerformanceBenchmark²âÊÔÏîÄ¿ÖУ¬ScriptsĿ¼ÏµÄRenderPerformancePrebuildStep.csÎļþ¡£
´ò¿ªTest Runner´°¿Ú
´ò¿ªUnityPerformanceBenchmarkÏîÄ¿ºó£¬ÎÒÃÇÐèÒªÔÚUnity±à¼Æ÷Öдò¿ªUnity
Test Runner´°¿Ú¡£
1.ÔÚUnity 2018.1ÖУ¬´ò¿ªWindow > Test
Runner¡£
2.ÔÚUnity 2018.2ÖУ¬´ò¿ªWindow > General
> Test Runner¡£
Unity Test Runner´°¿Ú´ò¿ªºó£¬ÈçÏÂͼËùʾ¡£

½ØÍ¼ÖÐÊÇÎÒÃǵÄUnityÐÔÄܲâÊÔ£¬ÎÒÃÇ¿ÉÒÔ°´Ï´°¿Ú×óÉϽǵġ°Run¡±°´Å¥ÔÚUnity±à¼Æ÷ÖÐÔËÐвâÊÔ£¬Ò²¿ÉÒÔÕë¶Ôʵ¼ÊÉ豸»òƽ̨°´ÏÂÓÒÉϽǵġ°Run
all in player¡±°´Å¥À´ÔËÐвâÊÔ¡£
Èç¹ûÏëÔÚIPrebuildSetup.Setup·½·¨Öе÷ÊÔ´úÂ룬¿Éͨ¹ýÒÔϲ½ÖèʵÏÖ¡£
1.ÔÚVisual StudioÖÐÉèÖÃIPrebuildSetup.Setup´úÂëµÄ¶Ïµã¡£
2.½«Visual Studio Tool for UnityÀ©Õ¹¸½¼Óµ½Unity±à¼Æ÷¡£
3.°´ÏÂUnity Test Runner´°¿ÚÖеġ°Run All¡±»ò¡°Run
Select¡±°´Å¥£¬ÔÚ±à¼Æ÷ÔËÐвâÊÔ¡£
´Ëʱ£¬Visual Studioµ÷ÊÔÆ÷»á·ÖÎö´úÂ룬Äã¿ÉÒÔ¸ù¾ÝÐèÒª½øÐе÷ÊÔ¡£
µ÷ÊÔ¼¼ÇÉ
1.Èç¹ûÏëÔÚIPrebuildSetup.Setup·½·¨Öе÷ÊÔ´úÂ룬¿Éͨ¹ýÒÔϲ½ÖèʵÏÖ¡£
2.ÔÚVisual StudioÖÐÉèÖÃIPrebuildSetup.Setup´úÂëµÄ¶Ïµã¡£
3.½«Visual Studio Tool for UnityÀ©Õ¹¸½¼Óµ½Unity±à¼Æ÷¡£
4.°´ÏÂUnity Test Runner´°¿ÚÖеġ°Run All¡±»ò¡°Run
Select¡±°´Å¥£¬ÔÚ±à¼Æ÷ÔËÐвâÊÔ¡£
´Ëʱ£¬Visual Studioµ÷ÊÔÆ÷»á·ÖÎö´úÂ룬Äã¿ÉÒÔ¸ù¾ÝÐèÒª½øÐе÷ÊÔ¡£
UnityÐÔÄܲâÊÔʾÀý
ÏÂÃæÈÃÎÒÃÇÀ´²é¿´Ò»¸öÐÔÄܲâÊÔµÄʾÀý£¬¸üºÃµØÁ˽âÐÔÄܲâÊÔÈçºÎ¹¤×÷¡£
ʾÀý£ºÔÚUnityÐÔÄܲâÊÔÖвÉÑùÐÔÄÜ·ÖÎöÆ÷±ê¼Ç
[PerformanceUnityTest]
public IEnumerator SpiralFlame_RenderPerformance()
{
yield return SceneManager
.LoadSceneAsync(spiralSceneName, LoadSceneMode.Additive);
SetActiveScene(spiralSceneName);
// ʵÀý»¯³¡¾°ÖеÄÐÔÄܲâÊÔ¶ÔÏó
var renderPerformanceTest =
SetupPerfTest<DynamicRenderPerformanceMonoBehaviourTest>();
// ʹʱ¼äÖµÔÚ²âÁ¿Ç°Îȶ¨ÏÂÀ´
yield return new WaitForSecondsRealtime(SettleTime);
// ʹÓÃPerformance Test ExtensionµÄProfilerMarkers
API
using (Measure.ProfilerMarkers(SamplerNames))
{
// ÉèÖÃCaptureMetricsµÄ±êʶΪTRUE
// ¿ªÊ¼²É¼¯Ö¸±ê
renderPerformanceTest.component.CaptureMetrics
= true;
// ÔËÐÐMonoBehaviour Test
yield return renderPerformanceTest;
}
yield return SceneManager.UnloadSceneAsync(spiralSceneName);
} |
±¾Ê¾ÀýÖÐʹÓõIJâÊÔ·½·¨ÊÇSpiralFlame_RenderPerformance¡£ÎÒÃÇ´Ó·½·¨×°ÊÎÆ÷[PerformanceUnityTest]¿ÉÒÔÖªµÀ£¬¸Ã·½·¨ÊǸöUnityÐÔÄܲâÊÔ¡£
UnityPerformanceBenchmark²âÊÔÏîÄ¿ÖеÄËùÓвâÊÔÄÚÈݶ¼°´ÕոòâÊÔ·½·¨ÖеÄÏàͬģʽ£º
1.¼ÓÔØ³¡¾°½øÐвâÊÔ£»
2.½«³¡¾°ÉèÖÃΪ»î¶¯×´Ì¬£¬ÒÔ±ãÎÒÃÇÔÚ²âÊÔ·½·¨ÖÐÓëÆä½øÐн»»¥£»
3.´´½¨Ò»¸öDynamicRenderPerformanceMonoBehaviourTestÀàÐ͵IJâÊÔ¶ÔÏ󣬲¢½«ÆäÌí¼Óµ½²âÊÔ³¡¾°ÖС£¸Ã¹ý³Ì·¢ÉúÔÚSetupPerfTest<T>·½·¨ÖУ»
4.ÔÚ¿ªÊ¼²ÉÑùÖ¸±êǰ£¬²¢ÔÚ¼ÓÔØºÍÌí¼Ó²âÊÔ¶ÔÏóµ½³¡¾°ºó£¬µÈ´ý³¡¾°µÄºã¶¨Ê±¼äÖµ¡°Îȶ¨ÏÂÀ´¡±£»
5.ͨ¹ýPerformance Test Extension APIÉèÖÃÓÃÓڲɼ¯µÄÐÔÄÜ·ÖÎö±ê¼Ç£»
6.¸æËßÐÔÄܲâÊÔÎÒÃÇÒÑ×¼±¸ºÃ¿ªÊ¼²É¼¯Ö¸±ê£»
7.È»ºóyield return²âÊÔ¶ÔÏó¼´IMonoBehaviourTest£¬ÔÚäÖȾѻ·Öвɼ¯Ö¸±ê¡£
ÎÒÃÇÒ²»áÔÚRenderPerformanceMonoBehaviourTestBase»ùÀàÖв»ÊôÓÚUnityÐÔÄÜ·ÖÎöÆ÷±ê¼Ç¡¢Ö¡¼ÆÊý»òÖ´ÐÐʱ¼äµÄ×Ô¶¨ÒåÖ¸±ê½øÐвÉÑù¡£
ʾÀý£ºÔÚMonobehaviour½Å±¾ÖвÉÑù×Ô¶¨ÒåÖ¸±ê
private
void Update()
{
if (CaptureMetrics)
{
FrameCount++;
SampleFps();
#if ENABLE_VR
if (XRSettings.enabled)
{
SampleGpuTimeLastFrame();
}
#endif
}
if (IsMetricsCaptured)
{
EndMetricCapture();
}
} |
private
void SampleFps()
{
Fps = GetFps();
Measure.Custom(FpsSg, Fps);
startFrameCount = Time.renderedFrameCount;
} |
private
void SampleGpuTimeLastFrame()
{
var gpuTimeLastFrame = GetGpuTimeLastFrame();
Measure.Custom(GpuTimeLastFrameSg, gpuTimeLastFrame
* 1000);
} |
public
void EndMetricCapture()
{
CaptureMetrics = false;
#if UNITY_ANALYTICS && UNITY_2018_2_OR_NEWER
Measure.Custom(startupTimeSg, appStartupTime);
#endif
} |
ÉÏÃæÊ¾ÀýÖУ¬ÎÒÃDzɼ¯ÁËFPS¡¢GpuTimeLastFrameºÍÓ¦ÓóÌÐòÆô¶¯Ê±¼ä¡£
1.IsTestFinishedÊôÐÔ
ÔÚRenderPerformanceMonoBehaviourTestBase»ùÀàÖУ¬ÎÒÃÇʵÏÖÁËÊôÐÔpublic
bool IsTestFinished¡£ÎÒÃÇÐèҪʵÏÖ¸ÃÊôÐÔ£¬ÒòΪRenderPerformanceMonoBehaviourTestBase»áʵÏÖIMonoBehaviourTest
½Ó¿Ú¡£
¸ÃÊôÐԷdz£ÖØÒª£¬ÒòΪUnity Test RunnerʹÓÃËüÀ´Á˽âºÎʱֹͣ²âÊÔ¡£µ±ËüΪtrueʱ£¬²âÊÔÖÕÖ¹¡£¿ª·¢ÕßÐèÒª×Ô¼ºÊµÏÖ¸ÃÂß¼ÒÔÈ·¶¨Unity
Test RunnerÓ¦¸ÃºÎʱֹͣ²âÊÔ¡£
ʾÀý£º²É¼¯IsTestFinishedÊôÐÔÖеÄ×Ô¶¨ÒåÖ¸±ê
public
bool IsTestFinished
{
get
{
bool isTestFinished = false;
if (IsMetricsCaptured)
{
Measure.Custom(objCountSg, RenderedGameObjects);
Measure.Custom(trianglesSg, Tris);
Measure.Custom(verticesSg, Verts);
isTestFinished = true;
}
return isTestFinished;
}
} |
±¾Ê¾ÀýÖУ¬ÎÒÃDzɼ¯Á˲âÊÔÍê³Éʱ³¡¾°ÖÐÒÑäÖȾÓÎÏ·¶ÔÏó¡¢Èý½ÇÐκͶ¥µãµÄÊýÁ¿ÐÅÏ¢¡£
2.SampleGroupDefinition
ÏÖÔÚÎÒÃÇÁ˽âÈçºÎµ÷ÓÃPerformance Testing ExtensionÀ´²ÉÑùÖ¸±êµÄʾÀý£¬ÏÂÃæ½«½éÉÜÈçºÎÅäÖÃÕâЩָ±ê¡£
Measure.*·½·¨Í¨³£½ÓÊÕSampleGroupDefinition½á¹¹×÷Ϊ²ÎÊý¡£´´½¨ÐÂSampleGroupDefinitionʱ£¬Òª¶¨ÒåÊÕ¼¯Ñù±¾µÄÊôÐÔ¡£
ʾÀý£ºÎªGpuTimeLastFrame¶¨ÒåÐÂSampleGroupDefinition£¬Ê¹ÓúÁÃë×÷Ϊ²ÉÑùµ¥Î»£¬Ê¹ÓÃ×îСֵ¾ÛºÏÑù±¾
ÏÂÃæÊÇÓÃÓÚGpuTimeLastFrameµÄSampleGroupDefinition´úÂë¡£ÎÒÃÇͨ¹ý¸Ã´úÂëÈÃPerformance
Testing ExtensionÖªµÀÈçºÎÊÕ¼¯Ñù±¾²¢ÎªGpuTimeLastFrame¾ÛºÏ¡£
¸ÃSampleGroupDefinitionÀ´×Ô¶¯Ì¬³¡¾°äÖȾÐÔÄܲâÊÔʾÀý£¬Òò´ËÎÒÃÇÔÚ´ËÑ¡ÔñʹÓÃÊÕ¼¯µ½µÄ×îСֵ¾ÛºÏÑù±¾¡£ÎªÊ²Ã´ÎÒÃDz»Ê¹ÓÃÀýÈ磺ÖÐλÊý»òƽ¾ùÖµ£¬ÕâÑù¸ü³£¼ûµÄ¾ÛºÏ¶ÈÁ¿ÄØ£¿
ÕâÊÇÒòΪ³¡¾°ÊǶ¯Ì¬µÄ¡£ÔÚ¶¯Ì¬³¡¾°ÖÐäÖȾ¹ý³Ì»á²»¶Ï±ä»¯£¬ËùÒÔʹÓÃÖÐλÊý»òƽ¾ùÖµ¾ÛºÏ»áʹÔËÐÐÏàͬ´úÂëµÄÏàͬ³¡¾°µÃµ½²»¿É¿¿»ò²»Ò»ÖµĽá¹û¡£
Èç¹ûÎÒÃÇÏë¸ú×Ù¶¯Ì¬³¡¾°ÖÐäÖȾָ±êµÄµ¥¸ö¾ÛºÏ£¬Õâ¿ÉÄÜÊÇ×îºÃµÄ·½·¨¡£µ«ÊÇ£¬µ±ÎÒÃÇΪ¾²Ì¬³¡¾°¶¨ÒåÀàËÆSampleGroupDefinitionʱ£¬ÎÒÃÇ»áʹÓÃÖÐλÊý¾ÛºÏ¡£
new
SampleGroupDefinition(GpuTimeLastFrameName,
SampleUnit.Millisecond, AggregationType.Min) |
ʾÀý£ºÎªFPS¶¨ÒåÐÂSampleGroupDefinition£¬½«NoneÓÃ×÷Ñù±¾µ¥Î»£¬Ê¹ÓÃÖÐλֵÀ´¾ÛºÏÑù±¾£¬×îºÃÄÜÌá¸ßÊýÖµ
ÏÂÃæÊÇΪFPSʹÓõÄSampleGroupDefinition¡£FPSûÓÐÌØ¶¨²âÁ¿µ¥Î»£¬FPSµÄµ¥Î»¾ÍÊÇFPS£¬ËùÒÔÔÚ´ËÖ¸¶¨SampleUnit.None¡£ÎÒÃǽ«Ê¹ÓÃÖÐλÊý¾ÛºÏÀàÐÍ¡£
¸Ã²âÊÔ·¢ÉúÔÚ¾²Ì¬³¡¾°ÖУ¬ËùÒÔÎÒÃDz»±Øµ£ÐIJ»¿ÉÔ¤²âµÄäÖȾÌåÑé¡£ÎÒÃÇÃ÷ȷΪÑù±¾×éÉ趨ÁË15%µÄãÐÖµ£¬¶ÔincreaseIsBetter²ÎÊý´«ÈëÁËtrue£¬ÒòΪÌá¸ßFPSÊǼþºÃÊ¡£
µ±´ÓÃüÁîÐÐÔËÐÐʱ£¬×îºó¶þ¸ö²ÎÊý»á±»ÊÕ¼¯²¢±£´æÔÚÐÔÄܲâÊÔ½á¹ûµÄ.xmlÎļþÖУ¬ÉÔºó¿ÉÓÃÓÚUnity
Performance Benchmark Reporter£¬´Ó¶ø½¨Á¢»ù×¼¡£
new
SampleGroupDefinition(FpsName, SampleUnit.None,
AggregationType.Median, threshold: 0.15, increaseIsBetter:
true) |
²âÊÔÍê³Éºó£¬ËùÓÐ֮ǰÆôÓõÄÖ¸±êÑù±¾¶¼»áÓÉPerformance Testing
Extension½øÐоۺϡ£
3.²âÁ¿ÀàÐÍ
ÔÚʾÀý´úÂëÖУ¬ÎÒÃÇʹÓÃÁ˼¸¸ö²»Í¬µÄUnity Performance Testing Extension
API£¬ËüÃÇÊÇ£º
1.Measure.ProfilerMarkers
2.Measure.Custom
Unity Performance Testing Extension»¹ÌṩÆäËüMeasure·½·¨£¬¿ÉÒÔ¸ù¾Ý¿ª·¢ÕßÔÚUnityÖвâÊÔÐÔÄÜÄÚÈݺͷ½Ê½À´Âú×ãÌØ¶¨ÐèÇ󡣯äËü·½·¨°üÀ¨£º
1.Measure.Method
2.Measure.Frames
3.Measure.Scope
4.Measure.FrameTimes
ÔÚUnity Test RunnerÖÐÔËÐÐÐÔÄܲâÊÔ
ÏÖÔÚÎÒÃÇÒѾչʾÁËһЩʾÀý£¬Á˽âÈçºÎʹÓÃUnity Test RunnerºÍUnity
Performance Testing Extension±àдÐÔÄܲâÊÔ£¬½ÓÏÂÀ´Á˽âÈçºÎÔËÐвâÊÔ¡£
ÎÒÃÇ¿ÉÒÔͨ¹ý¶þ¸öÖ÷Òª·½Ê½Ö´ÐÐÐÔÄܲâÊÔ£º
1.ÔÚÃüÁîÐÐÖÐʹÓÃ-runTests Ñ¡ÏîÆô¶¯Unity
ÕâÊÇÔËÐÐÐÔÄܲâÊÔµÄÊ×Ñ¡·½Ê½£¬ÒòΪUnity Performance Test Extension»áÉú³É.xmlÎļþ£¬¸ÃÎļþ¿ÉÓÃÓÚÔÚUnity
Performance Benchmark ReporterÖв鿴²¢¶Ô±È½á¹û¡£
2.Ö±½ÓÔÚUnity±à¼Æ÷ÔËÐвâÊÔ
ʹÓÃÌõ¼þÊÇ£º
1¡¢½öÔÚUnity Test RunnerÔËÐвâÊÔ²¢²é¿´½á¹û£¬²»ÐèÒª²É¼¯½á¹ûÒÔ¹©Ö®ºóʹÓá£
2¡¢ÏëÒªÑéÖ¤²âÊÔÊÇ·ñÄܹ»ÔËÐлòÕßÐèÒªµ÷ÊÔ²âÊÔ´úÂë¡£
ʹÓÃ-runTestsÃüÁîÐÐÑ¡ÏîÔËÐÐÐÔÄܲâÊÔ
ÏÂÃæÊÇÈçºÎʹÓÃUnity Test Runner´ÓÃüÁîÐÐÔËÐÐÐÔÄܲâÊԵĶþ¸öʾÀý£¬¡£ÕâЩʾÀýµÄ´úÂëËÆÔøÏàʶ£¬ÒòΪÎÒÃÇÔÚ´ËʹÓÃÁËÇ°ÃæÓùýµÄʾÀý£¬ÕâЩʾÀýÓÃÀ´½éÉÜÈçºÎ´ÓÃüÁîÐдò¿ªUnityPerformanceBenchmarkÏîÄ¿¡£
ʾÀý£ºÔÚWindowsϵͳÕë¶ÔAndroid²¥·ÅÆ÷ÔËÐÐUnityPerformanceBenchmarkÐÔÄܲâÊÔ
ÏÂÃæÖ¸Áî»áÔÚWindowsϵͳÆô¶¯Unity£¬Õë¶Ô¾ßÓÐOpenGLES3ͼÐÎAPI¡¢¶àÏß³ÌäÖȾ¹¦ÄܺÍMono½Å±¾ºó¶ËµÄAndroidϵͳ½øÐй¹½¨¡£
Unity.exe
-runTests [-batchmode] -projectPath
C:\XRAutomatedTests-2018.2\PerformanceTests\Unity
PerformanceBenchmark -testPlatform Android
-buildTarget Android -playergraphicsapi=OpenGLES3
-mtRendering -scripting
backend=mono -testResults
C:\PerfTests\results\PerfBenchmark_Android_OpenGLES3
_MtRendering_Mono.xml -logfile
C:\PerfTests\logs\PerfBenchmark_Android_OpenGLES3_
MtRendering_Mono_UnityLog.txt |
ʾÀý£ºÔÚOSXϵͳÕë¶ÔiOS²¥·ÅÆ÷ÔËÐÐUnityPerformanceBenchmarkÐÔÄܲâÊÔ
ÏÂÃæÖ¸Áî»áÔÚOSXϵͳÆô¶¯Unity£¬²¢Õë¶Ô¾ßÓÐOpenGLES3ͼÐÎAPI¡¢¶àÏß³ÌäÖȾ¹¦ÄܺÍMono½Å±¾ºó¶ËµÄiOSϵͳ½øÐй¹½¨¡£¸ÃÖ¸ÁÌṩÁËApple¿ª·¢ÍŶÓÐÅÏ¢ºÍ²¿Êðµ½iOSÉ豸ËùÐèµÄÅäÖÃÎļþÐÅÏ¢¡£
./Unity
-runTests [-batchmode] -projectPath
/XRAutomatedTests-2018.2/PerformanceTests/Unity
PerformanceBenchmark
-testPlatform iOS -buildTarget iOS -playergraphicsapi=
OpenGLES3
-mtRendering -scriptingbackend=mono
-appleDeveloperTeamID=<yourAppleDeveloperTeamID>
-iOSProvisioningProfileID=<yourIosProvisionProfileID>
-testResults /PerfTests/results/PerfBenchmark_Android_OpenGLES3
_MtRendering_Mono.xml
-logfile /PerfTests/logs/PerfBenchmark_Android_OpenGLES3_
MtRendering_Mono_UnityLog.txt |
¶ÔÓÚÕâ¶þ¸öʾÀý£¬ÎÒÃǽ«ÒýÈëÁËÈýµ½ËĸöÐÂÃüÁîÐÐÑ¡ÏʹÓÃIPrebuildSetup.Setup·½·¨µÄÃüÁîÐвÎÊýÀ´°ïÖúÎÒÃÇÔËÐвâÊÔ¡£
-runTests
¸ÃÑ¡Ïî»á¸æËßUnity Test RunnerÔËÐвâÊÔ¡£
-testResults <pathToWritePerformanceTestResultsFile>
¸ÃÑ¡Ïî»áÖ¸¶¨.xmlÎļþµÄÎļþÃûºÍ·¾¶£¬Unity Test RunnerÔÚ¸ÃÎļþ±£´æÐÔÄܲâÊÔ½á¹û¡£
-logfile <pathToWriteUnityEditorLogFile>
¸ÃÑ¡Ïî»áÖ¸¶¨Unity±à¼Æ÷ËùдÈëÈÕÖ¾ÎļþµÄÎļþÃûºÍ·¾¶¡£ËüÊÇ¿ÉÑ¡ÏÈç¹û¿ÉÒÔ¿ìËÙ·ÃÎÊUnity±à¼Æ÷ÈÕÖ¾Îļþ£¬ÔÚµ÷²éʧ°Ü½á¹ûºÍÎÊÌâʱ£¬¸ÃÑ¡Ïî»á·Ç³£ÊµÓá£
-batchmode
¸ÃÑ¡Ïî»áÈÃUnity±à¼Æ÷´ò¿ªHeadlessģʽ¡£µ±Ö»ÔËÐв¥·ÅÆ÷ÐÔÄܲâÊÔÇÒ²»ÐèÒª´ò¿ªUnity±à¼Æ÷´°¿Úʱ£¬ÎÒÃÇ»áʹÓøÃÑ¡Ïî¡£Õâ¿ÉÒÔÔÚ×Ô¶¯Ö´ÐвâÊÔʱ½Úʡʱ¼ä¡£²»Ê¹ÓøÃÑ¡Ïîʱ£¬Unity±à¼Æ÷»áÔÚÖ´ÐвâÊÔǰ´ò¿ª¡£
ÎÒÃÇͨ³£´ÓÃüÁîÐÐÔËÐÐÐÔÄܲâÊÔ£¬ÔÚ³ÖÐø¼¯³ÉϵͳÖÐʹÓÃbatchmode¡£
ʾÀý£º´ÓÃüÁîÐÐÔËÐÐUnityPerformanceBenchmark²âÊÔ

ÔÚUnity±à¼Æ÷ÔËÐÐÐÔÄܲâÊÔ
Ñ¡ÔñPlayModeʱ£¬ÔÚ¶¥²¿´ò¿ªUnity Test Runner´°¿Ú£¬ÎÒÃÇ»áµÃµ½Èý¸ö°´Å¥£º
1.Run All£ºµã»÷¸Ã°´Å¥»áÔÚPlayMode±êǩҳÔËÐÐËùÓвâÊÔ
2.Run Selected£ºµã»÷¸Ã°´Å¥»áÔËÐÐËùÑ¡²âÊÔ»ò½Úµã£¬°üÀ¨½ÚµãϵÄËùÓвâÊÔ
3.Run all in player£ºµã»÷¸Ã°´Å¥»áÈÃUnity±à¼Æ÷¹¹½¨³ö¹¹½¨ÉèÖÃÖÐÉ趨µÄ²¥·ÅÆ÷ÀàÐÍ£¬²¢Ôڸò¥·ÅÆ÷ÖÐÔËÐвâÊÔ¡£
ÖØÒªÒªÇó
ÔÚUnity±à¼Æ÷ÖдÓTest Runner´°¿ÚÔËÐÐÐÔÄܲâÊÔ¡£²»»áµÃµ½Unity
Performance Benchmark ReporterÐèÒªµÄ.xmlÎļþ¡£
Èç¹ûÏëÒªÔÚÍê³ÉÐÔÄܲâÊÔʱµÃµ½½á¹û.xmlÎļþ£¬ÐèÒªÔÚÃüÁîÐмÓÈë-runTestsÃüÁîÐÐÑ¡ÏîÀ´Æô¶¯Unity£¬ÔÙÔËÐвâÊÔ¡£Çë×¢Ò⣬µ±Ê¹ÓÃ-runTestsÃüÁîÐÐÑ¡ÏîÔËÐÐUnityʱ£¬±à¼Æ÷»á´ò¿ª²¢¿ªÊ¼ÔËÐвâÊÔ¡£
µÃµ½µÄ.xmlÎļþ°üº¬²âÊÔÔËÐкóµÄ½á¹ûºÍÔªÊý¾Ý£¬ÎÒÃÇ»áÔÚUnity
Performance Benchmark ReporterÖÐʹÓÃÕâЩ½á¹ûÀ´´´½¨»ù×¼½á¹û£¬²¢±È½ÏºóÐø²âÊÔÔËÐнá¹û¡£
ʾÀý£ºÔÚUnity±à¼Æ÷ÔËÐÐÐÔÄܲâÊÔ

²é¿´ÐÔÄܲâÊÔ½á¹û
Èç¹ûÎÒÃÇÔÚ±à¼Æ÷ÖÐÔËÐвâÊÔ£¬Ôò¿ÉÒÔͨ¹ýÑ¡ÖвâÊÔÔÚUnity Test
Runner´°¿Úµ×²¿¸½½ü²é¿´¾ÛºÏÖµ¡£
ʾÀý£ºÔÚUnity Test Runner²é¿´ÐÔÄܲâÊÔÑù±¾¾ÛºÏ

Èç¹ûÏë²é¿´´ÓÃüÁîÐÐÔËÐÐUnityÐÔÄܲâÊԵĽá¹û£¬ÐèҪʹÓÃUnity
Performance Benchmark Reporter£¬»òÊÇ´ò¿ª.xmlÎļþ£¬µ«¸ÃÎļþµÄÄÚÈݲ»ÈÝÒ×¶ÁÈ¡¡£
ÏÂÃæÒªÌÖÂÛÈçºÎʹÓÃUnity Performance Benchmark
ReporterÀ´²é¿´²¢¶Ô±È½á¹û¡£
ʹÓÃUnity Performance Benchmark Reporter
Unity Performance Benchmark Reporter¿ÉÒÔÔÚ´øÓÐͼÐοÉÊÓ»¯html±¨¸æÖбȽÏÐÔÄÜÖ¸±ê»ùÏߺͺóÐøÐÔÄÜÖ¸±ê¡£
Unity Performance Benchmark Reporter±»¹¹½¨Îª.NET
Core 2.x³ÌÐò¼¯£¬ËùÒÔËü¿ÉÒÔÔÚÖ§³Ö.NETµÄ²»Í¬Æ½Ì¨ÉÏÔËÐУ¬ÀýÈ磺Windows¡¢OSXµÈ¡£Òò´Ë£¬ÔËÐиù¤¾ß£¬ÐèҪȷ±£ÒѰ²×°.NET
Core 2.x SDK¡£
Ö´ÐÐUnity Performance Benchmark Reporterʱ£¬ÐèҪʹÓÃdotnetÃüÁîµ÷ÓøóÌÐò¼¯£¬ÃüÁîÈçÏ£º
dotnet
UnityPerformanceBenchmarkReporter.dll
--baseline=D:\UnityPerf\baseline.xml
--results=D:\UnityPerf\results --reportdirpath=d:\UnityPerf |
¸Ã¹¤¾ßÔËÐк󣬽«´´½¨ÃûΪUnityPerformanceBenchmarkĿ¼£¬ÆäÖаüº¬html±¨¸æÒÔ¼°ºÍ±¨¸æÏà¹ØµÄ.css¡¢.jsºÍͼƬÎļþ¡£´ò¿ª¸Ãhtml±¨¸æ¿ÉÒԲ鿴.xmlÎļþÖÐËù²É¼¯µÄÐÔÄÜÖ¸±ê¿ÉÊÓ»¯ÄÚÈÝ¡£
1.ÃüÁîÐÐÑ¡Ïî
¨Cresults
¸ÃÑ¡ÏîÖ¸¶¨±£´æ·Ç»ùÏß.xmlÎļþµÄĿ¼·¾¶£¬ÕâЩÎļþ½«°üº¬ÔÚhtml±¨¸æÖС£
ÖÁÉÙÒª¸øUnityPerformanceBenchmarkReporter.dll³ÌÐò¼¯´«ÈëÒ»¸ö¨CresultsÖµ¡£ËüÊÇΨһ±ØÐèµÄ×ֶΡ£¸ÃÃüÁîÐÐÑ¡ÏÄÜÓÃÓÚÖ¸¶¨.xml·Ç»ùÏß½á¹ûÎļþ¡£´ËÍ⣬Äã¿ÉÒÔͨ¹ýÖØ¸´Ê¹ÓøÃÑ¡ÏîÀ´Ö¸¶¨¶à¸ö·¾¶»òÎļþ£¬ÃüÁîÈçÏ£º
--results=D:\UnityPerf\results
--results=D:\UnityPerf\results.xml |
¨Cbaseline
¸ÃÑ¡ÏîÖ¸¶¨ºÍÆäËü½á¹û¶Ô±ÈµÄ.xmlÎļþµÄ·¾¶¡£
¨Creportdirpath
¸ÃÑ¡ÏîÖ¸¶¨Unity Performance Benchmark Reporter´´½¨ÐÔÄÜ»ù×¼±¨¸æµÄĿ¼·¾¶¡£±¨¸æ½«´´½¨ÔÚUnityPerformanceBenchmark×ÓĿ¼ÖС£
Èç¹ûδָ¶¨±¨¸æ±£´æÂ·¾¶£¬½«ÔÚµ÷ÓÃUnityPerformanceBenchmarkReporter.dllµÄ¹¤×÷Ŀ¼´´½¨UnityPerformanceBenchmark×ÓĿ¼¡£
2.¶Ô±ÈÐÔÄܲâÊÔ½á¹û
ÏÂÃæÀ´¶Ô±ÈPerformance Benchmark ReporterÖеÄÐÔÄܲâÊÔ½á¹û¡£
ʾÀý£ºÔÚÆôÓÃVRµÄGear VR³¡¾°Öг¢ÊÔÐÞ¸ÄÅäÖã¬ÒÔÌá¸ßÖ¡ÂÊ¡£
ÏÂÃæÓÐÒ»¸ö´øÓÐÒÔϸ´ÔÓÐÔÌØÕ÷µÄUnity³¡¾°¡£
1.732¸ö¶ÔÏó
2.95,898¸öÈý½ÇÐÎ
3.69,740¸ö¶¥µã

ÎÒÃÇÕë¶Ô¸Ã³¡¾°ÔËÐÐÁËUnityÐÔÄܲâÊÔ²¢²É¼¯ÁËÖ¸±ê£¬Õ⽫°ïÖúÎÒÃÇÁ˽âÊÇ·ñ¿ÉÒÔʹÓöàͨµÀÁ¢ÌåäÖȾά³Ö½ü60
FPS¡£
ÏÂÃæ£¬¶Ô²âÊÔ½á¹ûÔËÐÐPerformance Benchmark Reporter£¬·¢Ïֵõ½µÄFPS½Ó½ü30
FPS£¬ÊÇÄ¿±êFPSµÄÒ»°ë¡£

È»ºó£¬ÎÒÃǽ«³¢ÊÔʹÓõ¥Í¨µÀ¶àÊÓͼÁ¢ÌåäÖȾÀ´Á˽âÊÇ·ñÄܵõ½½Ó½ü60 FPSµÄ½á¹û¡£Ê¹ÓÃÐ޸ĺóµÄÅäÖÃÖØÐÂÔËÐÐÐÔÄܲâÊÔ£¬È»ºó´´½¨ÁíÒ»¸öUnityÐÔÄÜ»ù×¼±¨¸æ£¬¶Ô±Èб¨¸æºÍ֮ǰ±¨¸æµÄ½á¹û¡£
½«ÅäÖøÄΪµ¥Í¨µÀ¶àÊÓͼäÖȾºó£¬FPSÌá¸ßµ½ÁË37¡£Èç¹ûÎÒÃÇÏ£ÍûÈøó¡¾°ÔÚGear VRÉÏÔËÐÐʱ²»·¢ÉúÃ÷ÏԵĵôÖ¡ÏÖÏó£¬ÎÒÃÇÈÔÐèҪʹFPS½Ó½ü60¡£
×îºó£¬ÎÒÃǽ«³¢ÊÔ¼õÉÙ³¡¾°ÖÐÐýתµÄÁ¢·½ÌåÊýÁ¿ÒÔÌá¸ßFPS¡£ÔÚ¶à´Î³¢ÊÔºó£¬ÎÒÃǽ«ÐÔÄÜÌáÉýµ½55 FPS¡£µ«±ØÐ뽫³¡¾°ÖеĶÔÏóÊýÁ¿´Ó732¸ö¼õÉÙΪ31¸ö£¬¼õÉٵĶÔÏóÊýÁ¿Ï൱¶à¡£
ÏÖÔÚ½«ËüÓÃ×÷FPS»ùÏߺÍÖ®ºóµÄ»ù×¼£¬Ï£ÍûÄÜÌá¸ßËüµÄÐÔÄÜ¡£
½¨Á¢»ù×¼²¢¸ú×ÙÐÔÄܸ͝
½¨Á¢»ù×¼¿ÉÒÔ¾ßÓжàÖÖº¬Ò壬¾ßÌåÈ¡¾öÓÚÏîÄ¿¡£±¾ÎÄÖÐÖ¸µÄÊÇÔÚUnityÔËÐÐÐÔÄܲâÊÔ£¬ÎÒÃǽ«Ì½ÌÖ½¨Á¢½á¹ûµÄ»ùÏß¼¯£¬ÒÔ¼°½üÆÚ×îºÃµÄÐÔÄÜÖ¸±ê¼¯ºÏ£¬ÓÃÀ´ÔÚ×ö¸ü¸Äʱ¶Ô±ÈºóÐø½á¹û¡£ÕâЩ½á¹û½«³ÉΪÎÒÃǵĻù×¼¡£
ÔÚÉÏÒ»²¿·ÖÖУ¬ÎÒÃÇΪGear VRʹÓÃÁ˵¥Í¨µÀ¶àÊÓͼÁ¢ÌåäÖȾµÄÅäÖ㬲¢¼õÉÙÁ˳¡¾°¶ÔÏóÊýÁ¿£¬´Ó¶øµÃµ½¡°¿É½ÓÊܵġ±FPS¡£ÎÒÃǾö¶¨Ê¹ÓøòâÊÔ½á¹û×÷Ϊ»ù×¼¡£
ÏÂÃæÈÃÎÒÃÇÁ˽âÐ޸IJ¥·ÅÆ÷ÅäÖÃʱÈçºÎʹÓøûù×¼¡£
ʾÀý£ºÊ¹ÓÃÐÔÄÜ»ù×¼À´¼ì²âÅäָ͝Ôì³ÉµÄÐÔÄÜϽµÇé¿ö
ÎÒÃǽ«ÔÚ³¡¾°ÖÐÆôÓÿ¹¾â³Ý¹¦ÄÜ£¬Ê¹»Ãæ¸üƽ»¬¡£UnityÕë¶ÔAndroidϵͳµÄĬÈÏÖÊÁ¿ÉèÖûá½ûÓÿ¹¾â³Ý¹¦ÄÜ£¬µ«ÎÒÃÇÏëÁ˽âÊÇ·ñÄÜÆôÓøù¦ÄÜ£¬²¢±£³Ö¸ÃGear
VR³¡¾°Öпɹ۵ÄFPS¡£
Ê×ÏÈÔÚIPrebuildSetup.Setup·½·¨ÖÐÉèÖÿ¹¾â³ÝֵΪ4¡£
QualitySettings.antiAliasing
= 4; |
½ÓÏÂÀ´£¬ÔÚÆôÓÃGear VRµÄAndroidÊÖ»úÉÏÖØÐÂÔËÐÐÐÔÄܲâÊÔ¡£È»ºó£¬Ê¹ÓÃUnity
Performance Benchmark ReporterÀ´¶Ô±È´Ë´ÎÔËÐнá¹ûºÍн¨Á¢µÄ»ù×¼½á¹û¡£

ÖØÐÂÅäÖÃUnity²¥·ÅÆ÷²¢Ê¹Óõȼ¶4µÄ¿¹¾â³Ýºó£¬FPSϽµÎª32£¬¸ÃÖµÓë֮ǰÏîÄ¿¿ªÊ¼Ê±µÄFPSÖµ²î²»¶à£¬ÄÇʱ³¡¾°ÖÐÓÐ732¸ö¶ÔÏó¡£
ÏÖÔÚ³¢ÊÔ½µµÍ¿¹¾â³ÝÖµ£¬´Ó¶øÁ˽âÊÇ·ñÄָܻ´ÎªÖ®Ç°¿É¹ÛµÄFPSÖµ¡£ËùÒÔÎÒÃǽ«¿¹¾â³ÝÉèΪ2£¬½Ó×ÅÉèΪ1£¬µÃµ½µÄ½á¹ûÈçÏÂͼËùʾ¡£

ÔÚÖØÐÂÅäÖõÄÇé¿öÏ£¬Í¨¹ýʹÓÃ֮ǰ½¨Á¢µÄÐÔÄÜ»ù×¼£¬ÎÒÃÇÄܹ»³¢ÊÔÐÞ¸ÄUnity²¥·ÅÆ÷ÉèÖã¬È»ºóÔÚÌá½»¸ü¸ÄǰÁ˽âÐÔÄÜÓ°Ïì¡£
ËäÈ»ÈÔʹÓÃĬÈÏ·½²îãÐÖµ15%£¬¿¹¾â³ÝֵΪ1£¬FPSÏÖÔÚ´ïµ½ÁË49£¬¶ÔVR³¡¾°¶øÑÔ»¹ÊǺÍÀíÏëµÄ60
FPS²î¾à½Ï´ó¡£ËùÒÔ²»»áÌá½»ÕâЩ¸Ä¶¯¡£
½áÓï
Unity·Ç³£×¢ÖØÄ¬ÈÏÉèÖÃϵÄÓÅÐãÐÔÄÜ¡£µ«UnityÒýÇæÖ»ÊÇÕâÆäÖеÄÒ»²¿·Ö£¬ÎªÁËÈÃÓû§Ï²»¶Íæ×Ô¼ºÑз¢µÄÓÎÏ·£¬¸üÖØÒªµÄÊÇÈÃËûÃÇÔÚËùÓÐÆ½Ì¨ÉÏÏíÊܵ½Á÷³©ºÍ¸ßÐÔÄܵÄÌåÑé¡£ÀýÈ磺ʹÓò»»áÓ°ÏìÐÔÄܵÄSDK¡¢Çý¶¯»òUnity×ÊÔ´°üÒ²·Ç³£ÖØÒª£¬´Ó¶øÊ¹ËùÓÐÓû§µÃµ½ÓÅÐãµÄ×ÜÌåÐÔÄÜÌåÑé¡£
±¾ÎĽéÉÜÁËUnity Performance Testing ExtensionºÍUnity
Performance Benchmark Reporter£¬ËüÃÇÓÃÀ´ÇáËÉÊÕ¼¯ÐÔÄÜÖ¸±ê²¢ÓÃÀ´´´½¨»ù×¼¡£ÎÒÃǽ¨ÒéÄã³¢ÊÔʹÓÃÕâЩ¹¤¾ß£¬Á˽âËüÃÇÄÜΪÐÔÄܹ¤×÷×öЩʲô¡£
ÎÒÃÇÔÚ±¾ÎÄÁ˽âÁË£º
ÈçºÎʹÓÃUnity Test Runner±àдÐÔÄܲâÊÔ£¬ÓÃÀ´²ÉÑùÐÔÄÜ·ÖÎöÆ÷ºÍÆäËüÖ¸±ê¡£
ʹÓÃUnity Test RunnerÖ´ÐÐÐÔÄܲâÊԵIJ»Í¬·½·¨¡£
ÈçºÎʹÓÃUnity Performance Benchmark ReporterÀ´·ÖÎö²¢¶Ô±ÈÐÔÄÜÖ¸±ê£¬ÔÚ²âÊÔÓÎÏ·ÐÔÄÜʱ·´¸´ÔËÐиù¤¾ß¡£
ΪÕâЩָ±ê½¨Á¢»ùÏߣ¬È»ºóʹÓûùÏßΪ³¡¾°¡¢ÓÎÏ·¡¢SDK¡¢Çý¶¯¡¢×ÊÔ´°ü»òÆäËüUnity¼¯³É´´½¨»ù×¼£¬ÕâÑùÄÜÓÐЧµØÁ˽â¸Ä¶¯Ôì³ÉµÄÓ°Ïì¡£
|