Saturday, May 30, 2020

Definitivo: Windows 10 es más lento que Windows 7



El sistema operativo de Microsoft ha sido adoptado por unos mil millones de usuarios en el mundo, de acuerdo con este sitio, y aunque tardó dos años más de lo previsto, puede decirse que este es el sistema operativo más usado de todos los tiempos (hasta ahora). Sin embargo, aunque Microsoft puso de forma gratuita la descarga de Windows 10 en el 2015 (para que la gente lo descargara y usara), fue clara la estrategia para ir migrando su propia plataforma al hardware más del momento.

A cinco años de su introducción al mercado, podemos preguntarnos: ¿Es Windows 10 mejor que Windows 7? La respuesta en general es un rotundo sí. Esa más estable, menos pantallas de la muerte, una buena capacidad de recuperación, software más robusto por parte de Microsoft, etcétera. Sin embargo, la segunda pregunta clave es ¿Es más rápido Windows 10 que Windows 7? Pues no, la realidad es que Windows 10 -de acuerdo a mis propias pruebas, es mucho más lento que la versión anterior. La pregunta es ¿cuánto?

Para probar esto, decidí usar un programa escrito en Delphi, que hace una serie de búsquedas regulares en un archivo de datos. Este archivo tiene alrededor de 110 mil líneas y el programa debe buscar si una cadena de símbolos en particular aparece en el archivo de texto mencionado y además, que indique en qué líneas aparece. Lo que hace mi software puede verse aquí.

Busqué en Internet una respuesta a la razón por la cual Windows 10 se observa tan lento. Hay un sinfín de respuestas, pero la realidad es que no sé exactamente qué está pasando. La pregunta sería entonces: ¿Cómo hacer para que Windows 10 corra más rápido?

He aquí los dos videos con las pruebas referidas. Cuando en el video (que no tiene sonido), le pongo la opción de buscar patrón, entonces puse el cornómetro, que me dio los datos mencionados. A ver si alguien tiene alguna explicación al respecto.




La versión corriendo en Windows 10



La versión corriendo en Windows 7



Mi software lo probé en Windows 10 y obtuve un tiempo de proceso (tomado con mi celular), de 81 segundos. Esto significa que mi programa puede revisar 1358 cadenas por segundo. No parece demasiado lento. Sin embargo, corrí en mi máquina con Windows 7 exactamente el mismo programa con los mismos datos. El cálculo del tiempo que tardó fue de 33 segundos. Esto es 3333 cadenas revisadas por segundo. Vamos, Windows 7 es 2/3 veces mas rápido que el flamante Windows 10.

Para ser justos, esta es la comparación del hardware:


Windows 7



Windows 10

En términos del trabajo que estoy haciendo, el programa en Windows 7 puede revisar unas 54 partidas por segundo, mientras que en Windows 10 solamente 22. Demasiada diferencia, ¿No?

1 comment:

ekthor said...

Hola Manuel!

Leía tu columna en "PC Semanal" allá por el boom del W.W.W. entre 93 y 96, tiempos de los BBS, también leía los benchmarks que se hacían en PC Magazine años antes.

*** La conclusión de tu artículo me parece inválida ***

El principio básico de cualquier comparativo debe ser justo, "peras vs peras" NO USASTE EL MISMO HARDWARE, por fortuna señalas las diferencias, en esencia:

W7: 8 x Cores a 4GHz y 4GB RAM
digamos 32Ghz "teóricos", por su parte

W10: 6 x Cores a 3.2GHz, 16GB RAM,
"19.2GHz" idem

Aquí algunas conjeturas para el análisis y "segundo round" que no implica mas que volver a ejecutar tu programa y MEDIR el uso de recursos (CPUs y RAM) con el Task Manager o cualquier herramienta de monitoreo:

1) Si el programa en ejecución usó todos los núcleos del procesador, es evidente que W7 disponía de mayor capacidad de cómputo! Por más de un 60%

2) Dudo que tu programa requiera más de 4GB de RAM, por lo que los 16GB de W10 son probablemente innecesarios e irrelevantes para este benchmark. Recuerdo claramente tus artículos sobre LINUX y el escaso uso de recursos en aquellas épocas.

Lo que hace tu programa en Delphi bien puede implementarse en el viejo Turbo Pascal o Turbo C bajo el extinto MS-DOS o en un programa en C/C++ corriendo algún sabor de Linux, con 1 CPU (1 Core), compiladores de hace más de 25 años, recuerda que usábamos PCs de 640K RAM, de 1GB o 2G de RAM y hacíamos maravillas, aun sin los entornos gráficos. Hacer esta prueba es harina de otro costal.

3) ¿Qué tal si tu programa NO USÓ todos los núcleos del procesador? ¿Cómo sabes cuántos núcleos usó tu programa al ejecutarse en cada OS?
Nuevamente, ahi está el "Task Manager" o bien cualquier otra herramienta para ver el uso de recursos en tiempo real. Quizás que la ejecución de tu programa sólo aprovechó UN CORE o DOS, siendo así, evidentemente 4GHz son mejores que 3.2, claro no en la proporción del resultado.

4) La única prueba válida a mi juicio, sería hacer lo que hacía PC Magazine en un "tercer round": usar exactamente el mismo hardware, la misma PC (o dos idénticas) corriendo el mismo ejecutable, asegurándote de que no hay procesos corriendo en el background o sea los cores sin actividad previa, lo que implicaría respaldar, formatear e instalar el OS + Updates, tarea por demás tediosa y consumidora de tiempo, pero sin duda la única que te permitiría concluir de manera "Definitiva" y publicar entonces sí las diferencias porcentuales.

No hacerlo así hace que este análisis se parezca un poco a las proyecciones matemáticas del Dr. Gatell y su equipo de científicos, que pegó un poco en el prestigio de ese "ejemplo de paraíso: la UNAM", con la diferencia de que aquí no hay variables fuera de control, ni datos inválidos, es un lab a modo.

A priori diría que el resultado del tercer round invalidaría la conclusión de este interesante artículo, creo que la diferencia no será tan grande Manuel. También podrías usar otra APP que sea multi-task para hacer el benchmark, pero usando el mismo hardware y realizando las mismas funciones.

Los nuevos sistemas operativos consumen más recursos y nos obligan a renovar el hardware debido por un lado a una estrategia de "obsolescencia planeada" que conviene a la industria, y por otro lado debido a la exigencia de recursos que las nuevas Apps requieren. El Multi-tasking aprovecha el Multi-core, tu programa en Delphi no creo que lo requiera.

Un saludo,

Héctor Ruiz