New post

Find

Article
· Jun 10 9m read

codemonitor.MonLBL - Monitoramento de código ObjectScript Linha-por-linha

Introdução

MonLBL é uma ferramenta para analisar o desempenho da execução de código ObjectScript linha por linha. codemonitor.MonLBL é um wrapper baseado no pacote %Monitor.System.LineByLinedo InterSystems IRIS, projetado para coletar métricas precisas sobre a execução de rotinas, classes ou páginas CSP.

O wrapper e todos os exemplos apresentados neste artigo estão disponíveis no seguinte repositório do GitHub: iris-monlbl-example

Discussion (0)1
Log in or sign up to continue
Question
· Jun 10

Yet Another Performance Puzzle

Having been inspired with Shared code execution speed question/discussion, I dare to ask another one which is annoying me and my colleagues for several weeks.

We have a routine called Lib that comprises 200 $$-functions of 1500 code lines total. It was noticed that after calling _any_ function of another rather big routine (1900 functions, 32000 lines) the next call of $$someFunction^Lib(x) is getting 10-20% slower than previous call of the same function. This effect doesn't depend on: 

  • which one specific function is being called between two calls of $$someFunction^Lib(x),
  • which one specific big routine has been chosen as a Big One for this test,
  • whether an "intermediate" function leaves local variables after call,

while it depends on:

  • the number of labels in a big routine: the more, the slower the next call of $$someFunction^Lib(x) is;
  • whether Lib has been written as ObjectScript procedures: in this case the speed difference between the 1st and the 2nd call is smaller.

Have anybody noticed something similar? What is the possible reason of this and how to avoid it? I would be thankful for any thoughts... 

16 Comments
Discussion (17)3
Log in or sign up to continue
Job
· Jun 10

IRIS Data Platform Engineer

What We’re Looking For:
3+ years of experience with InterSystems IRIS, Caché, or Ensemble
Strong skills in ObjectScript, SQL, and scripting languages (Python/Java a plus)
Experience with healthcare interoperability (HL7, FHIR, X12)
Cloud knowledge is a bonus (Azure, AWS, or GCP)
Curious mind + collaborative spirit + bias for action

2 Comments
Discussion (2)1
Log in or sign up to continue
Announcement
· Jun 10

Get Certified at READY 2025

Hi Community,

Are you READY to test your InterSystems technology skills?

Get certified at InterSystems READY 2025! June 22-25,  Hilton Bonnet Creek, Orlando, Florida

Register for a free certification exam attempt at this year's summit (June 22–25)!

Take this opportunity to earn InterSystems highest-level credential in one of eight areas.

  • 👏 Get formal recognition of your skills and experience.
  • 🚀 Boost your confidence...and your career!

Sign up soon—space is limited!

Discussion (0)1
Log in or sign up to continue
Article
· Jun 10 11m read

Statistiques SQL avec Grafana, InfluxDB et Telegraf

Introduction

Les performances des bases de données sont devenues essentielles à la réussite des environnements applicatifs modernes. Il est donc indispensable d'identifier et d'optimiser les requêtes SQL les plus exigeantes en ressources afin de garantir une expérience utilisateur fluide et la stabilité des applications. 

Cet article présente une approche rapide pour analyser les statistiques d'exécution des requêtes SQL sur une instance InterSystems IRIS afin d'identifier les domaines à optimiser au sein d'une macro-application.

Au lieu de nous concentrer sur la surveillance en temps réel, nous allons mettre en place un système qui collecte et analyse les statistiques précalculées par IRIS une fois par heure.  Cette approche, bien qu'elle ne permette pas de surveillance instantanée, offre un excellent compromis entre la richesse des données disponibles et la simplicité de mise en œuvre. 

Nous utiliserons Grafana pour la visualisation et l'analyse des données, InfluxDB pour le stockage des séries chronologiques et Telegraf pour la collecte des métriques.  Ces outils, reconnus pour leur puissance et leur flexibilité, nous permettront d'obtenir un aperçu clair et exploitable.

Plus précisément, nous détaillerons la configuration de Telegraf pour récupérer les statistiques. Nous configurerons également l'intégration avec InfluxDB pour le stockage et l'analyse des données, et créerons des tableaux de bord personnalisés dans Grafana. Cela nous aidera à identifier rapidement les requêtes nécessitant une attention particulière.

Pour faciliter l'orchestration et le déploiement de ces différents composants, nous utiliserons Docker.

logos.png

Discussion (0)2
Log in or sign up to continue