P: ¡Creo que B1UP esta lento! ¿Están utilizando un pobre código limitado que lo este causando?
R: Claro que no. Uno de nuestras metas más importantes es el rendimiento en el producto y un gran número de horas están destinadas a esta tarea cada mes. Habiendo dicho esto, la naturaleza tan dinámica de B1UP tendrá un impacto en el rendimiento y no será posible ser tan efectivo con algún add-on más específico. Además, no puede ser más rápido ya que se está utilizando el SDK de SAP (p.e. no importa que tan pequeño queremos que sea, siempre necesitaremos una conexión DI-API y ésta es 100% controlada por la capa de lectura y toma 3-6 segundos esta tarea que no podemos optimizar).
P: ¿Esto implica que B1UP jamás será más rápido?
R: No, siempre encontramos maneras de hacerlo más veloz, utilizando cache y claro que de vez en cuando cometemos algún pequeño error en cuanto a rendimiento que necesita ser arreglado. También con las nuevas versiones de SAP y su SDK, se liberan nuevas maneras de mejorar el rendimiento. Por esa razón, el tener la versión más reciente de B1UP y SAP normalmente tiende a tener el mejor rendimiento que podemos ofrecer.
P: Acerca del hardware, ¿alguna recomendación?
R: Ya que B1UP es una herramienta del cliente de SAP y almacena en el caché la mayoría de su información, el hardware más importante es el de los equipos de los clientes y menos en el servidor. Durante el arranque del producto se solicita la información de las configuraciones de B1UP al servidor y la red es lo más importante, pero en el día a día la mayor parte del trabajo reside en la memoria de los equipos de los clientes y CPU (puede existir comunicación con el servidor pero sería mínima). Además, denido a la naturaleza de cómo funcionan los Add-ons de SAP en general, son dos procesos separados al ejecutarse que requiere el estar intercalando en la memoria (si cuenta con un equipo que solo tiene un núcleo el CPU necesita constantemente cargar/descargar los dos).
P: Cuando B1UP inicia toma mucho tiempo antes de que esté listo para utilizarse.
R: Antes de que hablemos del rendimiento, veamos los pasos que se ejecutan durante el inicio del add-on. El inicio incluye:
- Conexión al UI-API.
- Creación de los objetos del menú.
- Conexión al DI-API.
- Revisa que todas las tablas definidas de usuario y campos se encuentran ahi.
- Carga toda la información de las configuraciones.
- Aplica las configuraciones que deben ejecutarse durante el arranque (p.e. tipos de cambio, B1 Search y Añadir y editar menús).
- Validación de licencia.
Veamos cada uno de estos pasos:
- Este paso solo toma unos milisegundos.
- Después de un segundo realiza este paso. Actualmente estamos buscando alternativas de poder realizarlo más rápido.
- Este paso toma cerca del 33% del tiempo de conexión y es una llamada directa al DI-API asi que solamente SAP puede optimizar este proceso. Este proceso es lento sobre todo si utiliza conexiones VPN.
- Este paso esta realmente optimizado para B1UP y solamente tomará algo de tiempo la primera vez que se ejecute B1UP en el equipo.
- Este proceso toma cerca del 33% del tiempo de conexión. Constantemente nos lo encontramos optimizando para obtener la información de una manera más rápida. Mientras más módulos y configuraciones tenga, mayor será el tiempo para obtener la información; asegúrese que no cuenta con módulos o configuraciones innecesarias.
- Los tipos de cambio y Añadir y editar menús son los módulos que toman más tiempo. El TC fué optimizado desde la versión 4.x para revisar si efectivamente es necesario ejecutarlo y actualmente nos encontramos buscando maneras de mejorar las configuraciones que tienen muchos objetos del menú para el módulo de Añadir y Editar menús.
- Este proceso ocurre después del arranque y no afecta el tiempo de inicio.
P: He aplicado muchos cambios en las ventanas de SAP utilizando la Herramienta de inserción de campos y/o el Creador de Contenido y ahora la ventana abre lentamente. ¿Qué puede estar mal?
R: Este es uno de los cuellos de botella conocidos en el rendimiento en el SDK de SAP. Cambiar la ventana o formulario existente no es algo que se realice una sola vez. Cada vez que se abre la ventana los cambios son aplicados antes de mostrarse y mientras más cambios tenga más tiempo tomará en aplicarlos. Como este fué un problema importante para los clientes, a partir de B1UP 4.x se introdujo algo llamado modo-XML que agrega la información a la pantalla como una tarea masiva en vez de un cambio a la vez y esto redujo el tiempo significativamente, así que si se encuentra utilizando SAP 8.8 o superior se le recomienda utilizar versiones superiores a la 4.x y utilizar el modo XML. También lea acerca de las búsquedas formateadas más adelante.
P: ¿Qué otras cosas pueden afectar el rendimiento?
R: Hemos identificado lo siguiente:
- La primera cosa que hemos identificado que alenta a los add-ons es el usar demasiadas búsquedas formateadas... Abrir una ventana con muchas de ellas y un add-on es desafortunadamente una mala combinación e internamente tratamos de mantenerlas al mínimo (en una base de datos de prueba puede intentar removerlas para ver la diferencia). el problema es que las búsquedas formateadas utilizan muchos eventos de validación (por ejemplo al abandonar los campos) y en la mayoría de los casos las personas crean configuraciones de B1 Validación que utilizan este tipo de eventos. Si abre una ventana que no cuenta con b1UP o Búsquedas Formateadas fácilmente tendrá 11 eventos en una ventana. Sin embargo, si aplica un gran número de búsquedas formateadas en una ventana, podrá ver que se generan muchos eventos de validación (¡hasta 300 de ellos!). Dado que la configuración del Sistema B1 de validación no nos dice la diferente entre la búsqueda formateada y el evento al ejecutarse, no tenemos opción de probar el evento que este causando mucho tiempo de procesamiento. Muchos de nuestros Partners han reducido el tiempo de carga de las ventanas eliminando las búsquedas formateadas y reemplazándolas con varias técnicas de B1UP logrando el mismo resultado.
P: ¿Cómo puedo probar que B1UP es el problema?
R: Esta no es una tarea sencilla pero puede probar lo siguiente:
- Trate de detener B1UP y probar el rendimiento. En ese caso se experimenta que el 99% de las veces el tiempo es mejor (mientras más configuraciones menor será el rendimiento) pero si no tiene mejor rendimiento entonces B1UP no es el problema.
- Trate de detener cada uno de los módulos de B1UP a la vez para ver cuál es el que esta causando el problema de rendimiento.
- En una base de datos de prueba, intente remover todas las Búsquedas Formateadas de su ventana para ver si existe alguna diferencia.
- Realice una prueba en el servidor, de esta manera eliminará de la lista un posible problema de red.
- Monitoree el servidor SQL para ver si ahí se encuentra el cuello de botella (mucha espera del SQL).
- Monitoree la memoria/CPU del cliente para ver si el cuello de botella se encuentra ahí (Picos en uso de CPU / toda la memoria esta siendo utilizada).
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.