[ NemesisRD 1.x ] NemesisRD.tools 1.11.4 - Incorpora el valor acumulado de cada contador

3 views
Skip to first unread message

Cisco

unread,
Apr 22, 2010, 8:34:34 AM4/22/10
to NemesisRD 1.x
Incorpora la capacidad para acumular los contadores a lo largo de la
ejecución del proceso.

Cada contador tendrá asociados dos valores, el valor "inmediato" que
será puesto a cero cada vez que los contadores se graben y contador
"acumulado" que irá incrementándose mientras el proceso se mantenga en
ejecución.

El método tools::Counter::getAccumulatedValue devolverá este nuevo
dato, también aparece automáticamente al invocar al método
tools::CounterManager::asXML.

./hdrs | Locally Modified | 1.8
./tools.Counter.cc | Locally Modified | 1.8
./tools.CounterScope.cc | Locally Modified | 1.9
./hdrs/nemesis.tools.Counter.h | Locally Modified | 1.8
./internal.db/tools.sccs.cc | Locally Modified | 1.23
./what_news/1.11.4.version | Locally Added | New file!

--
Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a nemesi...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.

Eduardo Ramos Testillano

unread,
Apr 22, 2010, 8:38:01 AM4/22/10
to nemesi...@googlegroups.com
gracias,

Otra cosa, en nuestra libManagement.b del hte, teniamos tambien metodos de reseteo de dicha acumulacion:
int resetCounters(const int & scopeId = 0) throw();   (la ausencia de scopeId, resetea para todos los ambitos).

De esta forma, sin rearrancar el proceso, se pueden resetear (yo lo hago mediante comandoEG) para volver a tomar datos de una supuesta prueba de carga.


Un saludo



El 22/04/2010 14:34, Cisco escribió:
Incorpora la capacidad para acumular los contadores a lo largo de la
ejecución del proceso.

Cada contador tendrá asociados dos valores, el valor "inmediato" que
será puesto a cero cada vez que los contadores se graben y contador
"acumulado" que irá incrementándose mientras el proceso se mantenga en
ejecución.

El método tools::Counter::getAccumulatedValue devolverá este nuevo
dato, también aparece automáticamente al invocar al método
tools::CounterManager::asXML.

./hdrs |  Locally Modified | 1.8
./tools.Counter.cc |  Locally Modified | 1.8
./tools.CounterScope.cc |  Locally Modified | 1.9
./hdrs/nemesis.tools.Counter.h |  Locally Modified | 1.8
./internal.db/tools.sccs.cc |  Locally Modified | 1.23
./what_news/1.11.4.version |  Locally Added | New file!

  

--
firma.jpg

Cisco

unread,
Apr 22, 2010, 8:44:45 AM4/22/10
to NemesisRD 1.x
Hola.

Bueno, seguro que ya te han dicho más de una vez que lo de pasar un
tipo de dato básico (int, char, unsigned int, bool, etc, etc) por
referencia es una costumbre horrorosa, pero por si acaso te lo repito.
Pasar los datos básicos por referencia no sólo es una pérdida de
tiempo sino que hace engorroso invocar a los métodos porque no podrás
hace algo como:

foo (200);

tendrás que hacer:

int xxx = 200;
foo (xxx);

Por otro lado para "limpiar" el valor acumulador y el valor inmediato
puedes invocar al método tools::CounterScope::assign, ten en cuenta
que necesita protección así que tendrás que invocar a los método
mediante un tools::CounterScope::Safe.

Un saludo.

On Apr 22, 2:38 pm, Eduardo Ramos Testillano <era...@tid.es> wrote:
> gracias,
> Otra cosa, en nuestra libManagement.b del hte, teniamos tambien metodos de reseteo de dicha acumulacion:
> int resetCounters(const int & scopeId = 0) throw();   (la ausencia de scopeId, resetea para todos los ambitos).
> De esta forma, sin rearrancar el proceso, se pueden resetear (yo lo hago mediante comandoEG) para volver a tomar datos de una supuesta prueba de carga.
> Un saludo
> El 22/04/2010 14:34, Cisco escribió:Incorpora la capacidad para acumular los contadores a lo largo de la ejecución del proceso. Cada contador tendrá asociados dos valores, el valor "inmediato" que será puesto a cero cada vez que los contadores se graben y contador "acumulado" que irá incrementándose mientras el proceso se mantenga en ejecución. El método tools::Counter::getAccumulatedValue devolverá este nuevo dato, también aparece automáticamente al invocar al método tools::CounterManager::asXML. ./hdrs | Locally Modified | 1.8 ./tools.Counter.cc | Locally Modified | 1.8 ./tools.CounterScope.cc | Locally Modified | 1.9 ./hdrs/nemesis.tools.Counter.h | Locally Modified | 1.8 ./internal.db/tools.sccs.cc | Locally Modified | 1.23 ./what_news/1.11.4.version | Locally Added | New file!--
>
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a nemesi...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.
>
>  firma.jpg
> 8KViewDownload

