17,740
社区成员
发帖
与我相关
我的任务
分享
[fastCSharp.setup.cSharp.memoryDatabase(CacheType = typeof(fastCSharp.memoryDatabase.cache.identityArray<,>), FileName = null, MinRefreshSize = 1, ClientType = typeof(fastCSharp.memoryDatabase.physicalClient<identity>), IsEmbed = false, IsIndexSerialize = true)]
对于代码生成模式,数据库操作代理就是 Model.memoryDatabase.Default,比如private static memoryDatabase db = memoryDatabase.Default;
对于反射模式,数据库操作代理需要自己创建。嵌入模式与远程模式的数据库代理分别如下private static fastCSharp.setup.cSharp.memoryDatabase.localTable<identity, int> db = fastCSharp.setup.cSharp.memoryDatabase.table.Open(new setup.cSharp.memoryDatabase.localTable<identity, int>(new fastCSharp.memoryDatabase.cache.identityArray<identity>()));
private static fastCSharp.setup.cSharp.memoryDatabase.remoteTable<identity, int> db = fastCSharp.setup.cSharp.memoryDatabase.table.Open(new setup.cSharp.memoryDatabase.remoteTable<identity, int>(new fastCSharp.memoryDatabase.PhysicalClient<identity>(), new fastCSharp.memoryDatabase.cache.identityArray<identity>()));
性能测试,采用的数据定义如下 public abstract class data
{
public bool Bool;
public byte Byte;
public sbyte SByte;
public short Short;
public ushort UShort;
public int Int;
public uint UInt;
public long Long;
public ulong ULong;
public DateTime DateTime;
public float Float;
public double Double;
public decimal Decimal;
public Guid Guid;
public char Char;
public string String;
public bool? BoolNull;
public byte? ByteNull;
public sbyte? SByteNull;
public short? ShortNull;
public ushort? UShortNull;
public int? IntNull;
public uint? UIntNull;
public long? LongNull;
public ulong? ULongNull;
public DateTime? DateTimeNull;
public float? FloatNull;
public double? DoubleNull;
public decimal? DecimalNull;
public Guid? GuidNull;
public char? CharNull;
}
当成员String为null的时候,二进制序列化数据大概120+字节,成员识别二进制序列化数据大概350+字节。本地模式 1线程:平均耗时 0.7s,CPU 100%
远程模式 1线程:平均耗时 5.3s / 6.7s,CPU 100%
远程模式 2线程:平均耗时 3.4s / 5.5s,CPU 100%
远程模式 5线程:平均耗时 2.4s / 3.6s,CPU 100%
远程模式 10线程:平均耗时 2.1s / 2.6s,CPU 100%
远程模式 20线程:平均耗时 1.8s / 1.9s,CPU 100%
远程模式 25线程:平均耗时 1.8s / 1.9s,CPU 100%
远程模式 40线程:平均耗时 1.9s / 1.8s,CPU 100%
远程模式 50线程:平均耗时 2.2s / 1.8s,CPU 100%
远程模式 80线程:平均耗时 2.3s / 1.8s,CPU 100%
远程模式200线程:平均耗时 2.8s / 2.0s,CPU 100%
远程模式500线程:平均耗时 3.5s / 2.9s,CPU 100%
代码生成模式+普通二进制序列化 [10W对象 + 序列化数据12M] 同步测试结果本地模式 1线程:平均耗时 0.53s,CPU 100%
远程模式 1线程:平均耗时 4.9s,CPU 100%
远程模式 2线程:平均耗时 3.1s,CPU 100%
远程模式 5线程:平均耗时 1.9s,CPU 100%
远程模式 10线程:平均耗时 1.5s,CPU 100%
远程模式 20线程:平均耗时 1.4s,CPU 100%
远程模式 25线程:平均耗时 1.4s,CPU 100%
远程模式 40线程:平均耗时 1.3s,CPU 100%
远程模式 50线程:平均耗时 1.3s,CPU 100%
远程模式 80线程:平均耗时 1.4s,CPU 100%
远程模式200线程:平均耗时 1.8s,CPU 100%
远程模式500线程:平均耗时 2.8s,CPU 100%
反射模式+成员识别二进制序列化 [10W对象 + 序列化数据35M] 同步测试结果本地模式 1线程:平均耗时 2.9s,CPU 100%
远程模式 1线程:平均耗时 8.4s,CPU 100%
远程模式 20线程:平均耗时 4.3s,CPU 100%
远程模式 40线程:平均耗时 4.3s,CPU 100%
远程模式 80线程:平均耗时 4.6s,CPU 100%
反射模式+普通二进制序列化 [10W对象 + 序列化数据12M] 同步测试结果本地模式 1线程:平均耗时 3.1s,CPU 100%
远程模式 1线程:平均耗时 8.4s,CPU 100%
远程模式 20线程:平均耗时 4.2s,CPU 100%
远程模式 40线程:平均耗时 4.2s,CPU 100%
远程模式 80线程:平均耗时 4.4s,CPU 100%