| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | using System;using System.Threading;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Http;using Microsoft.AspNetCore.Http.Features;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;namespace PeachpieBenchmarks.Server{    class Program    {        static void Main(string[] args)        {            // Double ThreadPool for non-async calls            ThreadPool.GetMinThreads(out int workerThread, out int completionThread);            ThreadPool.SetMinThreads(workerThread * 2, completionThread);            // https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Project-Information-Framework-Tests-Overview            new WebHostBuilder()                .UseKestrel(options =>                {                    options.AddServerHeader = true; // tfb requires "Server" header                    //options.Limits.KeepAliveTimeout = Timeout.InfiniteTimeSpan; // default 2:00                    //options.Limits.MaxConcurrentConnections = 1000;                })                .UseUrls("http://*:8080/")                .UseStartup<Startup>()                .Build()                .Run();        }    }    class Startup    {        public void ConfigureServices(IServiceCollection services)        {            services.AddPhp(options =>            {                // disable timeout                options.Core.ExecutionTimeout = 0;            });        }        public void Configure(IApplicationBuilder app)        {            //// disable response buffering and chunked transfer            //app.Use((httpcontext, next) =>            //{            //    var responsefeature = httpcontext.Features.Get<IHttpResponseBodyFeature>();            //    responsefeature?.DisableBuffering();            //    //            //    return next();            //});            // app.UseResponseBuffering();            app.UsePhp(new PhpRequestOptions(scriptAssemblyName: "Website"));            // app.UseDefaultFiles();            // app.UseStaticFiles();        }    }}
 |