Solaris :: VMEM.

Interface Perl para o Alocador de Memória Virtual
Baixe Agora

Solaris :: VMEM. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Alexander Golomshtok
  • Site do editor:
  • http://search.cpan.org/~agolomsh/

Solaris :: VMEM. Tag


Solaris :: VMEM. Descrição

interface de Perl para alocador de memória virtual Os aplicativos modernos tendem a consumir mais e mais memória como mais memória e poder de computador se tornam disponíveis, de modo a importância da grande movimentação conjunto tem vindo a aumentar. Além disso, a importância relativa da eficiência da memória está se tornando cada vez mais alto, porque as velocidades de CPU estão crescendo muito mais rápido do que o acesso à memória speeds.Here é uma maneira de lidar melhor com o problema, especialmente para grandes matrizes nas aplicações de modo de 64 bits. A idéia apresentada aqui é usar os recursos de página para a procura de memória virtual construído na plataforma Solaris ou qualquer sistema operacional moderno (OS) .A solução para o problema de matrizes alocados-malloc subdimensionadas é para criar matrizes muito maiores, mas para fazê-lo sem incorrer em custos na memória (espaço de troca) que malloc requer. Isto é o que Matrizes de memória virtuais fornecem. Os desenvolvedores podem criar matrizes muito grandes que têm as mesmas características de desempenho como memória normal alocado-malloc, mas sem a necessidade de consumir os recursos até front.The Solaris :: pacote Vmem permite-lhe reservar uma grande quantidade de espaço de endereço virtual para um array de objetos arbitrários, sem se reservar o espaço de memória ou troca por isso. A alocação de memória real (swap) ocorre preguiçosamente, isto é, somente quando você preencher a memória com os dados, página por página. A implementação específica aqui apresentada é para sistemas Solaris rodando em UltraSPARC processors.Note que na memória virtual (VM) ambientes de sistema malloc também não aloca memória até que a memória está cheia de dados. No entanto, malloc faz reservar a memória (espaço de troca) para cada alocação. Portanto, se você alocar uma grande quantidade de memória com malloc, você deve ter espaço suficiente swap para apoiá-lo, ou então malloc irá retornar NULL. Matrizes de memória virtuais não fazer memória de reserva (espaço de troca), o que lhe permite criar matrizes virtuais muito maiores do que a memória disponível (espaço de troca) .Esta diferença é especialmente importante no modo de 64 bits, onde Solaris :: Vmem permite reservar muitos terabytes de espaço de endereço virtual. Criando o suficiente espaço de troca de disco para suportar este espaço de endereço muito (para não mencionar memória física) é impraticável mesmo com discos baratos de hoje. A proposta Virtual API Memória Arrays consiste em três rotinas, os dois primeiros dos quais se assemelham livre de malloc tradicional. O que se segue são os protótipos e descrições breves destas funções $ tamanho = alloc ($ var, $ req_size).; alloc () atribuído um pedaço de espaço de endereço virtual de um determinado tamanho, em bytes. Em caso de sucesso, alloc () retorna o tamanho real do pedaço de memória e "laços" a $ var argumento para o espaço alocado. O sistema VM irá alocar memória para esta matriz, página por página, como você preencher a matriz com dados. O valor R $ req_size é arredondado para o próximo boundary.release página hardware ($ var); release () destrói o espaço de memória virtual associado com o argumento $ var e retorna qualquer memória eo espaço de endereço virtual reservado para ele voltar para o sistema. $ NewSize = guarnição ($ var, $ req_size); guarnição () reduz o tamanho do bloco dado memória virtual para um menor tamanho virtual (em bytes). Esta rotina é opcional. Pode ser útil quando você tiver preenchido a matriz com os dados e saber que você não vai precisar de mais memória do que você já alocado e preenchido. O valor R $ req_size é arredondado para o próximo limite página. O funcation retorna o novo tamanho (real) da memória virtual chunk.The guarnição () função permite retornar algum espaço de endereço virtual na volta para o sistema. Se você colocar todos os dados para o intervalo de endereços passado o fim do "aparadas" pedaço de memória, que irá liberar a memória correspondente, de modo que os dados já não estará disponível. Chamar essa rotina só tem efeito se $ req_size (arredondado para o próximo limite página) é menor do que o size.Once virtual original que você aparou um pedaço de memória virtual com guarnição (), você não pode crescer mais nada por adicionar dados para a sua extremidade. Qualquer referência além do newSize limite $ resultará em uma falha. É uma boa idéia para cortar um pedaço de memória somente se você estiver razoavelmente certo que você não vai precisar de expandir este uso conjunto again.SYNOPSIS Solaris :: Vmem; $ Tamanho = alloc ($ laço, 16384); $ Size = guarnição ($ empate, 8192); liberar ($ empate); Requisitos: · Perl.


Solaris :: VMEM. Software Relacionado