[Java] Performance, remplacer des tokens

Performance, remplacer des tokens [Java] - Programmation

Marsh Posté le 06-08-2002 à 15:58:05    

Yep tous,
 
Mon problème est le suivant. J'ai un certain nombre de template content des tags du genre $ID$. Ces templates en question sont en réalités des emails dans lesquels je dois remplacer le tag par une valeur précise.
 
J'ai un problème de perf d'un coté et un choix d'implémentation de l'autre.
 
1. Quel genre d'outil/classe utiliseriez vous pour remplacer dans une String standard un certain nombre de token (Il y a beaucoup de tag différent mais je dirais qu'on doit en remplacer une dizaine par String à tout casser
 
2. Comment feriez vous pour optimiser la chose sachant que les données peuvent se trouver en base (et donc ca ne sert à rien par exemple de prendre toutes les valeurs si certaines tags ne sont pas présents).
 
Si c'est pas clair dites le moi. Là je cherche de mon coté :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 15:58:05   

Reply

Marsh Posté le 06-08-2002 à 16:06:39    

velocity :D

Reply

Marsh Posté le 06-08-2002 à 16:07:01    

--greg-- a écrit a écrit :

velocity :D




 
toi tu commences pas à m'ennuyer hein !


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 16:08:08    

DarkLord a écrit a écrit :

 
 
toi tu commences pas à m'ennuyer hein !



nan mais c vrai hein
y'a ptet meme moyen de l'utiliser de maniere legere

Reply

Marsh Posté le 06-08-2002 à 16:11:13    

  • String.indexOf()
  • new Stringbuffer(string)
  • StringBuffer.replace(int start, int end, String str)

Reply

Marsh Posté le 06-08-2002 à 16:13:03    

benou a écrit a écrit :

  • String.indexOf()
  • new Stringbuffer(string)
  • StringBuffer.replace(int start, int end, String str)




mais y'a pas d'indexOf sur le stringbuffer. OR, apres avoir remplacé un tag, tu peux plus faire le indexOf sur la String d'origine vu que t'as changé le bidule
euh
enfin tu vois quoi

Reply

Marsh Posté le 06-08-2002 à 16:14:08    

ben y a qu'à faire un lastIndexOF : si tu commences par la fin, t'as plus de problème ! ;)


Message édité par benou le 06-08-2002 à 16:14:18
Reply

Marsh Posté le 06-08-2002 à 16:15:46    

comme le dit greg il y a X tags à remplacer mais le deal c'est que je les connais pas à l'avance.
 
Pour etre plus clair, j'ai une liste de tags:
 
$ID
$BROL
$MACHIN
 
...
 
puis je recois des String à parser et ces strings peuvent contenir 0 tags, 1 tags ou plusieurs tags. Mais je ne connais ni leur nombre, ni le type. Donc je dois trouver le moyen le plus efficace pour
 
Trouver les tags
Les remplacer
Ne pas aller chercher des valeurs inutiles (donc éviter d'aller chercher l'info pour tous les tags possible puis remplacer 2 ou 3 tags)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 16:16:51    

tu voudrais pas qu'on te sorte l'ago tout fait là quand même ...

Reply

Marsh Posté le 06-08-2002 à 16:17:15    

boulay ! ;)

Reply

Marsh Posté le 06-08-2002 à 16:17:15   

Reply

Marsh Posté le 06-08-2002 à 16:18:37    

rigole. Je sais pas ce que j'ai pour le moment mais je suis incapable de faire 2+2 tout seul ...
 
ca m'énerve grave. Là je fais mon diagramme de classe et j'ai posté juste pour voir si qqun n'avait pas déjà eu le coup, c'est tout :fou:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 16:19:51    

sans dex, tu créé le bufferString, tu recherche dans la string tous les $ pour trouver les tags, tu fais les recherches qui conviennent dans ta base, et tu les remplace dans le string buffer en partant de la fin (pour que les index restent les bons).
 
Je crois pas qu'il y aiot plus simple/efficace

Reply

Marsh Posté le 06-08-2002 à 16:20:57    

DarkLord a écrit a écrit :

 
ca m'énerve grave. Là je fais mon diagramme de classe et j'ai posté juste pour voir si qqun n'avait pas déjà eu le coup, c'est tout :fou:




houlala ... t'as l'air tout vénère dis donc ... :(
 
ca te vas pas le truc que j'ai dit ?
 

Reply

Marsh Posté le 06-08-2002 à 16:25:46    

bah, moi, j'ai fait un truc qui remplace des string par autre chose dans une String... (des smileys, en l'occurence)..
Mais dis..charger toutes les correspondances depuis ta base, c'est pas vraiment un problème : tu le fais en statique, et tu gardes les correspondances en statique, non??
 
Après, si tu es en JDK 1.4, tu as le package javax.regexp (je crois) qui doit être assez optimisé au niveau performance, surtout que tu n'utilisera pas de wildcards (*, $, ., etc..)

Reply

Marsh Posté le 06-08-2002 à 16:32:10    

benou a écrit a écrit :

 
houlala ... t'as l'air tout vénère dis donc ... :(
 
ca te vas pas le truc que j'ai dit ?
 
 




 
si si ;)
 
 :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 16:33:00    

gfive a écrit a écrit :

Mais dis..charger toutes les correspondances depuis ta base, c'est pas vraiment un problème : tu le fais en statique, et tu gardes les correspondances en statique, non??




 
Le deal c'est que l'information est différente à chaque fois. Tu as une template par mail mais chaque mail va prendre des donnés différentes (un record différent je veux dire).
 
Pense à un nom de client par exemple ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-08-2002 à 17:44:55    

Ah ouais, merde, ça pue du rond! :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed