tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE : RE : [Tsp-devel] gérer un nombre de symboles...hum...important


From: famille les duf
Subject: Re: RE : RE : [Tsp-devel] gérer un nombre de symboles...hum...important
Date: Thu, 10 Mar 2005 23:02:58 +0100
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Super l'idée de browsing par arbre.
En fait on demanderait un niveau de profondeur (genre donne moi jusqu'a n-2 de /root). Si on couple cela avec la demande en 2 passe, d'abord les noms, et ensuite les types de tous les symbols, ce serait très rapide, en plus d'être très élégant.
Y++

Stephane GALLES wrote:

Bon, je vais peut etre délirer un peu là mais...

IMHO, J'ai l'impression que ni le select ni le regexp ne résoudra
le problème fondamental de quelqu'un qui arrive sur un provider qui a 2000000
symboles et qui veut faire un peu d'introspection.

- Si la personne ne sait pas du tout comment s'appel sont symboles, elle
ne va pas parcourir 200000 écrans de 10 symboles pour le trouver.
- Si la personne doit savoir que le symbole commence par une chaine
précise, genre TEMP_, avant même d'avoir vu la liste de symboles
je trouve cela dommage , car l'idée d'un provider est d'être auto
descriptif

Moralité, Peut etre que c'est fondamentalement la manière dont sont
organisés les symboles qu'il faudrait changer. Il ne faut plus une
liste à plat. Il faut un arbre. C'est à dire avec des "répertoires
de symboles", et tout en bas les symboles.

Avec une nomenclature genre filesystem, un symbole pourrait être affiché
/VOITURE/MOTEUR/INJECTEUR/TEMP1
Mais en terme d'implémentation sont nom est TEMP1 et il est contenu dans
le "Repertoire" INJECTEUR

L'idée est de tenir compte de la structure en arbre directement au
niveau du protocole, et que cela apparaise clairement dans l'API,
ce qui permettra de factoriser les données sur le réseaux (les
noms de symboles restent courts)

Je vois la résolution immédiate de deux cas d'utilisation :

1 - Pouvoir browser sur un provider avec plein de symboles :
Imaginez un widget type TreeView. Avec les répertoires affichés.
au départ le GUI demande tous les repertoires et symboles de niveau /
et à chaque fois que l'utilisateur déscend dans les répertoires
un nouveau requestinfo est fait pour le niveau demandé

2 - Et je me demande si cela ne permettrait pas d'implémenter toutes
les structures de données du monde pour le même prix (tableaux,
tableaux à plusieurs dimensions, arbres, etc...)
Imaginons les symboles
IMAGEBITMAP/X/1
IMAGEBITMAP/X/2
IMAGEBITMAP/X/3
IMAGEBITMAP/X/4
IMAGEBITMAP/Y/1
IMAGEBITMAP/Y/2
IMAGEBITMAP/Y/3
IMAGEBITMAP/Y/4
Ho ! Un tableau à deux dimensions !

Je divague là ?


Selon address@hidden:

Euh en fait,

MEME pour tsp_gdisp en mode interactif c'est rédhibitoire
que le request_info demande TOUS les symboles.

Dans mon petit exemple REEL (j'insiste) le provider offre:

1 865 896 symboles TSP !!!

Evidemment ce nombre de symboles est "déraisonnable"
et provient surtout du fait que TSP ne gère pas les tableaux
et que le Blackboard les gère, du coup un
symbole Blackboard qui est un tableau de 10000
génère 100000 symboles TSP :))

Mis à part ça, le fait est que le provider gère tranquillement
son 'presque 2 millions de symboles' vu qu'en fait
on ne lui demande d'en distribuer qu'une poignée (genre 50/100).
[hors mis la conso mémoire qui dépasse les 200Mo]

Sauf que vu la façon dont l'API consumer gère la request info
effectivement il y a:

1) un traffic réseau du diable (100Mo++) vu qu'on trimbale en RPC
  comme le dit Yves beaucoup trop de donnée.
  Et OUI c'est l'appel RPC qui bouffe tout le temps.

