Skip to content

Performance: Use Span<T> when parsing #258

Closed
@jaredcnance

Description

@jaredcnance

Split is going to allocate at least 2 additional string, and in these cases we should be able to just use Span<T> and allocate only when required.

private static bool ContainsMediaTypeParameters(string mediaType)
{
var mediaTypeArr = mediaType.Split(';');
return (mediaTypeArr[0] == Constants.ContentType && mediaTypeArr.Length == 2);
}

var propertyName = key.Split(OPEN_BRACKET, CLOSE_BRACKET)[1];
var values = value.Split(COMMA);
foreach (var val in values)
{
(var operation, var filterValue) = ParseFilterOperation(val);
queries.Add(new FilterQuery(propertyName, filterValue, operation));
}

private string GetNamespaceFromPath(string path, string entityName)
{
var nSpace = string.Empty;
var segments = path.Split('/');
for (var i = 1; i < segments.Length; i++)
{
if (segments[i].ToLower() == entityName)
break;
nSpace += $"/{segments[i]}";
}
return nSpace;
}

var relationshipArray = filterQuery.Attribute.Split('.');
var relationship = GetRelationship(relationshipArray[0]);

var path = context.Request.Path.Value.Split('/');

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions