JNPF快速开发平台支持数据库自动创建,第一次运行程序,应用会自动初始化建表、执行初始化数据。权限授权模块灵活,支持 OAuth2.0 单点登录,简单 yml 配置即可,不用再写很多的 xml 配置文件。支持多数据源,简单 xml 配置即可实现,为了安全性,不提供界面维护数据源。支持分布式事务(TCC、消息最终一致性,混合使用、单独使用都支持),提供监控界面、人工补偿操作。缓存监控,J2Cache 二级缓存,支持快速切换为 Redis 缓存。服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。支持 Spring Cloud 架构,分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。丰富的内置功能:用户权限、数据权限、系统管理、文件系统。
基于 Element-UI 平面化界面设计,精细,更加美观、高端、大气、上档次。无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。支持一键换肤,系统右上角设置即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。国际化的支持,页面标签国际化,字典菜单国际化,数据国际化。
private static string s_contents = string.Concat(Enumerable.Range(0, 100_000).Select(i => (char)('a' + (i % 26))));
private static string s_path = Path.GetRandomFileName();
[Benchmark]
public Task WriteAllTextAsync() => File.WriteAllTextAsync(s_path, s_contents);
private byte[] _toCompress;
private MemoryStream _destination = new MemoryStream();
[GlobalSetup]
public async Task Setup()
{
using var hc = new HttpClient();
_toCompress = await hc.GetByteArrayAsync(@"https://raw.githubusercontent.com/dotnet/performance/5584a8b201b8c9c1a805fae4868b30a678107c32/src/benchmarks/micro/corefx/System.IO.Compression/TestData/alice29.txt");
}
[Benchmark]
public void Compress()
{
_destination.Position = 0;
using var ds = new BrotliStream(_destination, CompressionLevel.Fastest, leaveOpen: true);
ds.Write(_toCompress);
}
[Params(false, true)]
public bool NewOverload { get; set; }
[Benchmark(OperationsPerInvoke = 1000)]
public async Task ConnectAcceptAsync()
{
using var listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Loopback, 0));
listener.Listen(1);
for (int i = 0; i < 1000; i++)
{
using var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
if (NewOverload)
{
await client.ConnectAsync(listener.LocalEndPoint, CancellationToken.None);
}
else
{
await client.ConnectAsync(listener.LocalEndPoint);
}
using var server = await listener.AcceptAsync();
}
}