Trabaja con Joel

Auditoría de rendimiento de plugins

Para equipos que publican un plugin de la plataforma IntelliJ y reciben quejas de congelamientos, demoras al escribir o CPU alta. Un plugin, alcance y precio fijos, con resultados por escrito y parches.

Para quién es

  • Empresas que publican plugins y cuyas reseñas o canal de soporte mencionan congelamientos, "IDE is not responding", escritura lenta o CPU alta.
  • Empresas con un plugin interno del que se quejan sus desarrolladores.
  • Equipos que preparan una versión para una IDE nueva y quieren medir el costo en el hilo de la interfaz antes de que lo noten los usuarios.

Qué cubre la auditoría

  • Reproducción. Tu plugin corre en una IDE limpia por cada versión que soportas, con la detección de congelamientos en 500 ms y volcados de hilos en cada congelamiento.
  • Mediciones en el hilo de la interfaz. El tiempo que pasa en el hilo de la interfaz al abrir tu página de configuración, al actualizar tus acciones, al abrir tus ventanas de herramientas y al arrancar, medido en frío y en caliente.
  • Revisión del código en busca de patrones de congelamiento. Lecturas bloqueantes en tareas de fondo sin cancelación, acceso a archivos o a la red y procesos lanzados desde el hilo de la interfaz, y esperas a otros hilos mientras se tiene el bloqueo de lectura. Estos patrones están detrás de muchos reportes de congelamiento en el tracker de JetBrains.
  • Tus reportes existentes. Los volcados de hilos o extractos de idea.log que ya te enviaron los usuarios se rastrean hasta el código que los causó.

Qué recibes

  • Un informe escrito: cada hallazgo con su medición o su traza, por qué bloquea y su prioridad.
  • Parches propuestos como pull request o diff, con pruebas cuando el arreglo lo permite.
  • Mediciones de antes y después de cada hallazgo que recibe un parche.
  • Una ronda de preguntas de seguimiento por correo después de la entrega.

Cómo funciona

  • Envías el build del plugin o acceso al repositorio, las versiones de IDE que soportas y los reportes de congelamiento que tengas.
  • En 2 días hábiles recibes el alcance por escrito: plugin, versiones de IDE, fecha de entrega y precio.
  • El 50% se paga al empezar y el 50% en la entrega. La entrega es dentro de 10 días hábiles desde el inicio, o de 15 con alcance ampliado.
  • El trabajo es asíncrono: correo y el pull request. Si prefieres una llamada, también es posible.

Precio

  • USD 10.500, fijo, por un plugin y hasta 3 versiones del IDE, con entrega en 10 días hábiles.
  • USD 15.000, fijo, por un alcance ampliado: más de 3 versiones del IDE, o un plugin con varios subsistemas en segundo plano, servidores de lenguaje o procesos externos. Entrega en 15 días hábiles.
  • Pago por transferencia bancaria internacional en USD, con factura.

Condiciones en breve

  • Los parches son tuyos una vez pagada la factura.
  • Tu código y tus datos son confidenciales. Firmar tu NDA no es problema.
  • La auditoría informa lo que encuentra y no puede prometer que no exista otro congelamiento. La responsabilidad se limita al precio pagado.

Antecedentes

  • Errores de congelamiento en el propio código de IntelliJ, reportados a JetBrains con la causa raíz, una medición y un arreglo propuesto, más 8 pull requests a intellij-community, todos todavía abiertos: ver Tickets de JetBrains Platform.
  • Background ReadAction Freeze Companion, un plugin que marca el patrón de lectura bloqueante en tu propio código.
  • 146 plugins en este catálogo, cada uno comprobado contra las versiones de IDE que soporta antes de publicarse.

Empezar