Cisco

unread,
Apr 22, 2010, 8:46:48 AM4/22/10
to NemesisRD 1.x
Otra cosa.

El ámbito 0 es totalmente válido, así que quizás te convendría cambiar
el valor por defecto para que fuera -1 en vez de 0.

Otro saludo.

On Apr 22, 2:38 pm, Eduardo Ramos Testillano <era...@tid.es> wrote:
> gracias,
> Otra cosa, en nuestra libManagement.b del hte, teniamos tambien metodos de reseteo de dicha acumulacion:
> int resetCounters(const int & scopeId = 0) throw();   (la ausencia de scopeId, resetea para todos los ambitos).
> De esta forma, sin rearrancar el proceso, se pueden resetear (yo lo hago mediante comandoEG) para volver a tomar datos de una supuesta prueba de carga.
> Un saludo
> El 22/04/2010 14:34, Cisco escribió:Incorpora la capacidad para acumular los contadores a lo largo de la ejecución del proceso. Cada contador tendrá asociados dos valores, el valor "inmediato" que será puesto a cero cada vez que los contadores se graben y contador "acumulado" que irá incrementándose mientras el proceso se mantenga en ejecución. El método tools::Counter::getAccumulatedValue devolverá este nuevo dato, también aparece automáticamente al invocar al método tools::CounterManager::asXML. ./hdrs | Locally Modified | 1.8 ./tools.Counter.cc | Locally Modified | 1.8 ./tools.CounterScope.cc | Locally Modified | 1.9 ./hdrs/nemesis.tools.Counter.h | Locally Modified | 1.8 ./internal.db/tools.sccs.cc | Locally Modified | 1.23 ./what_news/1.11.4.version | Locally Added | New file!--
>
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a nemesi...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.
>
>  firma.jpg
> 8KViewDownload

Eduardo Ramos Testillano

unread,
Apr 22, 2010, 8:51:02 AM4/22/10
to nemesi...@googlegroups.com
el assign podría valer, pero es poco intuitivo dado que el valor relativo y el acumulado no tienen el mismo tipo (   type_t a_value;   Unsigned64 a_accValue;), aunque para asignar un 0, puede valer.

PD algún día los enteros serán tan grandes como tú...
--
firma.jpg

Eduardo Ramos Testillano

unread,
Apr 22, 2010, 8:54:52 AM4/22/10
to nemesi...@googlegroups.com
he puesto el 0 a proposito, puesto que son contadores de plataforma y mejor no solaparlos.


El 22/04/2010 14:46, Cisco escribió:
Otra cosa.

El ámbito 0 es totalmente válido, así que quizás te convendría cambiar
el valor por defecto para que fuera -1 en vez de 0.

Otro saludo.

On Apr 22, 2:38 pm, Eduardo Ramos Testillano <era...@tid.es> wrote:
  
gracias,
Otra cosa, en nuestra libManagement.b del hte, teniamos tambien metodos de reseteo de dicha acumulacion:
int resetCounters(const int & scopeId = 0) throw();   (la ausencia de scopeId, resetea para todos los ambitos).
De esta forma, sin rearrancar el proceso, se pueden resetear (yo lo hago mediante comandoEG) para volver a tomar datos de una supuesta prueba de carga.
Un saludo
El 22/04/2010 14:34, Cisco escribió:Incorpora la capacidad para acumular los contadores a lo largo de la ejecución del proceso. Cada contador tendrá asociados dos valores, el valor "inmediato" que será puesto a cero cada vez que los contadores se graben y contador "acumulado" que irá incrementándose mientras el proceso se mantenga en ejecución. El método tools::Counter::getAccumulatedValue devolverá este nuevo dato, también aparece automáticamente al invocar al método tools::CounterManager::asXML. ./hdrs | Locally Modified | 1.8 ./tools.Counter.cc | Locally Modified | 1.8 ./tools.CounterScope.cc | Locally Modified | 1.9 ./hdrs/nemesis.tools.Counter.h | Locally Modified | 1.8 ./internal.db/tools.sccs.cc | Locally Modified | 1.23 ./what_news/1.11.4.version | Locally Added | New file!--



--
Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a nemesi...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.

 firma.jpg
8KViewDownload
    
  

--
firma.jpg

Eduardo Ramos Testillano

unread,
Apr 26, 2010, 10:21:53 AM4/26/10
to nemesi...@googlegroups.com
Para la funcionalidad de reseteo de contadores acumulados, el empleo de CounterScope::assign resulta incómodo, puesto que lo usual será resetear un ambito completo y no tener que recorrer todos los contadores a nivel de aplicación para invocar al assign. Creo que ese assign tiene sentido para tu uso interno pero no resulta muy práctico para otros temas.
Por otro lado, tener que realizar un

        tools::CounterScope *scope = ....
         tools::CounterManager::Safe safeScope (timeController, scope, "asdljakdlkajdlasd");
         safeScope.assign (counterId, 0);        

