import std.stdio; import yitter; import GenTest; import core.thread; import std.conv; import std.datetime; import std.stdio; /** * 测试结果: * (1):1W并发,方法 1只要 1ms.而方法 2 要 180ms。 * (2):5W并发,方法 1只要 3ms.而方法 2 要 900ms。 * [不同CPU可能结果有差异,但相对大小不变] * 默认配置下,最佳性能是5W/s-8W/s */ enum int genIdCount = 50000; //1-漂移算法,2-传统算法 enum short method = 1; void main() { IdGeneratorOptions options = new IdGeneratorOptions(); options.Method = method; options.BaseTime = 1582206693000L; options.WorkerId = 1; IIdGenerator idGen = new DefaultIdGenerator(options); GenTest.GenTest genTest = new GenTest.GenTest(idGen, genIdCount, options.WorkerId); // 首先测试一下 IdHelper 方法,获取单个Id YitIdHelper.setIdGenerator(options); long newId = YitIdHelper.nextId(); writeln("====================================="); writeln("Method " ~ method.to!string() ~ " used, the result Id:" ~ newId.to!string()); // 然后循环测试一下,看看并发请求时的耗时情况 try { while (true) { genTest.GenStart(); Thread.sleep(1000.msecs); // writeln("Hello World! D"); } } catch (Exception e) { writeln(e.toString()); } }