Quiero asegurarme de que mi aplicación web sea funcional y no ocasione problemas de rendimiento. Cuando busqué, encontré que uno de los problemas más comunes relacionados con el problema de rendimiento es el problema de "bucles infinitos".¿Cómo detectar y evitar bucles infinitos?
quiero preguntar:
Dónde empezar a comprobar que el código nunca causa bucles infinitos?
¿Hay artículos, consejos, instrucciones, ejemplos? Estaré agradecido.
ejemplo:
mayo de este código provocar un bucle infinito?
public static IEnumerable<SubjectNode> ReadSubjectNodes(string filePath)
{
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
using (XmlReader xrdr = new XmlTextReader(fs))
while (xrdr.Read())
if (xrdr.NodeType == XmlNodeType.Element && xrdr.LocalName == "subject")
yield return new SubjectNode(xrdr.GetAttribute("id"), xrdr.GetAttribute("name"), xrdr.GetAttribute("short"));
}
Gracias de antemano
Quizás ponga un límite superior enorme, es decir, 'int ReadCount = 100000; while (xrdr.Read() && ReadCount--> 0) ' –
Esto probablemente no es lo que está buscando, pero el problema general de averiguar si un programa entra en un ciclo infinito o termina ([" detener el problema "] ] (http://en.wikipedia.org/wiki/Halting_problem)) no tiene solución. – svick
¿Qué está haciendo exactamente el código? ¿Lo va a enviar al usuario o es una ejecución detrás de escena?Si está entregando resultados a un usuario, podría obtener los primeros 10 -> mostrar los resultados -> luego tener una navegación para ir de una página a la otra cada vez, solo iterando los siguientes 10 archivos. –