SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Perfilador OpenObject
    Analizando el rendimiento de OpenERP




                                      Borja López Soilán
                                      http://www.kami.es
                                      https://twitter.com/NeoPolus




IV Jornadas de OpenERP 2011. Cámara de Comercio de Lugo.
Perfilador


"Un perfilador es un programa que describe el rendimiento
 en tiempo de ejecución de otro programa ofreciendo una
 variedad de estadísticas" - James Roskind, Python Docs
Perfilador OpenObject
Es un módulo más de OpenERP
●   Actualmente disponible en los extra-addons de la
    versión 6.0:
    https://code.launchpad.net/~openerp-commiter/openobject-addons/extra-6.0

Registra la ejecución del Servidor de
OpenObject/OpenERP
Cada vez que el servidor atiende una petición
actualiza un archivo de estadísticas (o imprime
la información en la consola)
Estadísticas
Número de llamadas de servicio (desde un
cliente OpenObject) y tiempo consumido
Métodos ORM invocados desde la capa de
servicio (tiempos, orígenes de las llamadas...)
Información de complejidad para los métodos
de servicio y de ORM (los tiempos según el
número de registros procesados)
Uso de "browse records" en los métodos de
servicio (e información de pérdidas)
Ejemplo
/------------------------------------------------------------------------------
|
| OpenObject Profiler Output
|
|------------------------------------------------------------------------------|
|------------------------------------------------------------------------------|
|
| Service method
| ir.ui.menu.read
|
| Calls   Time        Time per call
| 186     0.6144866 0.0033036
|
|     ORM methods called (by the service method):
|       ir.ui.menu.read
|       186       0.6038930 0.0032467
|           Called from (callers of the ORM method):
|             execute_cr@.../bin/osv/osv.py:167
|             186      0.6038930 0.0032467
|       ir.ui.menu.search
|       141       0.1454751 0.0010317
|           Called from (callers of the ORM method):
|             search@.../bin/addons/base/ir/ir_ui_menu.py:107
|             141      0.1454751 0.0010317
|       res.users.read
|       140       0.1129667 0.0008069
|           Called from (callers of the ORM method):
|             read@.../bin/addons/base/res/res_user.py:267
|             140      0.1129667 0.0008069
|
|     ORM sample call trace (for the service method):
|       0.001493930: ir.ui.menu.search - search@.../base/ir/ir_ui_menu.py:107
|       0.002168893: res.users.read - read@.../base/res/res_user.py:267
|       0.002876043: ir.ui.menu.read - execute_cr@...bin/osv/osv.py:167
|
|     Browse Records (used by the service method):
|       Created       Model
|       1314          ir.ui.menu
|
|     Complexity profile (records/items per service method call):
|       Complex.    Time/item   | Calls       Time        Time/call
|       1           0.003345962 | 70          0.234217405 0.003345962
|       2           0.001361489 | 1           0.002722978 0.002722978
|       3           0.001032924 | 100         0.309877395 0.003098773
|       8           0.000580956 | 9           0.041828870 0.004647652
|       9           0.000478519 | 6           0.025840044 0.004306674
|
|==============================================================================|
|
| Global Browse Records (used by all the service methods)
|
|       Created     Alive       Garbage     Model
|       1314        109         0           ir.ui.menu
|
|==============================================================================|
|
| Global ORM complexity log (records/items per orm method call)
|
|       Complex.    Time/item   | Calls       Time        Time/call
|       res.users.read
|       1           0.000814499 | 190         0.154754877 0.000814499
|       ir.ui.menu.read
|       1           0.003299624 | 70          0.230973720 0.003299624
|       2           0.001343965 | 1           0.002687931 0.002687931
|       3           0.001018521 | 148         0.452223539 0.003055564
|       5           0.000274610 | 2           0.002746105 0.001373052
|       8           0.000576370 | 9           0.041498661 0.004610962
|       9           0.000474298 | 6           0.025612115 0.004268685
|       21          0.001669777 | 3           0.105195999 0.035065333
|       38          0.000126301 | 3           0.014398336 0.004799445
|       77          0.000353303 | 3           0.081613063 0.027204354
|       78          0.000162627 | 3           0.038054943 0.012684981
|       ir.ui.menu.search
|       -           -           | 191         0.204602479 0.001071217
|
------------------------------------------------------------------------------/
Úsese con...
   El perfilador no sustituye al uso de otras
                 herramientas:
Perfiladores de Python
http://docs.python.org/library/profile.html
Análisis de SQL
http://pgfouine.projects.postgresql.org/
Análisis de consultas
http://www.postgresql.org/docs/8.1/static/sql-explain.html

Weitere ähnliche Inhalte

Ähnlich wie Perfilador OpenObject - Analizando el rendimiento de OpenERP

