Pregunta

Ahora mismo planeo probar en 32 bits, 64 bits, Windows XP Home, Windows XP Pro, Windows Vista Home Basic, Windows Vista Ultimate, Windows 7 Home Basic, y Windows 7 Ultimate ... todo con elÚltimo paquete de servicio.

Sin embargo, ahora me pregunto si vale la pena probar tanto en AMD como en Intel para todos los escenarios enumerados anteriormente o sería una pérdida de tiempo?

NOTA: Esta es una aplicación de seguridad para los usuarios promedio cotidianos.

¿Fue útil?

Solución

Mi sentimiento es que esto solo valdría la pena si tuviera un montón de lenguaje de montaje codificado a mano en el borde o algún tipo de tiempo increíblemente ajustado (que no se va a encontrar con esa selección de OS de todos modos).

Si está utilizando los compiladores comerciales de la plataforma, puede estar razonablemente seguro que van a generar un código que se ejecuta en todos los procesadores normales.

Por supuesto, nadie podría demostrar que no necesitaban probar en una plataforma en particular, pero pensaría que hay causas más grandes de la diferencia de plataforma para preocuparse que la marca de la CPU (todas las diversas permutaciones multi-núcleo / hiperthreading,por ejemplo, que podría exponer todos sus errores de código multiproceso de diferentes maneras)

Otros consejos

Solo si está programando en conjunto y use los conjuntos de instrucciones específicos de VENDER.Pero como AMD e Intel tienen acuerdos de licencia cruzada en su lugar, esto es más un tema histórico que uno actual.

En cualquier otro caso (por ejemplo, usando un lenguaje de alto nivel) Es el trabajo de los escritores del compilador para garantizar que el código sea compatible con x86 y se ejecute en cada CPU.

Oh, y excepto el Los proveedores de procesadores FDIV, generalmente no hacen errores.

Creo que estás buscando en la dirección equivocada para probar escenarios.

Sí, es posible que su código funcione en Intel pero no en AMD, o en Windows Vista Home, pero no en Windows Vista Professional. Pero a menos que esté haciendo algo muy estrechamente vinculado a la programación de bajo nivel en el primer caso, o a los detalles de la implementación del sistema operativo en el segundo, las probabilidades son pequeñas. Se podría decir que nunca duele probar cada escenario concebible. Pero en la vida real, debe haber algún límite en los recursos disponibles para usted para las pruebas. Las pruebas en diferentes procesadores o diferentes OS son, en la mayoría de los casos, en la mayoría de los casos, no prueban su programa, está probando el compilador, el sistema operativo o el procesador. ¿Cuánto tiempo tienes de sobra para probar el trabajo de otras personas? Creo que su tiempo se gastaría mejor probando más escenarios dentro de su propio código. No le das muchos detalles sobre lo que hace tu aplicación, sino solo para tomar uno de mis propios ejemplos, sería mucho más productivo pasar una prueba de un día. Prueba de productos de venta Nuestra propia compañía realiza productos en comparación con los productos que revendemos de otros fabricantes, o Pruebas de reglas de impuestos de ventas para diferentes estados, o lo que sea.

En la práctica, rara vez incluso pruebe la implementación en Windows frente a la implementación en Linux, no importa las versiones de Windows, y rara vez me quemen.

Si estaba escribiendo controladores de dispositivo de bajo nivel o algunos, que serían una historia diferente. ¿Pero las aplicaciones normales? No pierdas tu tiempo.

Ciertamente, suena como si fuera una pérdida de tiempo para mí, ¿qué idioma (s) están escritos en sus programas?

Yo diría que no.A menos que esté escribiendo su solicitud en el ensamblador, debe estar lo suficientemente lejos del procesador para que no tenga que preocuparse por las diferencias.Los procesadores admitirán el sistema operativo Windows cuyas API son las que está refundiendo (dependiendo del idioma).Si está utilizando .NET, el único problema a la vez que tendrá es que está utilizando una versión del marco que no se admiten esas plataformas.Dado que todos son XP o más tarde deberías estar bien.Si desea preocuparse por algo, asegúrese de que su aplicación juegue muy bien con el modelo Vista y más tarde de seguridad.

La pregunta es probablemente "qué estás probando".Es poco probable que cualquiera de las pruebas esté probando algo que sea potencialmente diferente entre las plataformas de hardware de AMD e Intel.Se podrían esperar diferencias a nivel de conducir, pero parece que no parece que avionera pruebe su software para cada bit de hardware de PC existente disponible.Lo más probable es que haya mucho más diferencias entre los diferentes niveles de paquete de servicio de Windows que entre los procesadores AMD e Intel.

Supongo que es posible que haya alguna funcionalidad en su código que (ya sea que lo sepa o no) aproveche algunos procesos / optimización en uno u otro que podrían tener un efecto serio en el resultado.Palabra clave posible.

Yo diría que en general es poco probable que tenga que preocuparse por ello.Si lo vas a hacer en múltiples máquinas de todos modos, mezclarlas.Pero no me estresaría por eso.

Nunca haría todas mis pruebas de regresión tanto en AMD como en Intel a menos que hubiera arreglado específicamente un problema único a uno de uno.Eso es lo que es la prueba de regresión.

Prueba de la unidad por otro lado ... No anticiparía ninguna diferencia.Así que de nuevo, no molestaría a correr las pruebas de la unidad en ambos hasta que realmente hubiera visto un problema específico para AMD o Intel.

Si confía en resultados de puntos flotantes precisos / consistentes, entonces sí, definitivamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top