2) A la fin de l'appel le consumer (par exemple tsp_gdisp)
  consomme 200Mo ++ de mémoire alors qu'il
  n'en demande effectivement que 50/100.

Le mécanisme "a la SQL" de Fred est sympathique et plus
puissant qu'une regexp, maintenant à implémenter c'est peut-être
moins immédiat....

Des volontaires ?? :))

Eric

-------- Message d'origine--------
De:     address@hidden de la part de
TSP
Date:   jeu. 10/03/2005 16:38
À:      'address@hidden'
Cc:
Objet:  RE : [Tsp-devel] gérer un nombre de symboles...hum...important
Et il faudrait aussi une API pour recuperer le nombre de symboles coté
provider.
Maintenant pour gdisp en mode interactif, c'est sur que tu es obligé de
passer par le request info.

Tu as essaye un coups de profiler avec gprof pour voir quelle fonction
prenait du temps ? C'est sans doute l'appel RPC, mais a verifier. Si oui, la
structure est très grosse (en + du nom on a 6 entiers, et un opaque, c'est à
dire que l'on double au moins la taille de la structure en moyenne, + les
appels à xdr_decode).

On pourrait aussi ne recuperer que la liste des noms dans le request (+
infos du provider), et demander les infos pour la liste de symbole qui nous
interessent.

Y++

-----Original Message-----
From: Stephane Galles [mailto:address@hidden
Sent: Thursday, March 10, 2005 1:38 PM
To: address@hidden
Cc: address@hidden
Subject: Re: [Tsp-devel] gérer un nombre de symboles...hum...important



Hum...A la décharge de jSynoptic, je pense qu'il suffit juste
d'augmenter la taille de mémoire disponible dans Java au lancement
(c'est une sécurité pour éviter qu'un process ne gèle une machine)

Actuellement le lancement par 'ant jsynoptic-run' se fait avec la taille
par défaut. Mais dés qu'on fait des choses un peu osées, il faut la
modifier.

Pas le temps là, mais je fais cela ce soir  (donc cette nuit...)

A vu de nez, quand tu a lancé tsp_gdips+ la taille mémoire de ton PC
a chuté de combien ?

Néamoins, effectivement le fichier de conf xml s'impose de plus en plus.

Steph


address@hidden wrote:

Je joins à mon mail un petit screenshot
d'un TSP gdisp+ qui a mis environ 1 minute à démarrer,
je vous laisse chercher pourquoi...

A noter qu'en voulant connecter jsynoptic à ce
provider TSP OPERATIONNEL (bb_provider),
il m'a gentiment explosé à la tronche--> "Out of Memory".

Ce n'est pas le cas de tsp_gdisp+ qui a juste "souffert"
pour démarrer.

A noter que même si certain consumer ont souffert le
provider lui semblait peinard :))
Je resalue stéphane pour ça.

Donc il faut ABSOLUMENT prévoir que:
********************************************
les consumers ne fasse PAS SYSTEMATIQUEMENT
une requete "tsp_request_infos".
********************************************

je vois 2 solutions à ça,

1) La première est en cours fichier de conf.
 (sauf que dans le cas de jsynoptic ça marche pas
  aujourd'hui parce qu'on ne sait pas créer un
  fichier de conf sans se connecter à un provider
  et donc envoyer l'infâme request_infos...)

2) La deuxième c'est qu'on implemente une API
 requests_infos_limited qui renvoie un nombre limités
 de symboles qui correspondent à un pattern (regexp)
 on peut/doit imaginer un moyen de les découvrir
 tous mais par petit bout...

Voila quand on laisse des utilisateurs mettre ...
autant de symboles qui veulent ce que ça donne :))

Eric





------------------------------------------------------------------------

------------------------------------------------------------------------

_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel



_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel






--


_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel







reply via email to

[Prev in Thread] Current Thread [Next in Thread]