Perfilador OpenObject - Analizando el rendimiento de OpenERP

Borja López
Borja LópezSoftware Developer, SysAdmin at -
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
1 of 8

Recommended

Automatas_Programables.pdf by
Automatas_Programables.pdfAutomatas_Programables.pdf
Automatas_Programables.pdfLuisDavidCajavilcaCu1
35 views335 slides
Admin linuxubuntufedora by
Admin linuxubuntufedoraAdmin linuxubuntufedora
Admin linuxubuntufedoracarlosrodas
572 views60 slides
MODULO 03 EVALUACION.pdf by
MODULO 03 EVALUACION.pdfMODULO 03 EVALUACION.pdf
MODULO 03 EVALUACION.pdfJUANCARLOSSERNAQUESI1
7 views69 slides
PPT SESION 11.pdf by
PPT SESION 11.pdfPPT SESION 11.pdf
PPT SESION 11.pdfNinaLagos1
17 views53 slides
Fundamentos de programacion by
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionJesus Chaux
585 views41 slides
PLC: Automatización industrial por Roberto Sanchis Llopis, Julio Ariel Romero... by
PLC: Automatización industrial por Roberto Sanchis Llopis, Julio Ariel Romero...PLC: Automatización industrial por Roberto Sanchis Llopis, Julio Ariel Romero...
PLC: Automatización industrial por Roberto Sanchis Llopis, Julio Ariel Romero...SANTIAGO PABLO ALBERTO
207 views258 slides

More Related Content

Similar to Perfilador OpenObject - Analizando el rendimiento de OpenERP

La automatizacion by
La automatizacionLa automatizacion
La automatizacionEdgar Tellez
998 views11 slides
Admin linuxubuntufedora by
Admin linuxubuntufedoraAdmin linuxubuntufedora
Admin linuxubuntufedoraJose Torrico
25 views60 slides
Automatizacion_industrial.pdf by
Automatizacion_industrial.pdfAutomatizacion_industrial.pdf
Automatizacion_industrial.pdfWalterCuellarFierro
5 views258 slides
Tarea # 02 generalidades de la auditoria de sistemas by
Tarea #   02 generalidades de la auditoria de sistemasTarea #   02 generalidades de la auditoria de sistemas
Tarea # 02 generalidades de la auditoria de sistemasBlancaDonis
9 views21 slides
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ... by
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
66 views92 slides
Control de la Produccion by
Control de la ProduccionControl de la Produccion
Control de la ProduccionDaniel Eduardo Vigliero
674 views12 slides

Similar to Perfilador OpenObject - Analizando el rendimiento de OpenERP(20)

Admin linuxubuntufedora by Jose Torrico
Admin linuxubuntufedoraAdmin linuxubuntufedora
Admin linuxubuntufedora
Jose Torrico25 views
Tarea # 02 generalidades de la auditoria de sistemas by BlancaDonis
Tarea #   02 generalidades de la auditoria de sistemasTarea #   02 generalidades de la auditoria de sistemas
Tarea # 02 generalidades de la auditoria de sistemas
BlancaDonis9 views
PLC: Diseño de un sistema de control distribuido usando Factory IO y Codesys ... by SANTIAGO PABLO ALBERTO
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 ...
Metodologia Estructurada - Análisis - by Susana Daldin
Metodologia Estructurada - Análisis -Metodologia Estructurada - Análisis -
Metodologia Estructurada - Análisis -
Susana Daldin11.5K views
Simulación de línea de producción y servicios by Gaston Vertiz
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
Gaston Vertiz1.5K views
Manual a.f.i.s. by Sykrayo
Manual a.f.i.s.Manual a.f.i.s.
Manual a.f.i.s.
Sykrayo4.6K views
Calculo de esfuerzo en puntos de funcion final by Omar Ordoñez
Calculo de esfuerzo en puntos de funcion finalCalculo de esfuerzo en puntos de funcion final
Calculo de esfuerzo en puntos de funcion final
Omar Ordoñez4.5K views
Grupo 6 - Control Acceso by elucelyGC
Grupo 6 - Control AccesoGrupo 6 - Control Acceso
Grupo 6 - Control Acceso
elucelyGC2.6K views
Documento de apoyo no 3 guia aprendizaje limpieza equipos de computo by Rommel Charria Vargas
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

Recently uploaded

Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ... by
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
51 views29 slides
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx by
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxdreadlockp5
8 views9 slides
Los principios de la Antropometria y Ergonomia.pdf by
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdfBenisBorges
6 views11 slides
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador by
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscadorcuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscadorlopezyetsiree
9 views4 slides
Examen Configuracion III.pptx by
Examen Configuracion III.pptxExamen Configuracion III.pptx
Examen Configuracion III.pptxgatb1825
7 views5 slides
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxDilanTabares
6 views10 slides

Recently uploaded(20)

CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx by dreadlockp5
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
dreadlockp58 views
Los principios de la Antropometria y Ergonomia.pdf by BenisBorges
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdf
BenisBorges6 views
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador by lopezyetsiree
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscadorcuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
lopezyetsiree9 views
Examen Configuracion III.pptx by gatb1825
Examen Configuracion III.pptxExamen Configuracion III.pptx
Examen Configuracion III.pptx
gatb18257 views
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares6 views
Tecnologías para la enseñanza virtual by mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem9 views
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf by MELVINCALLO1
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdfSESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf
SESION-4-Confiabilidad y Validez de Instrumentos de investigacion.pdf
MELVINCALLO15 views
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 views
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094797 views
Tarea Curso Tecnologias para la enseñanza virtual.pptx by lesliealejandraContr
Tarea Curso Tecnologias para la enseñanza virtual.pptxTarea Curso Tecnologias para la enseñanza virtual.pptx
Tarea Curso Tecnologias para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual_cdc.pptx by CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by davidsalazar63484
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx by MaraJos722801
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxactividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
MaraJos7228015 views

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