fxsaber: C'est beaucoup plus cool que ça, malheureusement. L'indicateur est entièrement fixé. Lien vers la branche avec les détails ci-dessus.
L'absence de données récentes à côté du nom court, ainsi que l'absence de rendu de l'indicateur, indiquent clairement qu'au moment du rendu du graphique, les données de l'indicateur n'étaient pas encore prêtes et que l'indicateur lui-même était en cours de calcul.
Slawa: L'absence de données récentes à côté du nom court, ainsi que l'absence de rendu de l'indicateur, indiquent clairement qu'au moment du rendu du graphique, les données de l'indicateur n'étaient pas encore prêtes et que l'indicateur lui-même était en cours de calcul.
J'ai fourni un code source complètement court. Je serais heureux si votre explication était correcte. Mais vous pouvez constater par vous-même, en exécutant l'indicateur, que ce n'est pas le cas.
Slawa: L'absence des dernières données près du nom court, ainsi que l'absence du rendu de l'indicateur, montre évidemment qu'au moment de la création du graphique les données de l'indicateur n'étaient pas encore prêtes, et que l'indicateur lui-même était en état de calcul.
C'est-à-dire que cela ne peut se produire qu'une fois après avoir dessiné sur le graphique, puisque les données seront déjà calculées, n'est-ce pas ?
-Aleks-: C'est-à-dire que cela peut se produire une fois après avoir été tracé, car les données seront déjà comptées lorsque vous le ferez à nouveau, n'est-ce pas ?
Non. Ça peut arriver plus d'une fois. Vous déplacez le graphique d'avant en arrière avec la souris, et à ce moment-là, un tick apparaît.
-Aleks-: Je pensais que les données déjà comptées dans la mémoire tampon du graphique n'étaient pas recalculées à chaque tick.....
1. Dépend de la mise en œuvre de l'indicateur. Si elle est écrite avec parcimonie, seule la dernière valeur est recalculée.
2. Si le graphique est stationnaire et que le nombre de barres n'a pas changé, en cas de collision, le tampon précédent sera rendu (c'est-à-dire qu'il n'y aura pas de vide).
fxsaber: J'ai passé toute la journée à trier les choses, rien ne fonctionnait. Simplifié le code autant que possible et créé une branche. Aidez-moi !
Mesurez OnCalculate() en utilisant GetMicrosecondCount(). Imprimer cette valeur dans le journal. Il est préférable de se souvenir de la durée maximale et de n'imprimer que la mise à jour maximale dans le journal - de cette façon, elle sera plus visible.
Anton: Vérifiez le temps d'exécution de OnCalculate() par GetMicrosecondCount(). Imprimez cette valeur dans le journal. Il est préférable de se souvenir du temps maximal et d'imprimer uniquement la mise à jour de la valeur maximale dans le journal - de cette façon, elle sera plus visible.
Pourquoi CopyTicks est-il si lent ?! Vérifié la dépendance au nombre de ticks (count - paramètre d'entrée) - presque aucune. Il est également lent avec des valeurs faibles.
C'est beaucoup plus cool que ça, malheureusement. L'indicateur est entièrement fixé. Lien vers la branche avec les détails ci-dessus.
L'absence de données récentes à côté du nom court, ainsi que l'absence de rendu de l'indicateur, indiquent clairement qu'au moment du rendu du graphique, les données de l'indicateur n'étaient pas encore prêtes et que l'indicateur lui-même était en cours de calcul.
L'absence des dernières données près du nom court, ainsi que l'absence du rendu de l'indicateur, montre évidemment qu'au moment de la création du graphique les données de l'indicateur n'étaient pas encore prêtes, et que l'indicateur lui-même était en état de calcul.
C'est-à-dire que cela peut se produire une fois après avoir été tracé, car les données seront déjà comptées lorsque vous le ferez à nouveau, n'est-ce pas ?
Non. Peut-être plus d'une fois. Vous déplacez le graphique à l'aide de la souris d'avant en arrière, et à ce moment-là, une tique apparaît.
Non. Peut-être plus d'une fois. Vous déplacez le graphique avec la souris d'avant en arrière, et à ce moment-là, un tic-tac apparaît.
Je pensais que les données déjà comptées dans la mémoire tampon du graphique n'étaient pas recalculées à chaque tick.....
1. Dépend de la mise en œuvre de l'indicateur. Si elle est écrite avec parcimonie, seule la dernière valeur est recalculée.
2. Si le graphique est stationnaire et que le nombre de barres n'a pas changé, en cas de collision, le tampon précédent sera rendu (c'est-à-dire qu'il n'y aura pas de vide).
J'ai passé toute la journée à trier les choses, rien ne fonctionnait. Simplifié le code autant que possible et créé une branche. Aidez-moi !
Vérifiez le temps d'exécution de OnCalculate() par GetMicrosecondCount(). Imprimez cette valeur dans le journal. Il est préférable de se souvenir du temps maximal et d'imprimer uniquement la mise à jour de la valeur maximale dans le journal - de cette façon, elle sera plus visible.
J'ai obtenu la sortie de chaque tic, beaucoup !
Pourquoi CopyTicks est-il si lent ?! Vérifié la dépendance au nombre de ticks (count - paramètre d'entrée) - presque aucune. Il est également lent avec des valeurs faibles.