Skip to content

Commit 5ffa0dd

Browse files
[c#/beetlex] change plaintext buffer size, optimize fortunes. (#6300)
* update beetlex 1.4.3 update beetlex 1.4.3 * docker add COMPlus_ReadyToRun variable update beetlex * update beetlex, enabled thread queue * beetlex framework add db and queries cases * add db code * change result json data * update query url * beetlex framework add fortunes cases * change Content-Type * add beetlex core cases * fix queries cases * update config * change try readline * update benchmark config * Update README.md * Update README.md * change versus property * beetlex-core update .net core to v3.0 * change beetlex-core project file * beetlex update raw db class * beetlex update raw db * beetlex debug plaintext * change debug docker file * update beetlex to 1.4.0 * update * beetlex update core 3.1 * [c#/beetlex] add updates cases * [c#/beetlex] change Server: TFB, change custom connection pool, add update docker * fix errors * change pool init * change connection pool maxsize * fix fortunes errors * clear DBRaw _connectionString value. * [c#beetlex] change update dbconnection pool size * [c#/beetlex] udpate spanjson to v3.0.1, Npgsql v5.0.0 * [c#/beetlex] add caching sample * set connectionstring multiplexing * remove connection multiplexing setting * [c#/beetlex]change NpgsqlParameter to NpgsqlParameter<T> * [c#/beetlex] update dbraw * [c#/beetlex] change connection string * [c#/beetlex] add fortunes cases to core-updb * update beetlex 1.5.6 * update 5.0.0-alpha1 * update docker file * Enabled IOQueues * Set IOQueues debug mode * update * [c#/beetlex] udpate to v1.6.0.1-beta * update pg drive * [c#/beetlex] update to beetlex v1.6.3 and support pipelining * set options * [c#/beetlex] Optimized actions * [c#/beetlex] update plaintext * Bump ServiceStack in /frameworks/CSharp/servicestack/src/SelfHost Bumps [ServiceStack](https://github.com/ServiceStack/ServiceStack) from 3.9.59 to 5.9.2. - [Release notes](https://github.com/ServiceStack/ServiceStack/releases) - [Commits](https://github.com/ServiceStack/ServiceStack/commits/v5.9.2) Signed-off-by: dependabot[bot] <[email protected]> * [c#/beetlex] change plaintext buffer size, optimize fortunes. Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent 0f93e20 commit 5ffa0dd

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

frameworks/CSharp/beetlex/PlatformBenchmarks/HttpServer.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,16 @@ public virtual Task StartAsync(CancellationToken cancellationToken)
2020
serverOptions.LogLevel = LogType.Error;
2121
serverOptions.DefaultListen.Port = 8080;
2222
serverOptions.Statistical = false;
23-
serverOptions.BufferSize = 1024 * 8;
2423
serverOptions.BufferPoolMaxMemory = 1000;
2524
serverOptions.BufferPoolSize = 1024 * 10;
25+
if (Program.Debug)
26+
{
27+
serverOptions.BufferSize = 1024 * 16;
28+
}
29+
else
30+
{
31+
serverOptions.BufferSize = 1024 * 8;
32+
}
2633
ApiServer = SocketFactory.CreateTcpServer<HttpHandler>(serverOptions);
2734
ApiServer.Open();
2835
if (!Program.UpDB)

frameworks/CSharp/beetlex/PlatformBenchmarks/fortunes.cs

+20-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using System.Collections.Generic;
55
using System.Globalization;
66
using System.Text;
7+
using System.Text.Encodings.Web;
8+
using System.Text.Unicode;
79
using System.Threading.Tasks;
810

911
namespace PlatformBenchmarks
@@ -17,18 +19,35 @@ public partial class HttpHandler
1719
private readonly static AsciiString _fortunesRowEnd = "</td></tr>";
1820
private readonly static AsciiString _fortunesTableEnd = "</table></body></html>";
1921

22+
[ThreadStatic]
23+
private static char[] mHtmlEncodeBuffer;
24+
25+
protected HtmlEncoder HtmlEncoder { get; } = CreateHtmlEncoder();
26+
27+
private static HtmlEncoder CreateHtmlEncoder()
28+
{
29+
var settings = new TextEncoderSettings(UnicodeRanges.BasicLatin, UnicodeRanges.Katakana, UnicodeRanges.Hiragana);
30+
settings.AllowCharacter('\u2014'); // allow EM DASH through
31+
return HtmlEncoder.Create(settings);
32+
}
33+
2034
public async Task fortunes(PipeStream stream, HttpToken token, ISession session)
2135
{
2236
try
2337
{
38+
2439
var data = await token.Db.LoadFortunesRows();
2540
stream.Write(_fortunesTableStart.Data, 0, _fortunesTableStart.Length);
2641
foreach (var item in data)
2742
{
2843
stream.Write(_fortunesRowStart.Data, 0, _fortunesRowStart.Length);
2944
stream.Write(item.Id.ToString(CultureInfo.InvariantCulture));
3045
stream.Write(_fortunesColumn.Data, 0, _fortunesColumn.Length);
31-
stream.Write(System.Web.HttpUtility.HtmlEncode(item.Message));
46+
if (mHtmlEncodeBuffer == null)
47+
mHtmlEncodeBuffer = new char[1024];
48+
HtmlEncoder.Encode(item.Message, mHtmlEncodeBuffer, out int consumed, out int writtens);
49+
//stream.Write(HtmlEncoder.Encode(item.Message));
50+
stream.Write(new ArraySegment<char>(mHtmlEncodeBuffer, 0, writtens));
3251
stream.Write(_fortunesRowEnd.Data, 0, _fortunesRowEnd.Length);
3352
}
3453
stream.Write(_fortunesTableEnd.Data, 0, _fortunesTableEnd.Length);

frameworks/CSharp/servicestack/src/SelfHost/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="ServiceStack" version="3.9.59" targetFramework="net45" />
3+
<package id="ServiceStack" version="5.9.2" targetFramework="net45" />
44
<package id="ServiceStack.Common" version="3.9.59" targetFramework="net45" />
55
<package id="ServiceStack.OrmLite.SqlServer" version="3.9.59" targetFramework="net45" />
66
<package id="ServiceStack.Redis" version="3.9.59" targetFramework="net45" />

0 commit comments

Comments
 (0)