Je voudrais savoir ce qui est plus rapide. Aide moi.Différence entre une variable locale et une variable appelée à partir d'une méthode? C#
J'ai une variable déclarée dans une méthode comme ceci:
public static Regex FindNumber()
{ return new Regex(@"\d+", RegexOptions.IgnoreCase | RegexOptions.Compiled); }
Comme vous pouvez le voir renvoie une expression régulière.
J'ai aussi une autre méthode qui ressemble à ceci:
private static string TestOne(string RawData)
{
Regex rgxFindNumber = FindNumber();
Regex rgxFindDays = FindDays();
for (int i = 0; i < mc.Count; i++)
{
int days = Convert.ToInt32(rgxFindNumber.Match(rgxFindDays.Match(mc[i].Value).Value).Value);
}
return RawData;
}
maintenant est la méthode testone va être plus rapide ou est testtwo?
private static string TestTwo(string RawData)
{
for (int i = 0; i < mc.Count; i++)
{
int days = Convert.ToInt32(FindNumber().Match(FindDays().Match(mc[i].Value).Value).Value);
}
return RawData;
}
maintenant im curieux parce que testone peut obtenir appelé beaucoup aweful dans mon code et je voudrais donc savoir ce qui serait mieux à mettre en œuvre.
Merci les gars.
** Edit: ** Le code que j'utilise a une classe extrêmement grande. C'est un analyseur de texte pour un jeu de stratégie basé sur le texte. J'essaie de refactoriser un peu et c'est ce que je me demande ici. Si je crée une variable privée pour le Regex, ne serait-il pas exécuté chaque fois que la classe est accédée? C'est ma question pour vous.
D'ABORD établir des objectifs de performance significatifs. Deuxièmement, mesurer les progrès par rapport à ces objectifs. TROISIEME, si vous n'avez pas atteint vos objectifs, utilisez un profileur pour trouver la chose la plus lente. QUATRIÈME, corrigez-le. Répétez jusqu'à ce que vous atteigniez votre objectif. Chaque étape est cruciale. La seule façon de répondre à votre question est de la "vérifier" et de mesurer le résultat pour voir s'il est significatif. Personne assis à un bureau lisant votre question ne peut savoir quelle est la différence entre les machines de vos clients ou si cette différence est significative pour vos clients, ou si c'est même là que vous devriez chercher à optimiser. –