2009-09-01 13 views
6

Como práctica recomendada, ¿ejecuta análisis de código tanto en compilaciones de depuración como de versión, o solo una o la otra?Análisis de código estático: ¿se integra en versiones de depuración y liberación, o solo una o la otra?

+0

¿Qué quiere decir con versiones de depuración y liberación? El código debe ser el mismo ... –

+0

En .Net, si usa la salida Condicional extensamente, podría estar produciendo compilaciones ligeramente diferentes. –

Respuesta

1

Normalmente elije una y esa es la versión de lanzamiento. Supongo que en realidad no importa, pero tiendo a pensar que cuando reúna información sobre lo que se ejecutará en producción, es mejor probar exactamente lo que irá a producción (esto se aplica para análisis, creación de perfiles, evaluación comparativa, etc.).

+0

Entonces, en la configuración de compilación de su proyecto, ¿define CODE_ANALYSIS en la versión de lanzamiento? ¿Eso cambia significativamente la producción de la versión de lanzamiento o afecta el rendimiento? – slolife

1

El Análisis de código estático mostrará los mismos resultados, independientemente de su tipo de compilación.

Depurar/liberar solo cambia el ensamblaje resultante y la inclusión o exclusión de la información de depuración en el tiempo de ejecución.

+0

a la derecha. y supongo que no te interesaría el análisis del código de depuración solo. tiene sentido. –

+0

Esto no es completamente cierto, el compilador no optimizará una compilación de depuración y puede emitir IL que no estará en una compilación de versión optimizada. –

+0

@Andrew - Es cierto, supongo que dependiendo de cómo/dónde en el proceso la herramienta evalúa podría haber algunas optimizaciones en línea y otras que funcionan para lanzar solo compilaciones. –

2

Si por alguna razón las dos versiones son diferentes (y realmente no deberían ser para análisis estáticos), debe asegurarse de que sus métricas se ejecuten en contra de lo que realmente está saliendo a producción.

Idealmente, usted debe tener un servidor de CI, y los comandos que se ejecutan los desarrolladores para iniciar dicho análisis no son diferentes de lo que hace el servidor CI.

+0

Sí. La idea es integrar el análisis de código en el entorno de CI. –

0

La gente llvm recomiendan realmente el análisis de la configuraion DEBUG:

analizar SIEMPRE un proyecto en su configuración "depuración"

mayoría de los proyectos se pueden construir en un modo de "depuración" que permite a las afirmaciones . Las afirmaciones son recogidas por el analizador estático para podar las rutas no factibles , lo que en algunos casos puede reducir en gran medida el número de positivos falsos (informes de errores falsos) emitidos por la herramienta.

Además, las compilaciones de depuración tienden a ser más rápidas (sin necesidad de optimización), y en el mundo de IC más rápido siempre es mejor (todo lo demás es igual).

Cuestiones relacionadas