Duvida variaveis init-param na memória

Olá pessoal,
estou em uma discursão interminável com um amigo, e nao chegamos a uma conclusão…
O problema é que ele resolveu separar o struts-config.xml dele em varios pedaços, até aí tudo bem, mas para isso, teria que criar muitos <init-param> com o mapeamento de cada um, pois ele quer separar por rotinas, e o sistema é grande, mais ou menos umas 200 rotinas. Já que esses parametros são guardados na memória (para o servlet), não seria um absurdo vc criar mais ou menos 200 <init-param> mapeando esses arquivos e guardá-los todo na memória?
Por favor, acabem com essa discurssão, hehe

cara…acho ki isso não vai influenciar mto no consumo de memoria,
pois o struts tbem gosta de memoria, pois o arquivo struts-config e carregado inteiro para a memoria !!!

Se o arquivo for muito grande, realmente fica melhor trabalhar com ele fragmentado, ainda mais se for trabalhar em equipe.

Talves vcs poderiam criar os “struts-configs” separados, e na hora de gerar o war, uni-los usando por exmplo, o xDoclet !

Conecte algum profiler no seu server, como o profiler pack do Netbenas, e verifque se o consumo de memoria !!!
Os números não mentem !! ou qse nunca

fiquei meio curioso pra saber como o web.xml é lido pelo container.
Olhei o codigo do tomcat (ha…o consumo de mem depende de como o servidor esta implemetado !!), e tirem suas conclusões:

os parametros são armazenados em um HashMap

/**
* The initialization parameters for this servlet, keyed by
* parameter name.
*/
private HashMap parameters = new HashMap&#40;&#41;;

e abaixo o metodo que inclui os parametros no hashmap

    /**
     * Add a new servlet initialization parameter for this servlet.
     *
     * @param name Name of this initialization parameter to add
     * @param value Value of this initialization parameter to add
     */
    public void addInitParameter&#40;String name, String value&#41; &#123;

        synchronized &#40;parameters&#41; &#123;
            parameters.put&#40;name, value&#41;;
        &#125;
        fireContainerEvent&#40;&quot;addInitParameter&quot;, name&#41;;

    &#125;

Isso fica armazendo no contexto da aplicação !!

um teste bem xula, seria vc criar uma pequena aplicação com o codigo acima e fazer uma chamada ao metodo addInitParameter e depois 200 chamadas…

concordo com vc q fragmentar é uma boa saída, mas fragmentar na hora de gerar o .war, uni-los atraves do ant, que aliás, é o que eu faço.
O problema não é carregar o struts-config na memoria, que é inevitável, mas sim o uso desnecessário de init-param.
Não acho uma boa prática, com tanta preocupação em usar a menor quantidade possivel de memória e recursos para otimização memória (principalmente evitar o conhecido new …), tipo cache de classes, singleton, etc…, eu venho e carrego mais de 200 init-param para o servlet do struts.
Não acha que desta forma, estamos indo na contramão?

na verdade, acho q seria mais uma filosofia (de que se deve otimizar sempre que possível a alocação de memória), do que uma perda de memória considerável (a não ser que o sistema tenha milhares de milhares de rotinas), ja que segundo nosso amigo acima, as variaveis são guardadas em um hashmap.
Continuo com a minha idéia que mesmo que consuma pouca (que é uma coisa que eu ja sabia), vai consumir mais do que o necessário, :slight_smile:

Cara…apenas minha opnião:

Se isso fosse a 10 ou mais anos atras, eu ate concordaria com vc !!
Isso em ralação ao web.xml e aos “inits”
A diferença de consumo é muito baixa e é executado apenas nas inicialização da aplicação !!

Agora qdo desenvolvemos uma app, essa filisofia deve ser constante !!!

concordo com vc sobre o baixo uso, mas se for assim, comecaremos a jogar tudo na aplicação, e um dia a casa cai…

tbem não chute o balde…
estamos falando apenas de init-params !!!