Skip to content

Commit 257703e

Browse files
authored
Improve performance by pre-encoding JSON property names in serializer (#10284)
* Improve performance by pre-encoding JSON property names in serializer * Code review fixes
1 parent fea8373 commit 257703e

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

sdk/textanalytics/Azure.AI.TextAnalytics/src/TextAnalyticsServiceSerializer.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,24 @@ internal static class TextAnalyticsServiceSerializer
1818

1919
#region Serialize Inputs
2020

21+
private static readonly JsonEncodedText s_countryHint = JsonEncodedText.Encode("countryHint");
22+
private static readonly JsonEncodedText s_documents = JsonEncodedText.Encode("documents");
23+
private static readonly JsonEncodedText s_id = JsonEncodedText.Encode("id");
24+
private static readonly JsonEncodedText s_language = JsonEncodedText.Encode("language");
25+
private static readonly JsonEncodedText s_text = JsonEncodedText.Encode("text");
26+
2127
public static ReadOnlyMemory<byte> SerializeDetectLanguageInputs(IEnumerable<DetectLanguageInput> inputs, string defaultCountryHint)
2228
{
2329
var writer = new ArrayBufferWriter<byte>();
2430
var json = new Utf8JsonWriter(writer);
2531
json.WriteStartObject();
26-
json.WriteStartArray("documents");
32+
json.WriteStartArray(s_documents);
2733
foreach (var input in inputs)
2834
{
2935
json.WriteStartObject();
30-
json.WriteString("countryHint", input.CountryHint ?? defaultCountryHint);
31-
json.WriteString("id", input.Id);
32-
json.WriteString("text", input.Text);
36+
json.WriteString(s_countryHint, input.CountryHint ?? defaultCountryHint);
37+
json.WriteString(s_id, input.Id);
38+
json.WriteString(s_text, input.Text);
3339
json.WriteEndObject();
3440
}
3541
json.WriteEndArray();
@@ -43,13 +49,13 @@ public static ReadOnlyMemory<byte> SerializeDocumentInputs(IEnumerable<TextDocum
4349
var writer = new ArrayBufferWriter<byte>();
4450
var json = new Utf8JsonWriter(writer);
4551
json.WriteStartObject();
46-
json.WriteStartArray("documents");
52+
json.WriteStartArray(s_documents);
4753
foreach (var input in inputs)
4854
{
4955
json.WriteStartObject();
50-
json.WriteString("language", input.Language ?? defaultLanguage);
51-
json.WriteString("id", input.Id);
52-
json.WriteString("text", input.Text);
56+
json.WriteString(s_language, input.Language ?? defaultLanguage);
57+
json.WriteString(s_id, input.Id);
58+
json.WriteString(s_text, input.Text);
5359
json.WriteEndObject();
5460
}
5561
json.WriteEndArray();

0 commit comments

Comments
 (0)