Welcome! Glad to see you here Hugh :-)
On 7/16/06, Jesse Nesbitt <[EMAIL PROTECTED]> wrote:
And how does this work/why is this a good benchmark?
On 7/16/06, Hugh Perkins < [EMAIL PROTECTED]> wrote:
>
> Just to check if there are any performance issues with using Reflective
> introspection to run binary unmarshalling/marshalling, wrote a quick
> benchmarking program. On a 2GHz processor, this can handle about 20000
> packets a second.
>
> Here's the output from the code:
>
> Packets unmarshalled: 0 Total time elapsed: 00:00: 00.0156250
> Packets unmarshalled: 10000 Total time elapsed: 00:00:00.5312500
> Packets unmarshalled: 20000 Total time elapsed: 00:00:01.0468750
> Packets unmarshalled: 30000 Total time elapsed: 00:00: 01.5625000
> Packets unmarshalled: 40000 Total time elapsed: 00:00:02.0781250
> Packets unmarshalled: 50000 Total time elapsed: 00:00:02.6093750
> Packets unmarshalled: 60000 Total time elapsed: 00:00:03.1093750
> Packets unmarshalled: 70000 Total time elapsed: 00:00: 03.6250000
> Packets unmarshalled: 80000 Total time elapsed: 00:00:04.1093750
> Packets unmarshalled: 90000 Total time elapsed: 00:00:04.6093750
> Packets unmarshalled: 100000 Total time elapsed: 00:00: 05.1093750
> Packets unmarshalled: 110000 Total time elapsed: 00:00: 05.6250000
> Packets unmarshalled: 120000 Total time elapsed: 00:00:06.1093750
> Packets unmarshalled: 130000 Total time elapsed: 00:00: 06.6093750
> Packets unmarshalled: 140000 Total time elapsed: 00:00:07.0937500
> Packets unmarshalled: 150000 Total time elapsed: 00:00:07.6093750
> Packets unmarshalled: 160000 Total time elapsed: 00:00: 08.0937500
> Packets unmarshalled: 170000 Total time elapsed: 00:00:08.5937500
> Packets unmarshalled: 180000 Total time elapsed: 00:00: 09.0937500
> Packets unmarshalled: 190000 Total time elapsed: 00:00: 09.6093750
> Packets unmarshalled: 200000 Total time elapsed: 00:00:10.0937500
>
> Here's the benchmarking code:
>
> using System;
> using System.Collections;
> using System.Reflection ;
>
>
> public class LLUUID
> {
> }
>
> public class LLVector3
> {
> }
>
> public class ImprovedInstantMessage
> {
> public LLUUID FromAgentID = new LLUUID();
> public LLUUID ToAgentID = new LLUUID();
> public uint ParentEstateID = 0;
> public LLUUID RegionID = new LLUUID();
> public LLVector3 Position = new LLVector3();
> public byte Offline = 0;
> public byte Dialog = 0;
> public LLUUID ID = new LLUUID();
> public uint Timestamp = 0;
> public string FromAgentName = "";
> public string Message = "";
> public string BinaryBucket = "";
> }
>
> class IntrospectionBenchmark
> {
> public void Go()
> {
> DateTime start = DateTime.Now;
>
> ImprovedInstantMessage improvedinstantmessage = new
> ImprovedInstantMessage();
> for( int i = 0; i < 1000000; i++ )
> {
> foreach( MemberInfo memberinfo in
> improvedinstantmessage.GetType().GetMembers() )
> {
> // Console.WriteLine( memberinfo.Name + " " +
> memberinfo.MemberType.ToString () );
> if( memberinfo.MemberType == MemberTypes.Field )
> {
> FieldInfo fi =
> improvedinstantmessage.GetType().GetField( memberinfo.Name );
> Type type = fi.FieldType;
> if( type == typeof( LLUUID ) )
> {
> fi.SetValue( improvedinstantmessage, new LLUUID() );
> }
> else if( type == typeof( uint ) )
> {
> fi.SetValue( improvedinstantmessage, (uint)123 );
> }
> else if( type == typeof( LLVector3 ) )
> {
> fi.SetValue( improvedinstantmessage, new LLVector3()
> );
> }
> else if( type == typeof( string ) )
> {
> fi.SetValue( improvedinstantmessage, "teststring" );
> }
> }
> }
> if( i % 10000 == 0 )
> {
> Console.WriteLine( "Packets unmarshalled: " + i + " Total
> time elapsed: " + DateTime.Now.Subtract( start ).ToString() );
> }
> }
> }
> }
>
> class entrypoint
> {
> public static void Main( string[] args )
> {
> new IntrospectionBenchmark().Go();
> }
> }
>
>
> _______________________________________________
> libsecondlife-dev mailing list
> libsecondlife-dev@gna.org
> https://mail.gna.org/listinfo/libsecondlife-dev
>
>
>
--
--Jesse
_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev
--
"Anyone that would give up a little liberty for a little security, deserves neither and loses both." -Ben Franklin
_______________________________________________ libsecondlife-dev mailing list libsecondlife-dev@gna.org https://mail.gna.org/listinfo/libsecondlife-dev