Admin linuxubuntufedora
Admin linuxubuntufedoraAdmin linuxubuntufedora
Admin linuxubuntufedoraJose Torrico
 
Tarea # 02 generalidades de la auditoria de sistemas
Tarea #   02 generalidades de la auditoria de sistemasTarea #   02 generalidades de la auditoria de sistemas
Tarea # 02 generalidades de la auditoria de sistemasBlancaDonis
 
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...SANTIAGO PABLO ALBERTO
 
Administracion de Proyectos de TI - Trabajo Final
Administracion de Proyectos de TI - Trabajo FinalAdministracion de Proyectos de TI - Trabajo Final
Administracion de Proyectos de TI - Trabajo FinalMoises Gonzaga Antonio
 
Metodologia Estructurada - Análisis -
Metodologia Estructurada - Análisis -Metodologia Estructurada - Análisis -
Metodologia Estructurada - Análisis -Susana Daldin
 
Simulación de línea de producción y servicios
Simulación de línea de producción y serviciosSimulación de línea de producción y servicios
Simulación de línea de producción y serviciosGaston Vertiz
 
Manual a.f.i.s.
Manual a.f.i.s.Manual a.f.i.s.
Manual a.f.i.s.Sykrayo
 
Calculo de esfuerzo en puntos de funcion final
Calculo de esfuerzo en puntos de funcion finalCalculo de esfuerzo en puntos de funcion final
Calculo de esfuerzo en puntos de funcion finalOmar Ordoñez
 
Grupo 6 - Control Acceso
Grupo 6 - Control AccesoGrupo 6 - Control Acceso
Grupo 6 - Control AccesoelucelyGC
 
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...Aldo Hernán Zanabria Gálvez
 
rabanal_jl_presentacion.pptx
rabanal_jl_presentacion.pptxrabanal_jl_presentacion.pptx
rabanal_jl_presentacion.pptxRodrigo Velez
 
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computo
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computoDocumento de apoyo no 3 guia aprendizaje limpieza equipos de computo
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computoRommel Charria Vargas
 

Ähnlich wie Perfilador OpenObject - Analizando el rendimiento de OpenERP (20)

La automatizacion
La automatizacionLa automatizacion
La automatizacion
 
Admin linuxubuntufedora
Admin linuxubuntufedoraAdmin linuxubuntufedora
Admin linuxubuntufedora
 
Automatizacion_industrial.pdf
Automatizacion_industrial.pdfAutomatizacion_industrial.pdf
Automatizacion_industrial.pdf
 
Tarea # 02 generalidades de la auditoria de sistemas
Tarea #   02 generalidades de la auditoria de sistemasTarea #   02 generalidades de la auditoria de sistemas
Tarea # 02 generalidades de la auditoria de sistemas
 
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ...
 
Control de la Produccion
Control de la ProduccionControl de la Produccion
Control de la Produccion
 
Administracion de Proyectos de TI - Trabajo Final
Administracion de Proyectos de TI - Trabajo FinalAdministracion de Proyectos de TI - Trabajo Final
Administracion de Proyectos de TI - Trabajo Final
 
Metodologia Estructurada - Análisis -
Metodologia Estructurada - Análisis -Metodologia Estructurada - Análisis -
Metodologia Estructurada - Análisis -
 
Simulación de línea de producción y servicios
Simulación de línea de producción y serviciosSimulación de línea de producción y servicios
Simulación de línea de producción y servicios
 
Oa st
Oa stOa st
Oa st
 
Clase 3 y 4 División del Trabajo
Clase 3 y 4 División del TrabajoClase 3 y 4 División del Trabajo
Clase 3 y 4 División del Trabajo
 
Manual a.f.i.s.
Manual a.f.i.s.Manual a.f.i.s.
Manual a.f.i.s.
 
Calculo de esfuerzo en puntos de funcion final
Calculo de esfuerzo en puntos de funcion finalCalculo de esfuerzo en puntos de funcion final
Calculo de esfuerzo en puntos de funcion final
 
Grupo 6 - Control Acceso
Grupo 6 - Control AccesoGrupo 6 - Control Acceso
Grupo 6 - Control Acceso
 
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...
Grupo6 procedimientosparaelcontroldeaccesoasistemasoperativos-110514061114-ph...
 
Centros de mecanizado c.n.c
Centros de mecanizado c.n.c Centros de mecanizado c.n.c
Centros de mecanizado c.n.c
 
CURSO control de maquinas e instalaciones
CURSO control de maquinas e instalacionesCURSO control de maquinas e instalaciones
CURSO control de maquinas e instalaciones
 
rabanal_jl_presentacion.pptx
rabanal_jl_presentacion.pptxrabanal_jl_presentacion.pptx
rabanal_jl_presentacion.pptx
 
