hbmemio

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

hbmemio

Mensagem por Itamar M. Lins Jr. »

Ola!
Para quem está precisando de mais velocidade na criação de dbf's temporários.
Esses arquivos são criados na RAM. Diferente dos criados com dbCreateTemp().
É uma saída para armazenar as query's em SQL por exemplo.

Código: Selecionar todos

  REQUEST HB_IODMEM

      PROC main()
        LOCAL nI
        FIELD F1

        DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
        FOR nI := 1 TO 1000
          DBAPPEND();  F1 := HB_RANDOM() * 1000000
        NEXT
        INDEX ON F1 TAG f1
        DBEVAL({|| QOUT(F1)})
        DBCLOSEAREA()
        DBDROP("mem:test")  // Free memory resource
      RETURN
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: hbmemio

Mensagem por sygecom »

Parece que colocaram no xHarbour, isso é bom para todos.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: hbmemio

Mensagem por marcos.gurupi »

Esse eh um novo recurso no xhb ? Qual a versao ?

Marcos Roberto.
Marcos Roberto
NetService Software
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: hbmemio

Mensagem por sygecom »

Isso é um novo recurso sim, e está disponível apenas na versão do xharbour da CVS ou do SVN do Harbour.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: hbmemio

Mensagem por marcos.gurupi »

Seria abusar se vc descreve-se para q serve esse novo recurso.

Obrigado.

Marcos Roberto
Marcos Roberto
NetService Software
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Re: hbmemio

Mensagem por TerraSoftware »

pelo que eu entendi é uma funcao pra criar arquivos dbf´s temporarios na memoria, visto que estes arquivos nao seram gravados fisicamente no hd, eles sao mais rapidos.

Se eu estiver errado, favor corrigir.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: hbmemio

Mensagem por Maligno »

Tudo em memória, como no Firebird, imagino.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: hbmemio

Mensagem por marcos.gurupi »

Kra entaum isso nao eh um recurso eh "O RECURSO" teria q ser implementado no xharbour logo, logo.

Marcos Roberto.
Marcos Roberto
NetService Software
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: hbmemio

Mensagem por asimoes »

Marcos,
marcos.gurupi escreveu:Kra entaum isso nao eh um recurso eh "O RECURSO" teria q ser implementado no xharbour logo, logo.
Já está implementado somente CVS.

2009-10-05 16:40 UTC+0100 Miguel Angel Marchuet <miguelangel@marchuet.net>
* makefile.bc
* mdir.bat
* common.mak
* compile.mak
* contrib\Makefile
+ contrib\filemem\filemem.c
+ contrib\filemem\makefile
+ contrib\filemem\tests\test.prg
+ Added memory file subsytem developed by Mindaugas Kavaliauskas for harbour.
the files with prefix "mem:" in his named will be opened and created in memory
if filemem.lib is added and REQUEST HB_MEMIO.



Fiz o teste com programa que vem na contrib, é rápido, muito rápido. é o seguinte:
Levou 4 segundos na minha máquina para fazer o append de 1.000.000 de registros com indexação

Código: Selecionar todos

REQUEST HB_MEMIO

PROC Main()
   LOCAL nI
   FIELD F1

   DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
   cls
   ? time()
   FOR nI := 1 TO 1000000
     DBAPPEND();  F1 := HB_RANDOM() * 1000000
   NEXT
   INDEX ON F1 TAG f1
   ? time() // =4 segundos
   inkey(0)
   DBEVAL({|| QOUT(F1)})
   DBCLOSEAREA()
   DBDROP("mem:test")  // Free memory resource

   RETURN

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: hbmemio

Mensagem por marcos.gurupi »

Perfeito! Considerando as outras migracoes de vensao do xhb vou esperar mais um pouco, atualmente estou usando a ver. 1.0 e quando usava a ver. 0.99.50 e posteriormente 0.99.70, tive varios problemas para migrar para 1.0 entaum vou aguardar mais um pouco para migrar de 1.0 para 1.2. Obrigado pela resposta.

Marcos Roberto
Marcos Roberto
NetService Software
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: hbmemio

Mensagem por sygecom »

Olá Marcos,
Uma boa pratica é vir trazendo seu sistema compatível com sua versão estável e com uma versão que vai usar mais adiante, claro que isso exige um certo trabalho no começo, mas depois que pega a pratica acaba virando automático, eu tenho sistema pequeno que serve para testar todas as minhas necessidades de sistema, ou seja tenho um pouco de cada que tenho em todo o meu sistema e venho deixando meu sistema sempre compatível com ambas versão do xharbour e inclusive com Harbour que no momento é o que tenho mais usado. Pode fazer isso tudo com diretiva: #IfnDef __XHARBOUR__ e por ai vai...É apenas uma idéia.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: hbmemio

Mensagem por lugab »

Meu sistema usa muito a criação de arqv.temporário.

Pena que eu uso o xharbour 1.0.0 e tenho receio de migrar pro mais novo, diante de tantos problemas relatados aqui no fórum !!!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: hbmemio

Mensagem por sygecom »

Que tantos problemas ? As vez o pessoal nem testa direito e condenando, tem que testar ver, analisar, depois que compila com Harbour + MSVC nunca mais larga essa dupla. Alias nunca mais não, eu tive que largar em alguns aplicativos meus por causa do SQLRDD, mas por que não tive opção.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder