1111using MLAPI . NetworkingManagerComponents . Binary ;
1212using MLAPI . Data . Transports ;
1313using MLAPI . Data . Transports . UNET ;
14+ using MLAPI . Data . NetworkProfiler ;
1415
1516namespace MLAPI . MonoBehaviours . Core
1617{
@@ -680,16 +681,19 @@ private void Update()
680681 {
681682 if ( ( NetworkTime - lastSendTickTime >= ( 1f / NetworkConfig . SendTickrate ) ) || NetworkConfig . SendTickrate <= 0 )
682683 {
684+ NetworkProfiler . StartTick ( TickType . Send ) ;
683685 foreach ( KeyValuePair < uint , NetworkedClient > pair in connectedClients )
684686 {
685687 byte error ;
686688 NetworkConfig . NetworkTransport . SendQueue ( pair . Key , out error ) ;
687689 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Send Pending Queue: " + pair . Key ) ;
688690 }
689691 lastSendTickTime = NetworkTime ;
692+ NetworkProfiler . EndTick ( ) ;
690693 }
691694 if ( ( NetworkTime - lastReceiveTickTime >= ( 1f / NetworkConfig . ReceiveTickrate ) ) || NetworkConfig . ReceiveTickrate <= 0 )
692695 {
696+ NetworkProfiler . StartTick ( TickType . Receive ) ;
693697 NetEventType eventType ;
694698 int processedEvents = 0 ;
695699 do
@@ -704,6 +708,7 @@ private void Update()
704708 switch ( eventType )
705709 {
706710 case NetEventType . Connect :
711+ NetworkProfiler . StartEvent ( TickType . Receive , ( uint ) receivedSize , MessageManager . reverseChannels [ channelId ] , "TRANSPORT_CONNECT" ) ;
707712 if ( isServer )
708713 {
709714 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Client Connected" ) ;
@@ -736,13 +741,15 @@ private void Update()
736741 InternalMessageHandler . Send ( clientId , "MLAPI_CONNECTION_REQUEST" , "MLAPI_INTERNAL" , writer , null , null , null , true ) ;
737742 }
738743 }
744+ NetworkProfiler . EndEvent ( ) ;
739745 break ;
740746 case NetEventType . Data :
741747 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Incomming Data From " + clientId + " : " + receivedSize + " bytes" ) ;
742748
743- HandleIncomingData ( clientId , messageBuffer , channelId ) ;
749+ HandleIncomingData ( clientId , messageBuffer , channelId , ( uint ) receivedSize ) ;
744750 break ;
745751 case NetEventType . Disconnect :
752+ NetworkProfiler . StartEvent ( TickType . Receive , 0 , "NONE" , "TRANSPORT_DISCONNECT" ) ;
746753 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Disconnect Event From " + clientId ) ;
747754
748755 if ( isServer )
@@ -752,31 +759,39 @@ private void Update()
752759
753760 if ( OnClientDisconnectCallback != null )
754761 OnClientDisconnectCallback . Invoke ( clientId ) ;
762+ NetworkProfiler . EndEvent ( ) ;
755763 break ;
756764 }
757765 // Only do another iteration if: there are no more messages AND (there is no limit to max events or we have processed less than the maximum)
758766 } while ( eventType != NetEventType . Nothing && ( NetworkConfig . MaxReceiveEventsPerTickRate <= 0 || processedEvents < NetworkConfig . MaxReceiveEventsPerTickRate ) ) ;
759767 lastReceiveTickTime = NetworkTime ;
768+ NetworkProfiler . EndTick ( ) ;
760769 }
761770
762771 if ( isServer && ( ( NetworkTime - lastEventTickTime >= ( 1f / NetworkConfig . EventTickrate ) ) ) )
763772 {
773+ NetworkProfiler . StartTick ( TickType . Event ) ;
764774 eventOvershootCounter += ( ( NetworkTime - lastEventTickTime ) - ( 1f / NetworkConfig . EventTickrate ) ) ;
765775 LagCompensationManager . AddFrames ( ) ;
766776 NetworkedObject . InvokeSyncvarUpdate ( ) ;
767777 lastEventTickTime = NetworkTime ;
778+ NetworkProfiler . EndTick ( ) ;
768779 }
769780 else if ( isServer && eventOvershootCounter >= ( ( 1f / NetworkConfig . EventTickrate ) ) )
770781 {
782+ NetworkProfiler . StartTick ( TickType . Event ) ;
771783 //We run this one to compensate for previous update overshoots.
772784 eventOvershootCounter -= ( 1f / NetworkConfig . EventTickrate ) ;
773785 LagCompensationManager . AddFrames ( ) ;
786+ NetworkProfiler . EndTick ( ) ;
774787 }
775788
776789 if ( NetworkConfig . EnableTimeResync && NetworkTime - lastTimeSyncTime >= 30 )
777790 {
791+ NetworkProfiler . StartTick ( TickType . Event ) ;
778792 SyncTime ( ) ;
779793 lastTimeSyncTime = NetworkTime ;
794+ NetworkProfiler . EndTick ( ) ;
780795 }
781796
782797 networkTime += Time . unscaledDeltaTime ;
@@ -799,7 +814,7 @@ private IEnumerator ApprovalTimeout(uint clientId)
799814 }
800815 }
801816
802- private void HandleIncomingData ( uint clientId , byte [ ] data , int channelId )
817+ private void HandleIncomingData ( uint clientId , byte [ ] data , int channelId , uint totalSize )
803818 {
804819 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Unwrapping Data Header" ) ;
805820 using ( BitReader reader = BitReader . Get ( data ) )
@@ -823,6 +838,9 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId)
823838 else if ( isPassthrough && ! isServer )
824839 passthroughOrigin = reader . ReadUInt ( ) ;
825840
841+ byte headerSize = 0 ; //TODO
842+ NetworkProfiler . StartEvent ( TickType . Receive , totalSize - headerSize , channelId , messageType ) ;
843+
826844 if ( LogHelper . CurrentLogLevel <= LogLevel . Developer ) LogHelper . LogInfo ( "Data Header" +
827845 ":messageHeader=" + messageType +
828846 ":targeted=" + targeted +
@@ -1009,6 +1027,7 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId)
10091027 #endregion
10101028 }
10111029 }
1030+ NetworkProfiler . EndEvent ( ) ;
10121031 }
10131032 }
10141033
@@ -1187,7 +1206,6 @@ internal void HandleApproval(uint clientId, bool approved, Vector3 position, Qua
11871206 pair . Value . WriteFormattedSyncedVarData ( writer ) ;
11881207 }
11891208 }
1190-
11911209 InternalMessageHandler . Send ( clientId , "MLAPI_CONNECTION_APPROVED" , "MLAPI_INTERNAL" , writer , null , null , null , true ) ;
11921210
11931211 if ( OnClientConnectedCallback != null )
@@ -1227,7 +1245,6 @@ internal void HandleApproval(uint clientId, bool approved, Vector3 position, Qua
12271245 {
12281246 writer . WriteUInt ( clientId ) ;
12291247 }
1230-
12311248 InternalMessageHandler . Send ( clientPair . Key , "MLAPI_ADD_OBJECT" , "MLAPI_INTERNAL" , writer , null ) ;
12321249 }
12331250 }
0 commit comments