manofactura
 manofactura manofactura
manofactura
 
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computo
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computoDocumento de apoyo no 3 guia aprendizaje limpieza equipos de computo
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computo
 

Kürzlich hochgeladen

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Kürzlich hochgeladen (10)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Perfilador OpenObject - Analizando el rendimiento de OpenERP

  • 1. Perfilador OpenObject Analizando el rendimiento de OpenERP Borja López Soilán http://www.kami.es https://twitter.com/NeoPolus IV Jornadas de OpenERP 2011. Cámara de Comercio de Lugo.
  • 2. Perfilador "Un perfilador es un programa que describe el rendimiento en tiempo de ejecución de otro programa ofreciendo una variedad de estadísticas" - James Roskind, Python Docs
  • 3. Perfilador OpenObject Es un módulo más de OpenERP ● Actualmente disponible en los extra-addons de la versión 6.0: https://code.launchpad.net/~openerp-commiter/openobject-addons/extra-6.0 Registra la ejecución del Servidor de OpenObject/OpenERP Cada vez que el servidor atiende una petición actualiza un archivo de estadísticas (o imprime la información en la consola)
  • 4. Estadísticas Número de llamadas de servicio (desde un cliente OpenObject) y tiempo consumido Métodos ORM invocados desde la capa de servicio (tiempos, orígenes de las llamadas...) Información de complejidad para los métodos de servicio y de ORM (los tiempos según el número de registros procesados) Uso de "browse records" en los métodos de servicio (e información de pérdidas)
  • 6. /------------------------------------------------------------------------------ | | OpenObject Profiler Output | |------------------------------------------------------------------------------| |------------------------------------------------------------------------------| | | Service method | ir.ui.menu.read | | Calls Time Time per call | 186 0.6144866 0.0033036 | | ORM methods called (by the service method): | ir.ui.menu.read | 186 0.6038930 0.0032467 | Called from (callers of the ORM method): | execute_cr@.../bin/osv/osv.py:167 | 186 0.6038930 0.0032467 | ir.ui.menu.search | 141 0.1454751 0.0010317 | Called from (callers of the ORM method): | search@.../bin/addons/base/ir/ir_ui_menu.py:107 | 141 0.1454751 0.0010317 | res.users.read | 140 0.1129667 0.0008069 | Called from (callers of the ORM method): | read@.../bin/addons/base/res/res_user.py:267 | 140 0.1129667 0.0008069 | | ORM sample call trace (for the service method): | 0.001493930: ir.ui.menu.search - search@.../base/ir/ir_ui_menu.py:107 | 0.002168893: res.users.read - read@.../base/res/res_user.py:267 | 0.002876043: ir.ui.menu.read - execute_cr@...bin/osv/osv.py:167 | | Browse Records (used by the service method): | Created Model | 1314 ir.ui.menu |
  • 7. | Complexity profile (records/items per service method call): | Complex. Time/item | Calls Time Time/call | 1 0.003345962 | 70 0.234217405 0.003345962 | 2 0.001361489 | 1 0.002722978 0.002722978 | 3 0.001032924 | 100 0.309877395 0.003098773 | 8 0.000580956 | 9 0.041828870 0.004647652 | 9 0.000478519 | 6 0.025840044 0.004306674 | |==============================================================================| | | Global Browse Records (used by all the service methods) | | Created Alive Garbage Model | 1314 109 0 ir.ui.menu | |==============================================================================| | | Global ORM complexity log (records/items per orm method call) | | Complex. Time/item | Calls Time Time/call | res.users.read | 1 0.000814499 | 190 0.154754877 0.000814499 | ir.ui.menu.read | 1 0.003299624 | 70 0.230973720 0.003299624 | 2 0.001343965 | 1 0.002687931 0.002687931 | 3 0.001018521 | 148 0.452223539 0.003055564 | 5 0.000274610 | 2 0.002746105 0.001373052 | 8 0.000576370 | 9 0.041498661 0.004610962 | 9 0.000474298 | 6 0.025612115 0.004268685 | 21 0.001669777 | 3 0.105195999 0.035065333 | 38 0.000126301 | 3 0.014398336 0.004799445 | 77 0.000353303 | 3 0.081613063 0.027204354 | 78 0.000162627 | 3 0.038054943 0.012684981 | ir.ui.menu.search | - - | 191 0.204602479 0.001071217 | ------------------------------------------------------------------------------/
  • 8. Úsese con... El perfilador no sustituye al uso de otras herramientas: Perfiladores de Python http://docs.python.org/library/profile.html Análisis de SQL http://pgfouine.projects.postgresql.org/ Análisis de consultas http://www.postgresql.org/docs/8.1/static/sql-explain.html