Witam serdecznie.
Zgłębiając tajniki .NET chciałem sobie sprawdzić która metoda konwersji ze string do integer jest szybsza. Int.Parse() czy Convert.ToInt32();
Wyniki jakie otrzymuje za każdym razem różnią się od siebie i zastanawiam się dlaczego. Bardzo proszę o wyjaśnienie.
Kod programu:
using System;
namespace Konsola
{
class Program
{
public static void Main(string[] args)
{
int count = 0;
Random rand = new Random();
string[] str = new string[30000];
foreach (string element in str) {
str[count] = rand.Next(1000,32000).ToString();
count++;
}
Console.WriteLine(obliczaj_Convert(str));
Console.WriteLine(obliczaj_Parse(str));
Console.ReadKey();
}
public static string obliczaj_Convert(string[] str)
{
string strwynik;
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Reset();
watch.Start();
for (int i = 0; i < str.Length; i++) {
Convert.ToInt32(str[i]);
}
watch.Stop();
strwynik = "Convert\nczas wykonania w ms: " + watch.ElapsedMilliseconds + "\n" + "czas w taktach procka: " + watch.ElapsedTicks + "\n";
return strwynik;
}
public static string obliczaj_Parse(string[] str)
{
string strwynik;
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Reset();
watch.Start();
for (int i = 0; i < str.Length; i++) {
Int32.Parse(str[i]);
}
watch.Stop();
strwynik = "Parse\nczas wykonania w ms: " + watch.ElapsedMilliseconds + "\n" + "czas w taktach procka: " + watch.ElapsedTicks + "\n";
return strwynik;
}
}
}