Performance improvements

This adds additional performance improvements (namely string.Concat
overloads) on top of #411.
This commit is contained in:
Nick Craver 2015-11-03 06:55:13 -05:00
parent 7e573631f7
commit bacf76098e
4 changed files with 7 additions and 7 deletions

View File

@ -100,7 +100,7 @@ namespace Microsoft.AspNet.Http
string fragmentValue = uri.GetComponents(UriComponents.Fragment, UriFormat.UriEscaped); string fragmentValue = uri.GetComponents(UriComponents.Fragment, UriFormat.UriEscaped);
if (!string.IsNullOrEmpty(fragmentValue)) if (!string.IsNullOrEmpty(fragmentValue))
{ {
fragmentValue = $"#{fragmentValue}"; fragmentValue = "#" + fragmentValue;
} }
return new FragmentString(fragmentValue); return new FragmentString(fragmentValue);
} }

View File

@ -25,7 +25,7 @@ namespace Microsoft.AspNet.Http.Extensions
FragmentString fragment = new FragmentString()) FragmentString fragment = new FragmentString())
{ {
string combinePath = (pathBase.HasValue || path.HasValue) ? (pathBase + path).ToString() : "/"; string combinePath = (pathBase.HasValue || path.HasValue) ? (pathBase + path).ToString() : "/";
return $"{combinePath}{query.ToString()}{fragment.ToString()}"; return combinePath + query.ToString() + fragment.ToString();
} }
/// <summary> /// <summary>

View File

@ -80,7 +80,7 @@ namespace Microsoft.AspNet.Http.Internal
/// <param name="key"></param> /// <param name="key"></param>
public void Delete(string key) public void Delete(string key)
{ {
var encodedKeyPlusEquals = $"{UrlEncoder.Default.Encode(key)}="; var encodedKeyPlusEquals = UrlEncoder.Default.Encode(key) + "=";
Func<string, string, bool> predicate = (value, encKeyPlusEquals) => value.StartsWith(encKeyPlusEquals, StringComparison.OrdinalIgnoreCase); Func<string, string, bool> predicate = (value, encKeyPlusEquals) => value.StartsWith(encKeyPlusEquals, StringComparison.OrdinalIgnoreCase);
StringValues deleteCookies = $"{encodedKeyPlusEquals}; expires=Thu, 01-Jan-1970 00:00:00 GMT"; StringValues deleteCookies = $"{encodedKeyPlusEquals}; expires=Thu, 01-Jan-1970 00:00:00 GMT";
@ -124,7 +124,7 @@ namespace Microsoft.AspNet.Http.Internal
throw new ArgumentNullException(nameof(options)); throw new ArgumentNullException(nameof(options));
} }
var encodedKeyPlusEquals = $"{UrlEncoder.Default.Encode(key)}="; var encodedKeyPlusEquals = UrlEncoder.Default.Encode(key) + "=";
bool domainHasValue = !string.IsNullOrEmpty(options.Domain); bool domainHasValue = !string.IsNullOrEmpty(options.Domain);
bool pathHasValue = !string.IsNullOrEmpty(options.Path); bool pathHasValue = !string.IsNullOrEmpty(options.Path);

View File

@ -105,7 +105,7 @@ namespace Microsoft.AspNet.WebUtilities
/// <summary> /// <summary>
/// Parse a query string into its component key and value parts. /// Parse a query string into its component key and value parts.
/// </summary> /// </summary>
/// <param name="text">The raw query string value, with or without the leading '?'.</param> /// <param name="queryString">The raw query string value, with or without the leading '?'.</param>
/// <returns>A collection of parsed keys and values.</returns> /// <returns>A collection of parsed keys and values.</returns>
public static Dictionary<string, StringValues> ParseQuery(string queryString) public static Dictionary<string, StringValues> ParseQuery(string queryString)
{ {
@ -123,7 +123,7 @@ namespace Microsoft.AspNet.WebUtilities
/// <summary> /// <summary>
/// Parse a query string into its component key and value parts. /// Parse a query string into its component key and value parts.
/// </summary> /// </summary>
/// <param name="text">The raw query string value, with or without the leading '?'.</param> /// <param name="queryString">The raw query string value, with or without the leading '?'.</param>
/// <returns>A collection of parsed keys and values, null if there are no entries.</returns> /// <returns>A collection of parsed keys and values, null if there are no entries.</returns>
public static Dictionary<string, StringValues> ParseNullableQuery(string queryString) public static Dictionary<string, StringValues> ParseNullableQuery(string queryString)
{ {
@ -135,7 +135,7 @@ namespace Microsoft.AspNet.WebUtilities
} }
int scanIndex = 0; int scanIndex = 0;
if (!string.IsNullOrEmpty(queryString) && queryString[0] == '?') if (queryString[0] == '?')
{ {
scanIndex = 1; scanIndex = 1;
} }