Julio Merino es un ingeniero software nacido en Barcelona que actualmente vive en Seattle. Hace unos días decidió hacer un experimento. Rescató un viejo PC del año 2000 con un Pentium a 600 MHz, 128 MB de RAM y un disco duro tradicional. Al encenderlo comprobó algo asombroso: las aplicaciones de Windows NT 3.51 (recién instalado) se abrían de forma instantánea.
Este usuario no se conformó con eso y quiso repetir la prueba, pero con un sistema operativo algo más moderno. Instaló Windows 2000 en la misma máquina, y al hacer las mismas pruebas y abrir aplicaciones comprobó cómo todas ellas se abrían en un instante. Los tiempos de respuesta eran casi inexistentes, y la sensación era la de que todo se ejecutaba con una velocidad extraordinaria. Explicó esto —y mucho más— tanto en Twitter como en un largo post en su blog.
Luego hizo la misma prueba con un Suface Go 2 mucho más reciente y basado en un Core i5 a 2,4 GHz, 8 GB de RAM y una unidad SSD. Siguió la misma secuencia de apertura de aplicaciones con una instalación limpia de Windows 11 y comprobó como los tiempos de apertura eran mucho más lentos. ¿Qué estaba pasando?
Uno podría decir que ese Surface Go 2, aun siendo mucho más moderno que aquel PC de 1999-2000, no tenía unas especificaciones realmente altas para ejecutar un sistema operativo exigente como Windows 11. Merino lo tuvo en cuenta y quiso realizar esta prueba, pero hacerlo en un Mac Pro con un procesador de seis núcleos a 3,5 GHz y con 32 GB de RAM. No deja claro si ejecutó Windows con Bootcamp o con virtualización, pero en cualquier caso el vídeo mostrado era llamativo en cuanto a esos tiempos de apertura.
Como él mismo explicaba, incluso con las aplicaciones en caché, renderizarlas parecía llevar mucho trabajo, e iban apareciendo "a cachos". Como él destacaba, "no es por las animaciones o por un hardware mediocre".
Tampoco tenía que ver con el hecho de trabajar en resolución 4K, y aun desactivando las animaciones se notaba que una máquina y un sistema operativo modernos iban aparentemente más lentos que una máquina y un SO de hace más de 20 años.
La pregunta, claro, es inevitable. ¿Qué está pasando?
Los PCs y SSOO de hace 20 años no eran mejores (salvo en algunas cosas)
El propio usuario comentaba en un hilo en Hacker News cómo su intención no era transmitir un mensaje del tipo "las máquinas y SSOO de hace 20 años eran mucho mejores" porque como él decía, eso no era cierto. De hecho, explicaba, "apestaban en muchos aspectos".
Las cosas han mejorado en muchísimos apartados, y tenemos ordenadores y software que hacen cosas impensables hace 20 años tanto en el desarrollo y ejecución de aplicaciones como en herramientas profesionales, juego o contenidos de vídeo y audio.
Los avances han sido espectaculares, pero no todo parece ser mejor: las modernas interfaces de usuario se han vuelto algo más lentas (pero también más elegantes, personalizables y espectaculares), e incluso en PCs y portátiles de última generación uno puede notar cómo lanzar una aplicación puede llevar más tiempo del esperado.
Abstracción (y muchas cosas más), culpables
Hay varias razones por las que ocurre algo así, y una de ellas es ciertamente cómo la propia evolución del software y el hardware se ha complicado. Nuestras máquinas y nuestro software hace más cosas, pero para hacerlas bien necesita resolver muchos problemas y lograr que los componentes hardware y software se comuniquen ("se hablen") de forma adecuada.
Que un usuario quiera abrir una ventana del explorador de archivos, aun pareciendo trivial, requiere que el sistema operativo se hable con el hardware para que tanto el subsistema de entrada salida como el subsistema gráfico (entre otros) logren mostrar las carpetas y archivos y lo hagan a través de una ventana "dibujada" o renderizada por el hardware del chip gráfico.
Esa comunicación entre el hardware y el software se realiza con las llamadas capas de abstracción de hardware (HAL, por Hardware Abstraction Layer). Las aplicaciones no acceden directamente al hardware y sus recursos, sino que lo hacen a una capa abstracta proporcionada por esa tecnología. Eso permite que las aplicaciones sean independientes del hardware y no tengan que preocuparse por detalles
Pero es que a las capas de abstracción se le suman otros muchos componentes (y problemas) generados por la estructura de los sistemas operativos modernos. Puede que los procesos no se hayan programado de forma asíncrona, que no haya suficientemente palarelismo, o que los sistemas de paso de mensajes y sincronización (quienes hayan estudiado este ámbito seguramente que recuerdan los mutex) no estén del todo afinados.
Por si fuera poco, en los sistemas operativos modernos hay un montón de servicios y de software que funcionan en segundo plano y que quizás no serían necesarios en muchos escenarios. No ya procesos de sistema, sino procesos de aplicaciones que vamos instalando y que "piden sitio" para ejecutarse desde que arrancamos el PC.
De hecho, hasta Steven Sinofsky, que fue responsable del desarrollo de Windows 7 y también de Windows 8, respondió con un comentario también interesante: los sistemas operativos modernos integran un navegador web, que es algo así como un sistema operativo en sí mismo.
El problema de la ralentización de Windows (y otros sistemas operativos) es de sobra conocido. De hecho este comportamiento confirma la conocida ley de Wirth, que nos dice que "el software se ralentiza más deprisa de lo que se acelera el hardware". Hace unos años los expertos de NTDotDev realizaron un análisis detallado de cómo el rendimiento de Windows 10 había ido empeorando con el paso del tiempo.

