JNPF开发平台,是一个以PaaS为核心的零代码开发平台,是一个集PC和APP快速开发、系统管理、流程引擎、权限管理、数据报表、可视化数据源管理与数据构建、数据动态生成与统计、工作流、智能表单设计、微服务等全方位功能于一体的高效、稳定的快速开发平台。
private const int Concurrency = 256;
private const int Iters = 100_000;
[Benchmark(Baseline = true)]
public Task NonPooling()
{
return Task.WhenAll(from i in Enumerable.Range(0, Concurrency)
select Task.Run(async delegate
{
for (int i = 0; i < Iters; i++)
await A().ConfigureAwait(false);
}));
static async ValueTask A() => await B().ConfigureAwait(false);
static async ValueTask B() => await C().ConfigureAwait(false);
static async ValueTask C() => await D().ConfigureAwait(false);
static async ValueTask D() => await Task.Yield();
}
[Benchmark]
public Task Pooling()
{
return Task.WhenAll(from i in Enumerable.Range(0, Concurrency)
select Task.Run(async delegate
{
for (int i = 0; i < Iters; i++)
await A().ConfigureAwait(false);
}));
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask A() => await B().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask B() => await C().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask C() => await D().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask D() => await Task.Yield();
}
可视化数据大屏解决方案,前端采用 Avue,后端采用 JeeSite 与您的业务系统数据完美结合。 拖拽即可无需编程就能轻松搭建数据大屏;多种图表组件支撑多种数据类型的分析展示;多种数据源接入(接口数据/静态数据);可视化,图形化的搭建工具,方便快捷;多分辨率适配发布,满足您不同场合使用;自定义组件扩展, 轻松二次开发;轻量级安装超简单, 使用简单。
const int Iters = 100_000;
[Benchmark(OperationsPerInvoke = Iters, Baseline = true)]
public async Task WithoutPooling()
{
for (int i = 0; i < Iters; i++)
await YieldAsync();
async ValueTask YieldAsync() => await Task.Yield();
}
[Benchmark(OperationsPerInvoke = Iters)]
public async Task WithPooling()
{
for (int i = 0; i < Iters; i++)
await YieldAsync();
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
async ValueTask YieldAsync() => await Task.Yield();
}