9 puntos por kuroneko 2023-09-04 | 2 comentarios | Compartir por WhatsApp
  • A medida que el proyecto se volvió cada vez más complejo, también crecieron mucho los recursos necesarios para las pruebas de rendimiento, por lo que hizo falta un nuevo sistema de pruebas.
  • Querían un sistema de pruebas ideal que ejecutara pruebas para todos los cambios de código, terminara en menos de 10 minutos y permitiera analizar los resultados en detalle.
  • El rendimiento de Figma estaba afectado principalmente por la CPU y la GPU, y tras considerar las ventajas y desventajas de varios enfoques, lo estructuraron en dos grandes sistemas.
  • Sistema basado en la nube
    • Usan VMs con GPU que ejecutan Headless Chromium para correr pruebas en paralelo y así lograr que terminen en menos de 10 minutos.
    • Como las VMs son propensas a verse afectadas por factores externos, dejan un margen de alrededor del 20%.
  • Sistema basado en hardware
    • Programan todas las pruebas para ejecutarse de forma secuencial en un sistema compuesto por laptops antiguas (MacBooks viejas, laptops Windows, Chromebooks, etc.).
    • Las pruebas tardan más, pero permiten rastrear en detalle cambios sutiles de rendimiento que aparecen en dispositivos reales.
  • Después de construir estos dos sistemas de prueba, lograron resultados positivos en sus esfuerzos por mejorar el rendimiento.
  • Mejora del rendimiento de renderizado
    • Trabajaron para mejorar el rendimiento de renderizado en entornos donde la GPU no va acompañada de una CPU moderna.
    • Tras investigar en detalle con pruebas de estrés, descubrieron que algunas funciones estaban generando una gran sobrecarga en cierto hardware.
    • Dividieron el tiempo de renderizado con mayor detalle e implementaron un nuevo algoritmo que prioriza el trabajo local, mejorando de forma efectiva el rendimiento en hardware antiguo.
  • Mejora del rendimiento de FigJam
    • Escribir las pruebas fue difícil, pero pasaron de corregir problemas a partir de consultas de clientes o métricas existentes a poder detectarlos y resolverlos con anticipación mediante pruebas.
    • También pudieron descubrir y corregir problemas difíciles de detectar, como diferencias sutiles de rendimiento en CSS, repitiendo las pruebas decenas de veces.
    • En particular, fue útil poder rastrear con precisión qué cambios de código provocaban una degradación del rendimiento.
  • La mejora del rendimiento es un área complicada, pero como muchas veces lo que uno imagina no coincide con la realidad, las pruebas y la medición del rendimiento son muy importantes.

2 comentarios

 
kuroneko 2023-09-04

Está bien que hayan mejorado el rendimiento con pruebas, pero... igual Figma sigue pareciéndome terriblemente lento.
En los comentarios de HN también hay bastantes quejas de que es increíblemente lento. -_-

Sobre todo siento que se volvió muchísimo más lento desde que Adobe lo adquirió (antes era más rápido de lo que uno esperaría...)
¿Será solo una idea mía?

 
kuroneko 2023-09-04

Resumen con IA del hilo de HN

  • skhameneh: Elogia a Evan Wallace, ex CTO de Figma, por su trabajo pionero con WebAssembly y por compartir su proceso de exploración en GitHub.
  • imslavko: Comparte publicaciones anteriores del blog de Evan y Jamie que detallan la transición de Figma a WebAssembly, las pruebas de rendimiento y las mejoras a lo largo del tiempo.
  • fhub: Menciona que Evan Wallace cofundó Figma en 2012 y se desempeñó como CTO durante 10 años antes de irse en 2021.
  • antoineMoPa: Expresa sorpresa de que Figma haya logrado tanto éxito comercial como excelencia técnica, asumiendo que las empresas deben ceder en esta última.
  • tobyjsullivan: Explica que Figma es una excepción, mientras que la mayoría de las startups priorizan las funciones sobre la calidad, y solo unas pocas logran innovar en nuevas tecnologías lo suficiente como para comercializarlas.
  • tmpz22: Critica las expectativas estrechas sobre el software basadas en productos recientes, y sostiene que el estándar actual debería ser pasar integración continua.
  • yellow_lead: Se pregunta cómo manejan otros un entorno de pruebas de rendimiento con mucho ruido, considerando el margen de error del 20% de Figma.
  • imslavko: Explica en detalle el sistema de pruebas basado en hardware secundario de Figma y cómo calculan la línea base para abordar la variación en las máquinas virtuales.
  • koenbok: Comparte que Framer enfrentó una variación del 15% incluso con una Mac Mini dedicada para pruebas, y que finalmente descubrieron que el monitoreo de usuarios reales es lo más confiable.
  • chrisdbanks: Reporta problemas de tiempo de carga en Europa e imágenes que no cargan con rapidez, y cuestiona si Figma prueba adecuadamente fuera de Estados Unidos.