Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 06 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
76 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Dicas Certificação Delphi Developer – Parte II
Publicado por rboaro : Terça, Dezembro 18, 2012 - 07:55 GMT-3 (429 leituras)
Comentários comentar   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Rodrigo Santos Saudações, caros Delphianos!
Continuando nossa série de dicas para a certificação, vamos falar nesta segunda parte sobre Stack e Heap, que está presente no subtópico chamado Areas of Memory – Stack and Heap contido no tópico Memory Management.
Retirei toda esta explicação de um artigo muito interessante do Zarko Gajic presente no delphi.about.com, o qual referencio no final deste artigo.
Há três áreas de memória onde as aplicações armazenam dados: global memory, heap e stack.
Variáveis globais são armazenadas na memória global (global memory). Esta memória é reservada pela aplicação quando o programa inicia e permanece alocada até que o programa termine sua execução.
A memória global (global memory) é também chamada de data segment.
Stack
Quando declaramos uma variável dentro de um método, a memória requerida para armazenar tal variável é alocada numa área denominada Stack. Quando o programa sai do escopo do método, as alocações da Stack são liberadas automaticamente.
A memória Stack é alocada dinamicamente utilizando o conceito de pilha (LIFO – Last In First Out).
Em Delphi, a memória Stack é utilizada para:
- Variáveis de rotinas locais (métodos, procedimentos e funções)
- Parâmetros de rotinas e tipos de retorno
- Chamadas a funções da API do Windows
- Records
Não é necessário alocar nem liberar a memória Stack, pois este processo é feito automaticamente.
O tamanho da memória Stack é, por padrão, grande o suficiente para os programas em Delphi, sendo assim, muito raramente este tamanho terá que ser alterado. Para configurar o tamanho da Stack, clique no menu Project – Options – Linking e note os campos Maximum Stack Size e Minimum Stack Size.
Variáveis locais não são inicializadas quando declaradas, portanto, uma boa prática é, antes de utilizar sua variável, inicializá-la para que você não tenha que se deparar com um valor absurdo.
Devido à estrutura de pilha utilizada pela Stack, o acesso a esta memória é muito rápido, pois apenas algumas poucas operações são realizadas para armazenar e ler o valor de uma variável.
Heap
A memória heap é utilizada para:
- Criar uma instância de uma classe
- Criar e redimensionar arrays dinâmicos
- Alocar memória explicitamente, usando GetMem, FreeMem, New e Dispose
- Utilizar Ansi/Wide/Unicode strings, variants e interfaces (gerenciados automaticamente pelo Delphi)
Os blocos de memória alocados na memória Heap não tem uma ordem lógica de acesso, ou seja, seu acesso é randômico. Por isso que operações realizadas na memória Heap são um pouco mais lentas se comparadas às da Stack.

Referência
http://delphi.about.com/od/windowsshellapi/a/heap-stack-explained-for-delphi-developers.htm

Espero que seja útil!
Grande Abraço!



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados