Jump to content
Fórum Script Brasil
  • 0

Pensamento


Denis Bittencourt Muniz
 Share

Question

Olá galera!

Dias atrás, quando estava "atoa" aqui em casa, fiquei pensando: "a galera fala que OO é mais pesado... mas, no caso, em OO, crio o objeto, uso seus métodos e limpo a memória (Nothing in Visual Basic, delete operator in C++, huauahuah). Ou seja: uma função global fica o tempo todo na memória stack (pilha), alias, até o termino do programa...".

Resumindo: Não teria alguma forma de ganho de desempenho usando OO? Essa teoria não estaria correta?

A muito tempo penso isso, mas só hoje eu perguntei... Espero respostas!

P.S: Alias, os métodos dos objetos ficam na 'stack' também, certo? Ou a *estrutura toda* fica na 'heap'? (creio que seja 'heap', mas não custa perguntar :P )

Falows!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Ou seja: uma função global fica o tempo todo na memória stack (pilha), alias, até o termino do programa...".
Que eu saiba todo o código do programa é carregado na heap e quando é chamado um procedimento global, os registradores, variáveis da função, parametros, e endereço de retorno são jogados na pilha. Isso acontece até mesmo com métodos estáticos de classes. Somente são alocados na heap junto com a instancia do objeto os métodos dinâmicos, portanto métodos dinâmicos pesam mais em um programa.

P.S: Alias, os métodos dos objetos ficam na 'stack' também, certo? Ou a *estrutura toda* fica na 'heap'? (creio que seja 'heap', mas não custa perguntar )
Que eu saiba nenhum método fica na stack e sim na heap. O que vai pra stack são as variáveis e os parametros das funções no momento em que são chamadas.

Ou seja, métodos estáticos são iguais a procedimentos normais não OO, são acessados diretamente do código do programa que está todo alocado na memória, e métodos dinâmicos são alocados na heap no momento que se cria a instância, junto com a mesma. Então só vejo vantagems na orientação a objetos a pesar de desconfiar um pouco que seja mais lento(apenas intuição).

Me avisem se estiver errado.

Abraços.

Link to comment
Share on other sites

  • 0

Valeu Thales! Mas no caso, procediemnto global fica armazenado também na Heap? Alias, creio que você tá certo! Pensando melhor, isso mesmo!

Aguardando mais opiniões : )

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...