Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
UnityÐÔÄÜ»ù×¼²âÊÔ
 
  6772  次浏览      29
 2018-10-17
 

 

±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ¸öÈ˲©¿Í£¬Ïêϸ½éÉÜÁËÈçºÎÊÕ¼¯ÐÔÄÜÖ¸±ê¡¢Í¨¹ýÕâЩָ±ê´´½¨»ù×¼²¢¿ÉÊÓ»¯²é¿´ÐÔÄÜÖ¸±êµÄ±ä»¯¡£

ÎÒÃǽ«½²½âÈçºÎʹÓöà¸ö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¼¯³É´´½¨»ù×¼£¬ÕâÑùÄÜÓÐЧµØÁ˽â¸Ä¶¯Ôì³ÉµÄÓ°Ïì¡£

 

   
6772 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù