कुछ (गति) प्रदर्शन परीक्षण विभिन्न विकल्पों का सारांश देते हैं, ऐसा नहीं है कि यह वास्तव में #microoptimization (एक लाइनपैड विकल्प का उपयोग करके ) मायने रखता है
विकल्प
void Main()
{
object objValue = null;
test(objValue);
string strValue = null;
test(strValue);
}
// Define other methods and classes here
void test(string value) {
new Perf<string> {
{ "coallesce", n => (value ?? string.Empty).ToString() },
{ "nullcheck", n => value == null ? string.Empty : value.ToString() },
{ "str.Format", n => string.Format("{0}", value) },
{ "str.Concat", n => string.Concat(value) },
{ "string +", n => "" + value },
{ "Convert", n => Convert.ToString(value) },
}.Vs();
}
void test(object value) {
new Perf<string> {
{ "coallesce", n => (value ?? string.Empty).ToString() },
{ "nullcheck", n => value == null ? string.Empty : value.ToString() },
{ "str.Format", n => string.Format("{0}", value) },
{ "str.Concat", n => string.Concat(value) },
{ "string +", n => "" + value },
{ "Convert", n => Convert.ToString(value) },
}.Vs();
}
संभवतः यह इंगित करने के लिए महत्वपूर्ण है कि Convert.ToString(...)
एक अशक्त स्ट्रिंग को बनाए रखेगा।
परिणाम
वस्तु
- nullcheck 1.00x 1221 टिके हुए (0.1221 ms) समाप्त हो गए [10K प्रतिनिधि में, 1.221E-05 एमएस प्रति]।
- coallesce 1.14x 1387 टिके हुए (0.1387 एमएस) [10K प्रतिनिधि में, 1.387E-05 एमएस प्रति]।
- स्ट्रिंग + 1.16x 1415 टिके हुए (0.1415 एमएस) [10K प्रतिनिधि में, 1.415E-05 एमएस]]
- str.Concat 1.16x 1420 टिके हुए (0.142 एमएस) [10K प्रतिनिधि में, 1.42E-05 एमएस प्रति]।
- १.५ Convertx १ ९ ३१ टिके हुए बीमित (०.१ ९ ३१ एमएस) में परिवर्तित करें [१० के प्रतिनिधि में १.९ ३१ ई-०५ एमएस]
- str.Format 5.45x 6655 टिके हुए (0.6655 एमएस) [10K प्रतिनिधि में, 6.655E-05 एमएस प्रति]।
तार
- nullcheck 1.00x 1190 टिके हुए (0.119 ms) समाप्त हो गए [10K प्रतिनिधि में, 1.19E-053 प्रति]।
- परिवर्तित करें 1.01x 1200 टिक बीता हुआ (0.12 एमएस) [10K प्रतिनिधि में, 1.2E-05 एमएस प्रति]।
- स्ट्रिंग + १.०४x १२३ ९ टिकियाँ समाप्त (०.१२३ ९ एमएस) [१० के प्रतिनिधि में, १.२३ ९ई-०५१ प्रति टन]
- coallesce 1.20x 1423 टिके हुए (0.1423 एमएस) [10K प्रतिनिधि में, 1.423E-05 एमएस प्रति]।
- str.Concat 4.57x 5444 टिक के साथ (0.5444 एमएस) [10K प्रतिनिधि में, 5.444E-05 एमएस प्रति]।
- str.Format 5.67x 6750 टिके हुए (0.675 एमएस) [10K प्रतिनिधि में, 6.75E-058 प्रति]।