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: Stephane GALLES
Subject: Re: RE : RE : [Tsp-devel] gérer un nombre de symboles...hum...important
Date: Thu, 10 Mar 2005 15:46:46 -0500
User-agent: Internet Messaging Program (IMP) 3.2.5

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 symbole, 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
>
>
>
>


--




reply via email to

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