enxugando json

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

enxugando json

Mensagem por JoséQuintas »

Tenho meu build, e ele vai criando um histórico das compilações em json.

Código: Selecionar todos

{
  "LastPath": "d:\\fontes\\haroldo\\",
  "LastBuildDate": "20250205",
  "Total": 10384,
  "Year": 1456,
  "Month": 175,
  "Day": 26,
  "2024": 8928,
  "202409": 1307,
  "20240912": 52,
  "20240913": 50,
  "20240914": 3,
  "20240915": 15,
  "20240916": 62,
  "20240917": 13,
  "20240918": 6,
  "20240919": 72,
  "20240920": 32,
  "20240921": 18,
  "20240922": 32,
  "20240923": 48,
  "20240924": 9,
  "20240925": 38,
  "20240926": 30,
  "20240927": 57,
  "20240929": 53,
  "20240930": 230,
  "202410": 1249,
  "20241001": 11,
  "20241002": 21,
  "20241003": 37,
  "20241004": 49,
  "20241005": 15,
  "20241007": 4,
  "20241008": 105,
  "20241009": 36,
  "20241010": 42,
  "20241011": 68,
  "20241012": 30,
  "20241014": 95,
  "20241015": 73,
  "20241016": 22,
  "20241017": 24,
  "20241018": 111,
  "20241019": 18,
  "20241020": 3,
  "20241021": 101,
  "20241022": 61,
  "20241023": 27,
  "20241024": 29,
  "20241025": 29,
  "20241026": 4,
  "20241027": 21,
  "20241028": 56,
  "20241029": 95,
  "20241030": 1,
  "20241031": 61,
  "202411": 1257,
  "20241101": 71,
  "20241102": 85,
  "20241103": 70,
  "20241104": 12,
  "20241105": 74,
  "20241106": 43,
  "20241107": 20,
  "20241108": 53,
  "20241109": 11,
  "20241110": 17,
  "20241111": 57,
  "20241112": 83,
  "20241113": 63,
  "20241114": 85,
  "20241115": 9,
  "20241116": 1,
  "20241117": 7,
  "20241118": 27,
  "20241119": 22,
  "20241120": 14,
  "20241121": 12,
  "20241122": 59,
  "20241123": 24,
  "20241125": 40,
  "20241126": 141,
  "20241127": 68,
  "20241128": 6,
  "20241129": 63,
  "20241130": 20,
  "202412": 824,
  "20241202": 37,
  "20241203": 26,
  "20241204": 106,
  "20241205": 26,
  "20241206": 15,
  "20241208": 60,
  "20241209": 91,
  "20241210": 32,
  "20241211": 12,
  "20241212": 36,
  "20241213": 25,
  "20241215": 5,
  "20241216": 29,
  "20241217": 55,
  "20241218": 70,
  "20241219": 24,
  "20241220": 2,
  "20241221": 21,
  "20241222": 26,
  "20241223": 34,
  "20241224": 15,
  "20241226": 17,
  "20241227": 9,
  "20241228": 24,
  "20241230": 27,
  "2025": 1456,
  "202501": 1281,
  "20250101": 68,
  "20250103": 84,
  "20250104": 49,
  "20250106": 59,
  "20250107": 21,
  "20250108": 98,
  "20250109": 127,
  "20250110": 55,
  "20250113": 60,
  "20250114": 33,
  "20250115": 27,
  "20250116": 19,
  "20250117": 37,
  "20250119": 10,
  "20250120": 187,
  "20250121": 33,
  "20250122": 134,
  "20250123": 42,
  "20250124": 15,
  "20250126": 2,
  "20250127": 47,
  "20250128": 11,
  "20250129": 23,
  "20250130": 18,
  "20250131": 22,
  "202502": 175,
  "20250201": 17,
  "20250203": 97,
  "20250204": 35,
  "20250205": 26
}
Tava pensando em enxugar isso pra coisas antigas, talvez deixar a média diária de cada mes.
Ou muito antigas, a média diária/mensal do ano.

A criação/atualização é fácil, mas por enquanto sem idéia pra acumular, que funções poderiam ser usadas pra isso.

É interessante saber que eventualmente chega a quase 200 compilações num único dia.
Talvez além da média, salvar mínimo e máximo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

enxugando json

Mensagem por JoséQuintas »

Um teste parcial.

Código: Selecionar todos

FUNCTION Reorganize( hSetup )

   LOCAL dDatIni, dDatFim, dItem, nMin := 99999, nMax := -1, nMedia, nTot := 0, nQtd := 0, nValue

   dDatFim := Stod( "20241231" )
   dDatIni := Stod( "20241201" )
   FOR dItem = dDatIni TO dDatFim
      IF hb_HHasKey( hSetup, Dtos( dItem ) ) .AND. ! Empty( hSetup[ Dtos( dItem ) ] )
         nValue := hSetup[ Dtos( dItem ) ]
         nQtd += 1
         nTot += nValue
         nMax := Max( nMax, nValue )
         nMin := Min( nMin, nValue )
      ENDIF
   NEXT
   IF nQtd != 0
      nMedia := nTot / nQtd
      ShowNormal( hb_Dtoc( dDatIni ) + " " + hb_Dtoc( dDatFim ) + " " + ;
         Str( nMin, 4 ) + " " + Str( nMax, 4 ) + " " + Str( nMedia, 4 ) + ;
         " " + Str( nTot, 4 ) )
      Inkey(10)
   ENDIF

   RETURN Nil