Las sucesivas versiones de Windows 10 —con sus grandes actualizaciones incluidas— llegaban con mejoras interesanes, pero también con problemas añadidos. La degradación del rendimiento en ciertos apartados era una de ellas, y componentes como UWP o el soporte de las aplicaciones Win32 (las "antiguas") perjudicaban la experiencia de usuario general.
Este tipo de análisis también aparecían en casos peculiares. Bruce Dawson, empleado de Google, contaba hace unos meses su particular "pelea" con la grabadora de voz de Windows, que tardaba demasiado en abrirse y que funcionaba casi "a pedales".
Dawson, experto en el perfilado de procesos con herramientas como ETW (Event Tracing for Windows) acabó analizando la traza de ejecución y comprobando cómo varios procesos —y en especial uno clave, el llamado RuntimeBroker— alargaban su ejecución de forma inexplicable. Una desarrolladora llamada Katelyn Gadd le contestaba en Twitter indicando posibles razones y dando una opinión en la que muchos probablemente pensamos: "alguien fue probablemente perezoso".
¿Se han vuelto los programadores perezosos? Es también una vieja pregunta que hace referencia a cómo han cambiado los tiempos en materia de hardware. Antes los desarrolladores se las ingeniaban para crear aplicaciones y juegos prodigiosos con recursos ínfimos. Cuenta la leyenda que en 1981 Bill Gates pronunció aquella famosa frase de que "640K deberían ser suficientes para cualquiera".
Gates negó haber dicho algo así, pero lo cierto es que la sensación para muchos parece ser esa: la de que los programadores "de antes" aprovechaban mejor los recursos. Como ahora tenemos acceso a máquinas exponencialmente más potentes y con más recursos, "no hace falta esforzarse tanto" a la hora de crear programas eficientes porque el hardware ya compensa que el código pueda ser algo "perezoso".
¿Es eso cierto? En ciertos casos, desde luego. Lo hemos visto con el framework Electron, que se ha usado mucho para encapsular aplicaciones web y presentarlas como aplicaciones nativas de Windows. Eso ahorraba mucho tiempo y esfuerzo a las empresas desarrolladoras de software, pero ha quedado demostrado que desarrollar aplicaciones "nativas" hace que la experiencia de usuario y el consumo de recursos mejore de forma notable.
Así pues, puede que haya desarrollos perezosos, pero no lo serán ni mucho menos todos. Como veníamos comentando, en realidad la degradación del rendimiento es culpa de la propia evolución de la informática: nuestros sistemas operativos, nuestro hardware y nuestro software hacen todo lo que hacían antes y muchísimo más, pero para lograrlo es necesario contar con un buen montón de componentes —algunos más pulidos que otros— que antes no teníamos.
Imagen | Julio Merino
En Xataka | Recuperar la velocidad de un ordenador lento: 15 formas de acelerar el PC
Ver 35 comentarios
35 comentarios
Eagle
Ya lo habéis indicado en el artículo: dos causas fundamentales.
1. El software es ahora muchísimo más complejo que antes, que era de opciones básicas.
2. Aquí ya nadie optimiza nada. Prevalecen tiempos de desarrollo sobre optimización desde hace muchísimos años.
davidgl1
Será muy largo el "artículo". Pero NI DE COÑA!
Podría haber colado con lo de NT 3.5. Pero con 2000?
Que me arranque un 2000 sin que se cuelgue en menos de 5 minutos.
NT35 tardaba media vida en arrancar.
POR FAVOR DEJAD DE DECIR CHORRADAS Y DE DAR PLAYS A GENTE QUE ESTÁ ESTAFANDO/MINTIENDO 🖕.
Has arrancado un IDE, un DAW un PaintShop Pro?
Aleeee.
De donde sacáis esas CHORRADAS qu?e os la cuelan total!
No habéis vivido esos sistemas. Os la han colado
Kiskillas
A mí alguien todavía me tiene que explicar cómo es que una actualización de Windows de unos pocos MB tarda muchos minutos en actualizarse.
Si, tiene que descomprimir blablabla. Hay M2 que van a más de 5.000MB reales y procesadores ultrapotentes, pero da igual, porque miras el administrador del sistema y el procesador está al 1% y el disco al 0%…
Instalar drivers de Nvidia, por ejemplo. Archivos de 600MB tarda más e 5 minutos en instalarse. De nuevo, el ordenador dormido.
Da igual el ordenador que tengas. Y esto se aplica a… todo.
mad_max
El problema son las aplicaciones basadas en tecnologías como electrón. Cierto que dan a los desarrolladores muchas facilidades y muchas opciones de personalización que no hay si programas nativamente para la plataforma. Pero también tiene un efecto sobre el rendimiento muy grande y aplicaciones que, por funcionalidad, deberían ser ligeras, son muy pesadas.
Y no hablamos de software como photoshop, que todos entendemos que tiene una gran cantidad de módulos que cargar y va a tardar en abrirse por mucho que se optimice. Pero hay sofware para funciones sencillas: Leer correo, reproducir música, escribir notas, etc... que tarda una barbaridad en abrirse cuando software que hacia exactamente lo mismo hace décadas se abría mas rápido.
t_r_a
y eso que ahora vamos con ssd con un rendimiento parecido a la memoria RAM, el problema es que ahora programan mediocres que compensan su pésima programación con la potencia de la máquina, antes se programaba para obtener rendimiento, ahora para ahorra costes
darkoyan
si, se han vuelto perezosos, no los programadores en si; sino el ritmo absolutamente frénetico de entrega de versiones de software que a toda costa deben ser entregadas no importa si la optimizacion es una chapuza, mientras funcione sirve.
ademas de añadir que a dia de hoy cualquier software (sea para PC, sea para telefonos moviles) debe recopilar todo tipo de informacion independientemente de si el usuario autoriza o no, y eso no solo consume una ingente cantidad injustificada de capacidad de procesos del terminal cliente sino ademas una cantidad actividad de red totalmente injustificada
gel0n
El tiempo de ejecución de Powershell o CMD es completamente estúpido en Windows 10 u 11. Aún si los purgas con ngen todavía es tolerable, pese a seguir siendo mucho más lento que en Windows 7 o XP, pero sin esa optimización te puedes morir esperando un miserable terminal.
Es lo que tiene iterar sobre el mismo kernel durante décadas. Que se lo digan a Symbian.
carlosyagami
Es pura falta de optimización, Blender por ejemplo me abre en menos de 10 segundos en comparación 3ds Max demora 5 minutos
sanamarcar
Normalmente ocurren varias cosas que revientan un SO:
- La compatibilidad
- Las capas de abstracción
- La telemetría
- La publicidad
- Usar el propio sistema operativo como bastión a otras técnologias qe no quierws usar
- Hacer un SO total no personalizado
Etc
jubete
No es el SO, dejar de culpar a Windows. Es que antes las cosas se hacían en C o C++ y ahora se hacen en TypeScript, Python... en cosas que hacen que hasta Java parezca rápido de cojines. Y, aunque eso se nota en los servidores, lo que se hace en Java se hace con Spring...
El objetivo es que el desarrollo termine rápido en vez de hacer que termine bien, es lo que hay.
https://tonsky.me/blog/disenchantment/
moreorless
1. como no va estar mas lento si tiene que tener retrocompatibilidad hasta con el primer windows (exagero un poco pero me entendeis)
2. el registro.
3. windows 11 con configuracion y panel de control. quien entiende?
y muchas cosas mas.
yo lo he dicho. microsoft tiene que hacer dos windows. uno con toda la basura antes mencionada para la gente que no quiere evolucionar o quiere jugar digdug y buscaminas y otro windows totalmente nuevo sin retrocompatibilidad de NADA pero que vuele.
Usuario desactivado
Humm... No lo creo. Uso Windows desde Windows 2 y procesadores de texto y entornos de programación demoraban entre 20 y 60 segundos en abrir.Y si además tenias un antivirus como Avast, o el lentísimo Panda, hasta 2 o 3 minutos. Hoy uso un I3 con 8GB de RAM y doble boot. Cuando uso Ubuntu, abrir KiCad 7 demora menos de 10 segundos. Cuando arranco en Windows 11, demora 20 o 30 segundos.
cacatuaromantica
Pues ya sabeis al que no le gusta que se ponga 3.5 y todas las demas cosas que hay en lo nuevo no la usareis, easy.
JuanAnt
El año pasado aluciné con un PC antiguo de la empresa de mi padre, por la velocidad a la que se abría Word 95 en un Pentium 2 a 166Mhz con W95, y de lo rápido que navegaba por las ventanas del explorador de Windows. TODO iba súper fluido, inmediato, y eso que en mi día a día uso un i9 12900K con 128Gb de RAM a 4800MHz, m2 de 3700Mb/s y una RTX 3080Ti...
Desde luego algo no se está haciendo bien; tengo programa profesionales que tardan más en abrirse ahora que hace 25 años, y no es una medición subjetiva.
No estaría mal que cuando instalas un programa, se instale TODO en una sola carpeta y no se toque el registro de Windows, por ejemplo; al abrir ese programa, que haga lo que tenga que hacer, no antes, así nos ahorraríamos muchos problemas.
También si cargasen ciertas características cuando se necesitan y no todas de golpe al abrir el programa, todo iría más fluido y no necesitarían tanta RAM.
Saludos.
miutopia
Tengo un obsoleto netbook con Antix y abre más rápido que mi complejo y moderno ordenador de trabajo.
secoinsa
El principal problema se llama "nework", cualquier aplicación se empeña en el momento de abrirse preguntar a medio mundo si esta licenciada y actualizada y eso ralentiza las aplicaciones al infinito, es penoso.
¿Que es asumible, que tarde unos pocos segundos?, es como si un ABS tardase en ocasiones 10seg en actuar y en otras milisegundos.
No es admisible, con la potencia actual las aplicaciones se deberian abrir de forma instantanea y relegar a prioridad 0 el resto de apps.
polloex
Una surface go 2 con un I5? Tengo una y solo se podía elegir entre un Intel pentium y un M3
VolcoV
El cuello de botella sigue siendo el mismo de siempre. El almacenamiento secundario.
Desde el año 2000 ha ido empeorando hasta la llegada de los NVMe M.2 (con cargas superiores a 3000mb por segundo).
Diría que estos SSD solucionan ese problema que había (por ahora).
Las aplicaciones actuales son más pesadas y requieren cargar gigas en memoria mientras que hace décadas eran menos de 100 megas (el límite aproximado de lo que puede cargar un disco duro en un segundo).
Esto hace muy evidente que elegir mal el almacenamiento puede ser una diferencia de 1:30 al encender el sistema operativo o abrir aplicaciones.
Chizko
1. Software legado que hace lastre para su compatibilidad.
2. Poca o nula optimización para usar más de 2 cores y 4 thread.
3 Sistema de archivos en caos total o redundante que hace todo con 2 pasos de más.
llobaca
Esto es fácil, nunca un fanático de Apple o Android debería opinar sobre Windows. Sus prejuicios les nublan la mente.