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
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 [email protected] https://mail.gna.org/listinfo/libsecondlife-dev
