Usar processamento 8 Nucleos
Moderador: Moderadores
Usar processamento 8 Nucleos
Marcos, baseado no q eu escrevi e no artigo, estou me referindo a nossos sistemas executando um processo (exemplo gerando 1 relatorio q demora 8min) e consume o processamento de 01 núcleo sendo q temos 8 núcleos, não teria q processar muito mais rápido? tipo 1 min por exemplo
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Usar processamento 8 Nucleos
Pela lógica, uma aplicação usando uma thread não dividiria seu trabalho em mais de um núcleo. Então, o processamento de um relatório não seria afetado.fladimir escreveu:Marcos, baseado no q eu escrevi e no artigo, estou me referindo a nossos sistemas executando um processo (exemplo gerando 1 relatorio q demora 8min) e consume o processamento de 01 núcleo sendo q temos 8 núcleos, não teria q processar muito mais rápido? tipo 1 min por exemplo
E tem a questão do acesso ao disco. Mesmo que a geração do relatório seja agilizada de certa forma, a velocidade ficaria nivelada pela velocidade com que o software lê os dados do HD.
Talvez jogando o processamento do relatório numa thread separada, ocorra alguma melhora no desempenho.
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Usar processamento 8 Nucleos
Olá Pessoal,
Apenas continuando dentro desse raciocínio:
Quanto a essa questão, tudo que li até agora quando tive oportunidade, ela existe para permitir uma limitação, não uma ampliação. E sempre também li que a melhor performance é deixar esse gerenciamento por conta do SO.
Mas... aprender é sempre bom.
Outrossim, a internet está vasta de "especialistas" dizendo que é o aplicativo que tem que gerenciar isso, porém, nunca vi nenhuma explicação tecnicamente plausível. Apenas "achometros".
Apenas continuando dentro desse raciocínio:
Quanto a essa questão, tudo que li até agora quando tive oportunidade, ela existe para permitir uma limitação, não uma ampliação. E sempre também li que a melhor performance é deixar esse gerenciamento por conta do SO.
Mas... aprender é sempre bom.
Outrossim, a internet está vasta de "especialistas" dizendo que é o aplicativo que tem que gerenciar isso, porém, nunca vi nenhuma explicação tecnicamente plausível. Apenas "achometros".
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Usar processamento 8 Nucleos
Uma boa ferramenta da MS é o monitor de recursos.
►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)
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)
Usar processamento 8 Nucleos
Um bom teste pra ver como trabalha a compilação do harbour (fork)
►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)
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)
Usar processamento 8 Nucleos
Estou gerando uma compilação do harbour agora, olha só o hbmk2
Vários processos sendo executados e encerrados
Vários processos sendo executados e encerrados
►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)
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)
Usar processamento 8 Nucleos
fiz uma cópia de arquivos com o Fastcopy agora ele criou 9 threads para copiar, super rápido.
►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)
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)
Usar processamento 8 Nucleos
Olha só que coisa interessante fazendo um teste de criação de tabela temporária
Observem que o executável demo.exe utilizou 4 threads
??
Código: Selecionar todos
DbCreate("mem:tstMemory", aField, "DBFCDX", .T., "tstMemory")
APPEND FROM ConRec.DBF FOR field->Cancelado == 'S' WHILE Evento() //para não sobrecarregar a aplicação
►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)
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)
Usar processamento 8 Nucleos
Obrigado pelas explicações...
No teu caso Alexandre essa parte final q vc colocou ... While Evento() // para não sobrecarregar a aplicação
Q não entendi muito bem, o q faz Evento() ?
No teu caso Alexandre essa parte final q vc colocou ... While Evento() // para não sobrecarregar a aplicação
Q não entendi muito bem, o q faz Evento() ?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Usar processamento 8 Nucleos
Sabe aquela mensagem a "aplicação não está respondendo" serve para isso, tem situações que o executável trava por conta disso. a função Evento() é para evitar isso e usa hwg_DoEvents() mas pode ser outra que tenha a mesma finalidade.
►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)
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)
Usar processamento 8 Nucleos
Em console precisa será?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Usar processamento 8 Nucleos
Principalmente console, faça o teste
►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)
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)
Usar processamento 8 Nucleos
aSimoes,
Pode postar a função EVENTO()?
Janio
Pode postar a função EVENTO()?
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Usar processamento 8 Nucleos
►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)
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)
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Usar processamento 8 Nucleos
DoEvents tiene que ser implementada a nivel de C:
Lo que hace DoEvents es vaciar la cola de mensajes de Windows haciendo que los mismos sean procesados, esto evita que la aplicación se congele. Cuando una aplicación demora más de 5 segundos en procesar sus mensajes Windows muestra el famoso mensaje que la aplicación no responde dando la sensación de que la aplicación se travo. Por eso a nivel de prg a veces dentro de los bucles o de rutinas que demoran mucho hay que colocar DoEvents para evitar esto.
Código: Selecionar todos
//-------------------------------------------------------------------------------------//
HB_FUNC ( DOEVENTS )
//-------------------------------------------------------------------------------------//
{
MSG Msg;
HWND hDlgModeless = NULL;
while( PeekMessage ( &Msg, NULL, 0, 0, PM_REMOVE ) )
{
hDlgModeless = GetActiveWindow(); // this is not better way of take Handle of Modeless Dialog Box
if ( hDlgModeless == NULL || !IsDialogMessage ( hDlgModeless, &Msg ) ) // ADD June 2015
{
TranslateMessage ( &Msg );
DispatchMessage ( &Msg );
}
}
}