Adicionar já faço, não será problema.
Ainda falta ver como excluir, e não sei se vai precisar indexar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

enxugando json

Mensagem por JoséQuintas »

Deixei manual mesmo.
Crio o que precisa daqui pra frente e pronto.
Também não dá pra fazer o resumo anual, se estarei removendo meses do arquivo.
Deixei apenas o Max como resumo, Min e Avg não importam.

Código: Selecionar todos

{
  "LastPath": "d:\\fontes\\util\\build\\",
  "LastBuildDate": "20250206",
  "Day": 11,
  "Year": 1568,
  "Month": 287,
  "Total": 10496,
  "2024": 8928,
  "202409": 1307,
  "202409 Max": 230,
  "202410": 1249,
  "202410 Max": 111,
  "202411": 1257,
  "202411 Max": 141,
  "202412": 824,
  "202412 Max": 106,
  "2025": 1568,
  "2025 Max": 0,
  "202501": 1281,
  "202501 Max": 187,
  "202502": 287,
  "202502 Max": 127,
  "20250201": 17,
  "20250203": 97,
  "20250204": 35,
  "20250205": 127,
  "20250206": 11
}
O recorde foi em setembro: 230 compilações num único dia, o início de uso do FIVEWIN.
Neste ano, em janeiro 187 compilações num único dia.
E no mês atual, 127 compilações ontem, principalmente pra ajuste deste arquivo.

Não entram aí por exemplo as compilações do build.exe com erro. Ele com erro, o C<ENTER> não funciona.
É pra isso que serve BAT, pra não digitar milhares de vezes a mesma coisa.
Não é pra esquecer como se faz.

Mais de 10.000 compilações... supondo 10 letras em cada uma, economizei digitar 90.000 letras. substituindo por C<ENTER>

E nem precisei de Inteligência artificial pra isso, bastou a minha mesmo.
O povo está tão empolgado com IA, que esquece que IA é só mais um tipo de ferramenta de ajuda.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

enxugando json

Mensagem por JoséQuintas »

Curiosidade:
230 compilações num único dia...

Se considerar 10 horas, dá 23 por hora, 1 a cada 3 minutos ou menos.
Minha máquina é um I5 velho, talvez com mais de 10 anos.
Com certeza, não foi só compilação o dia inteiro.

Dizem que mingw é lento.... sei lá porque...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

enxugando json

Mensagem por developer »

Não é que é lento, na realidade é muito rápido, mas alguns comentam isso porque o compilador Borland é mais rápido, isso eu mesmo averiguei, é um fato inegável.

O seu é um i5? Está bom demais... o meu é um Pentium G2020 2.9GHz, é lennnntoooo, mas até dá para o gasto mas ultimamente quando abro navegador e dependendo do que faço o processador fica quase que o tempo todo entre 80 e 100%, noto isso mais com os navegadores... alguém tem alguma dica de como melhorar isso ou somente trocando o computador?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

enxugando json

Mensagem por JoséQuintas »

Dual core por si só é lento, é como criar uma coisa pra não ser usada, porque um core reduz velocidade do outro.

Até comentei por aqui: as exigências do W11 pode ter a ver com isso.
Começaram a inventar cada vez com mais núcleos, e depois tudo núcleos dual core.
A partir do W11, mudaram pra primeiros núcleos não dual core, a exigência do W11 pra processadores mais novos.
Não foi divulgado, afinal, admitir o erro seria obrigar a trocar todos os processadores já distribuídos.

Curiosamente isso mudou de novo, começou a ficar tudo dual core.
Talvez no W12 volte outra exigência.
Sei lá... tudo é possível.... aí fica parecendo que o Windows é mais rápido, quando na prática é a máquina.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

enxugando json

Mensagem por developer »

aí fica parecendo que o Windows é mais rápido, quando na prática é a máquina.
Isso é interesante, é o que eu penso sobre equipamentos com OS/X, parece ser mais estável, mais rápido, mas também, não é possível instalar (sem gambiarra) em um PC, só roda no MAC (que é uma máquina bem mais elaborada e CARA), daí vai parecer ser melhor, evidentemente.

Nada contra MAC, gosto muito, mas é muito caro!
Eu tenho um amigo que tem um, sempre tem problemas para conectar duas coisas: Wifi e impressora... parece até engraçado, ele já me acusou de colocar algo no roteador para impedir ele de conectar kkkkkkkk

Sem falar que para conectar qualquer coisa precisa comprar um adaptador (caro também).
Responder