apache / apache/pulsar-client-node

Improve Timing of Promise "then"

Abierto
#19 0 comentarios 0 reacciones 0 asignados Ver en GitHub
triage/week-16
Lenguaje dominante
C++
Estrellas
164
Forks
98
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Currently, To measure latency of sending messages, asynchronous processing using Nodejs [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) like following code:

```
const results = [];
for (let mi = 0; mi < numOfMessages; mi += 1) {
const startSendTimeMilliSeconds = performance.now();
results.push(producer.send({
data: message,
}).then(() => {
// add latency
histogram.recordValue((performance.now() - startSendTimeMilliSeconds));
}));
}
await Promise.all(results); // wait until all messages are sent.
```
https://github.com/apache/pulsar-client-node/blob/master/perf/perf_producer.js#L88-L98

This code creates histogram about latency of sending messages.
However, all `then()` of `Promise` in `results` start after `await Promise.all(results)`.
So, We cannot get accurate histogram.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con perf/perf_producer.js alrededor de las líneas 88-98 y revisa cómo se utilizan las promises de producer.send() y Promise.all(). Verifica cuándo se ejecuta cada callback de then() con respecto a Promise.all(); después, haz que el histograma de latencia refleje el timing real del envío de mensajes y confirma que el script de rendimiento sigue completándose correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, node.js
Área
performance
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.