Hace mas engorrosa aún la implementacion de algo tan sencillo. Además, el literal "asdljakdlkajdlasd" (que debe ser la descripcion del ambito), también habría que tener en cuenta que la aplicación puede tener varios ambitos y cada uno tiene su getName() ya almacenado en el scope*  correspondiente.

Todo el tema de evitar el Safe, timecontroller, literal, etc.  sería más sencillo, independizando la funcionalidad de acumulado, máxime cuando su tipo Unsigned64, ni siquiera coincide con el de tu prototipo 'assign', aunque en la práctica (asignar 0) valga.

un saludo



El 22/04/2010 14:34, Cisco escribió:
Incorpora la capacidad para acumular los contadores a lo largo de la
ejecución del proceso.

Cada contador tendrá asociados dos valores, el valor "inmediato" que
será puesto a cero cada vez que los contadores se graben y contador
"acumulado" que irá incrementándose mientras el proceso se mantenga en
ejecución.

El método tools::Counter::getAccumulatedValue devolverá este nuevo
dato, también aparece automáticamente al invocar al método
tools::CounterManager::asXML.

./hdrs |  Locally Modified | 1.8
./tools.Counter.cc |  Locally Modified | 1.8
./tools.CounterScope.cc |  Locally Modified | 1.9
./hdrs/nemesis.tools.Counter.h |  Locally Modified | 1.8
./internal.db/tools.sccs.cc |  Locally Modified | 1.23
./what_news/1.11.4.version |  Locally Added | New file!

  

--
firma.jpg

Cisco

unread,
Apr 26, 2010, 12:22:02 PM4/26/10
to NemesisRD 1.x
Hola.

El texto "asdlk ...." no es el nombre del contexto del contador, sino
el nombre del contexto en el que estás estableciendo la sección
crítica.

Ese identificador sólo se verá en las trazas si activas el nivel
'Local7', y será de mucha ayuda en caso de que tengas que ejecutar el
SyONE.xtrace sobre las trazas de tu proceso.

El 99% de la gente que use la NemesisRD nunca tendrá que preocuparse
nunca del assign, ni de inicializar nada de nada; así que tampoco me
importa mucho que sea más o menos engorroso, hace lo que se espera y
lo hace bien.

Un saludo.

On Apr 26, 4:21 pm, Eduardo Ramos Testillano <era...@tid.es> wrote:
> Para la funcionalidad de reseteo de contadores acumulados, el empleo de CounterScope::assign resulta incómodo, puesto que lo usual será resetear un ambito completo y no tener que recorrer todos los contadores a nivel de aplicación para invocar al assign. Creo que ese assign tiene sentido para tu uso interno pero no resulta muy práctico para otros temas.
> Por otro lado, tener que realizar un
>         tools::CounterScope *scope = ....
>          tools::CounterManager::Safe safeScope (timeController, scope, "asdljakdlkajdlasd");
>          safeScope.assign (counterId, 0);        
> Hace mas engorrosa aún la implementacion de algo tan sencillo. Además, el literal "asdljakdlkajdlasd" (que debe ser la descripcion del ambito), también habría que tener en cuenta que la aplicación puede tener varios ambitos y cada uno tiene su getName() ya almacenado en el scope*  correspondiente.
> Todo el tema de evitar el Safe, timecontroller, literal, etc.  sería más sencillo, independizando la funcionalidad de acumulado, máxime cuando su tipo Unsigned64, ni siquiera coincide con el de tu prototipo 'assign', aunque en la práctica (asignar 0) valga.
> un saludo
> El 22/04/2010 14:34, Cisco escribió:Incorpora la capacidad para acumular los contadores a lo largo de la ejecución del proceso. Cada contador tendrá asociados dos valores, el valor "inmediato" que será puesto a cero cada vez que los contadores se graben y contador "acumulado" que irá incrementándose mientras el proceso se mantenga en ejecución. El método tools::Counter::getAccumulatedValue devolverá este nuevo dato, también aparece automáticamente al invocar al método tools::CounterManager::asXML. ./hdrs | Locally Modified | 1.8 ./tools.Counter.cc | Locally Modified | 1.8 ./tools.CounterScope.cc | Locally Modified | 1.9 ./hdrs/nemesis.tools.Counter.h | Locally Modified | 1.8 ./internal.db/tools.sccs.cc | Locally Modified | 1.23 ./what_news/1.11.4.version | Locally Added | New file!--
>
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a nemesi...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.
>
>  firma.jpg
> 8KViewDownload
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages