+ Responder ao Tópico



  1. Olá!

    O que seria o operador new de posicionamento?
    Ta... eu sei que a função dele é alocar memória. xD
    Mas qual a utilidade dele? Por que implementar e usar ele ao invés do new comum?

    Pelo que eu vi na internet, cria-se uma classe (normalmente chamada Arena) para gerenciar memória juntamente ao operador new sobrecarregado.
    Mas não compreendi a essência disso tudo.

    Segue o exemplo do livro do Stroustrup modificado:
    Código PHP:
    struct X {
        
    X(int ii) { ii; }
        ~
    X() { /* ... */ }
        
    int i;
    };

    class 
    Arena {
    public:
        
    virtual voidalloc(size_t sz) = 0;
        
    virtual void free(voidp) = 0;
        
    // ...
    };

    voidoperator new(size_t szArenaa) {
        return 
    a->alloc(sz);
    }

    extern ArenaPersistent;
    extern ArenaShared;

    void g(int i) {
        
    X= new(PersistentX(i);
        
    X= new(SharedX(i);
        
    // ...
    }

    void destruct(XpArenaa) {
        
    p->~X();
        
    a->free(p);


  2. O motivo mais comum para se (re)implementar o operador new ao invéz de utilizar o padrão, é para criar seu próprio gerenciador de memória. O código de exemplo mostra justamente isto.

    O tópico é bastante extenso, e os motivos para se criar um gerenciador de memória variam.
    Mas basicamente, você pode controlar a quantidade de alocações, o tamanho das alocações, diminuir a fragmentação de memória, fazer garbage collection (baseado em reference counting), ter melhor controle da memória compartilhada, etc.

    Se tiver interesse no assunto, recomendo a leitura destes artigos:
    1. Building your own memory manager for C/C++ projects
    2. Inside memory management
    Última edição por jweyrich; 03-08-2010 às 00:42.



  3. Interessante o primeiro artigo.
    Me deu várias ideias.
    Ele pode ser abaixado em pdf aqui: https://www6.software.ibm.com/develo...anager-pdf.pdf .

    Não consegui ler o segundo ainda, mas pelo que vi ele é mais voltado para C.

    Obrigado.






Tópicos Similares

  1. Respostas: 7
    Último Post: 22-09-2011, 22:29
  2. Whitelist de remetentes no amavisd-new
    Por cldn no fórum Servidores de Rede
    Respostas: 0
    Último Post: 27-03-2009, 09:53
  3. só acesso ap pelo new terminal de outro ap
    Por watesnake no fórum Redes
    Respostas: 0
    Último Post: 10-07-2008, 11:58
  4. amavis-new+clamav resposta de virus automatico
    Por ecbr no fórum Servidores de Rede
    Respostas: 0
    Último Post: 20-07-2005, 16:16
  5. Posicionamento de Antenas
    Por tiagomatias no fórum Redes
    Respostas: 2
    Último Post: 11-06-2005, 00:25

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L