2009-09-04 11 views
7

Me gustaría poder medir las funciones de nuestra aplicación que se están utilizando. Por ejemplo, cuántas ventanas determinadas se abren, se hacen clic en ciertos controles. Me imagino una herramienta que mide esto y envía un informe a un servidor web, que puede procesarlo para crear datos significativos¿Existe una biblioteca C++ o Qt disponible para medir el uso de funciones de una aplicación?

+0

Como dijo SadSido, probablemente no. Hemos buscado, y luego hecho nuestro, que consiste básicamente en un enganche de mensaje de Windows (registrando acciones del usuario como "botón X hecho clic"), declaraciones de registro para características relevantes y un conjunto de scripts de Python para filtrar, formatear y agregar el resultados. – peterchen

Respuesta

6

Primera pregunta: ¿deberías hacerlo? A la gente no le gusta cuando su software llama a su casa sin su consentimiento. Pero asumiendo que están de acuerdo con él, entonces:

Es técnicamente posible, con dos enfoques: automático o manual. Por supuesto, dada su pregunta, supongo que está usando Qt.

automática:

  • dar un nombre propio a toda la QObject que desea rastrear
  • instalar un filtro de eventos en su aplicación a coger toda la ChildEvent acerca de los objetos que se crean y destruyen.
  • del ChildEvent, puede extraer el object's name
  • , entonces ya puede registrar la frecuencia con que se crea ese objeto. También puede utilizar la oportunidad de añadir un detector de eventos para ese objeto específico, para ser notificado cuando se muestra o se oculta o la pista de otro tipo de uso
  • registro de todo a un archivo de registro

Manual:

  • agregue declaraciones de registro a la parte relevante de su código que desea rastrear.

final:

  • enviar el archivo de registro en una base regular
+0

Y no se olvide de vigilar el tamaño de su archivo de registro. Los errores de "falta de espacio en el disco" pueden ser muy molestos. – pmr

+1

Es una herramienta valiosa para las versiones beta públicas, solo para ver la cobertura de funciones que realmente alcanzó. – peterchen

+0

Dudo que esta pregunta sea sobre hacer esto sin el consentimiento del usuario. Después de todo, generalmente hay leyes con respecto a la recopilación y retención de datos y, al menos en Europa, no se puede seguir simplemente rastreando al usuario sin que lo sepan (excepto en las páginas web donde es esencialmente imposible probar que se están rastreando sus interacciones ... hurra) . – Joey

1

supongo, su respuesta es "No". No creo que haya tales bibliotecas.

También creo que la mejor solución aquí es el registro, lo que significa que debe introducir manualmente algunas funciones de registro en las funciones principales de su programa y devolver el archivo de registro. Cuando se trata de registro, puede considerar usar programación orientada a aspectos (y hay son tales herramientas para C++), puede simplificar su tarea ...

Cuestiones relacionadas