Precisa de ajuda! Não consigo resolver o problema, estou atingindo limitações de hardware - página 2
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Lembrei-me de um site onde um problema semelhante e variantes de sua solução em C++ foram discutidos.
Obrigado, eu vou ler.
Desculpe, e se eu tentar 64 bit ou mt só girará 32
A mudança para x64 apenas empurra o teto para trás, e não muito longe. Não terei que me esgotar e comprar 16Gb de memória. ;)
1. Naturalmente, use um sistema x64.
2. alugar uma máquina mais potente na nuvem EC2 da Amazônia e fazer os cálculos sobre ela.
3. Usar dados comprimidos, descomprimir na memória em tempo real. Dados reais são melhor comprimidos se você os dividir em fluxos (sinal/mantissa/exponente); você pode usar flutuador de 12 bits (às custas da precisão).
4: fazer um cálculo fora do consultor com algo que possa lidar com grandes dados (Matlab/R/etc).
1,2: trata-se de empurrar o teto para trás, e você quer resolver o problema sem estar vinculado a uma figura específica.
3. O problema não é a quantidade de dados no disco, mas sim a quantidade na memória. Posso comprimir por mais 10-20%, mas novamente, isso não vai resolver o problema.
4. Estou mantendo a esperança de ficar na caixa de areia por enquanto. Para que eu não tenha que escrever copiadoras/sincronizadores mais tarde.
Obrigado por sua participação!
Mudar para x64 apenas empurraria o teto para trás, e não muito longe. Eu não tenho que esgotar e comprar mais 16 Gb de memória, tenho? ;)
Você não trabalha com este tipo de dados o tempo todo, trabalha? Escreva para x64 e execute-o na amazon quando necessário. Você também pode depurar lá em micro instância.
Se, no entanto, você enfrentar este problema o tempo todo - você pode comprar 64 GB de memória por cerca de $1k, por exemplo Corsair Vengeance Pro CMY64GX3M8A2133C11.
Ou repensar o projeto do algoritmo para que ele possa funcionar em uma única passagem sobre os dados
p.s. Você também pode armazenar dados comprimidos na memória, e descompactar conforme necessário por tempo suficiente para processá-los
Obrigado, vou lê-lo.
A mudança para x64 apenas empurrará o teto para trás, e não muito longe. Não posso esgotar e comprar mais 16GB de memória, posso? ;)
Opção 1: Cortar o arquivo em pedaços.
Opção 2: Cortar o arquivo em pedaços, mas também sistematizá-lo. Como uma palavra no dicionário. Começa com "A" e procura por "A.txt". Desta forma, você pode organizar os dados em forma de árvore (semelhante ao dicionário: pastas A, B... nas pastas A AA, AB, etc.), a busca será muito rápida.
Portanto, você terá que ler muitas vezes, e isso é:
disco RAM virtual para o resgate ;)
e você não terá um buraco e vai gostar da velocidade.
e o volume total está disponível de uma só vez.
não cortar em pedaços, porque os pedaços não são adequados para a tarefa
1. este é o cache... Ou eu não entendo o que você quer dizer. Minha opção de ler constantemente os pedaços necessários?
Bem... leia o arquivo através de seu invólucro, o invólucro irá manter uma pequena parte do arquivo na memória e substituí-lo sem ler. Você sabe como o arquivo é utilizado, portanto o invólucro deve se tornar bastante eficiente.
Oh, merda...
Os mesmos ovos, somente de lado. A leitura pode ser acelerada, mas não resolve o problema globalmente.
Bem, eu estava pensando em ações repetitivas dentro de uma pequena escala.
O uso do mapeamento é usar o cache do vento em vez de escrever o seu próprio. Carregue o pedaço, leia-o, descarregue-o. Se o pedaço for usado com freqüência, os ventos o manterão na memória.
3. Usar dados comprimidos, descomprimir na mosca. Dados reais são melhor comprimidos se você os dividir em fluxos (sinal/mantissa/exponente); você pode usar flutuador de 12 bits (às custas da precisão).
4. fazer um cálculo fora do consultor com algo que possa lidar com grandes dados (Matlab/R/etc).
Há uma grande quantidade de informações (cerca de 20 GB em um arquivo de texto).
...
E se este arquivo for comprimido com um arquivador, qual é o tamanho (porque o texto deve ser muito bem comprimido)?