Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: JSON Schema Validation: A Comprehensive Guide

# JSON Schema Validation: A Comprehensive Guide ## Understanding JSONSchemaValidator Ensuring the integrity and compliance of JSON data is crucial for modern applications. **JSONSchemaValidator** is a powerful class designed to validate JSON data against a specified JSON Schema. It provides robust methods to check types, patterns, numerical constraints, required properties, and both internal and external schema references. This guide breaks down the key features and functionalities of JSONSchemaValidator, making it easier for developers to implement schema validation effectively. 🔗 **GitHub Repository:** [JSONSchemaValidator](https://github.com/naldodj/naldodj-hb-jsonschema-validator) --- ## Key Features ✅ **Schema-Based Validation** – Ensures JSON data conforms to a predefined schema. ✅ **Error Handling & Logging** – Captures validation errors for debugging. ✅ **Fast Mode Support** – Stops validation upon detecting the first error. ✅ **Internal & External Reference ...

BlackTDN :: a small memory manager test code (Harbour vs AppServer : round I fight)

totvsappmemtst

Em 27/01/2012, 10:19:52, TOTVS APPServer P10 7.00.101202A-20110330 R1, Windows teve um desempenho mais que aceitável no teste de gerenciamento de memória e de processamento ao usar o algoritmo desenvolvido por um dos colaboradores do Harbour Project, vszakats. O algoritmo, desenvolvido orginalmente para testar o gerenciamento de memória pelo próprio Harbour, foi modificado e adaptado para compilar e rodar tanto no Harbour quando no TotvsApp.

É um algoritmo de certa forma interessante pois usa um “buffer” de 1024 bytes para testar Strings e Arrays com muitos elementos (os dois maiores consumidores de memória depois dos objetos) para testar, além do desempenho da aplicação, a alocação e liberação de memória dinâmica.

Na nova versão do código foram implementados 10 testes, dos quais o TotvsAppServer executou satisfatoriamente quase 8.

“a small memory manager test code”

#define N_LOOPS                                                                                                              (1000*1000)
#define N_MAXLOOP                                                                                                                     10
#defineWHITE_SPACE                                                                                                                1024
#defineMAX_SIZE_ARRAY                                                                                                       100000

Aos resultados:

image 

 

 

 

 

 

 

 

Usando o WinMerge para comparar o conteúdo dos diretórios poderemos perceber que Harbour executou 10 dos 10 testes definidos.

Com isso, podemos concluir que o Harbour teve mais folego na execução dos testes e possuindo gerenciamento de memória e  “Garbage Collector” mais eficientes, não desmerecendo o TotvsAppServer que enviou mensagens bem informativas e esclarecedoras sobre o processo de Gerenciamento de Memória:

----------- OS Memory Summary -------------
Physical memory .     2035.77 MB.   Used     2022.23 MB.   Free       13.54 MB.
Paging file .....           3927.52 MB.   Used     2816.35 MB.   Free     1111.17 MB.

----------- APP Memory Summary ------------
       Service Memory Capacity ...      2047.88 MB.
       Service Virtual Address ...         1944.62 MB.
       Service Resident Memory ...      1917.86 MB.

[FATAL][SERVER] [MEMORY] Used memory OVER SAFE LIMIT. REMOTE CONNECTIONS ARE DISABLED.

[INFO ][SERVER] [MEMORY] VMA Avg   0.90 - Peak  1844.74 MB. - SL  2047.88 MB.

[INFO ][SERVER] [MEMORY] RES Avg   1.00 - Peak  1818.76 MB. - SL  1818.76 MB.

Comparando os resultados do Primeiro teste teremos:

Harbour

27/01/2012, 08:59:36, Harbour 3.1.0dev (Rev. 17207), Windows XP 5.1.2600 Service Pack 3

Len( cWSpace ) :      1024

testing single large memory blocks allocation and freeing...

CPU time:    0.2031250000 sec.
real time:      0.2190000000 sec.

 

Protheus/TotvsAppServer

27/01/2012, 10:19:52, TOTVS APPServer P10 7.00.101202A-20110330 R1, Windows

Len( cWSpace ) :      1024

testing single large memory blocks allocation and freeing...

CPU time:    0.5310000000 sec.
real time:      0.5310000000 sec.

 

testing many large memory blocks allocation and freeing... testing large memory block reallocation with intermediate allocations...
Harbour Protheus/TotvsAppServer

CPU time:   13.1093750000 sec.
real time:     14.9690000000 sec.

CPU time:   24.3600000000 sec.
real time:     24.3600000000 sec.

Harbour Protheus/TotvsAppServer

CPU time:    0.7187500000 sec.
real time:      0.8120000000 sec.

CPU time:     2.8440000000 sec.
real time:       2.8440000000 sec.

Teste 1

27/01/2012, 08:59:56, Harbour 3.1.0dev (Rev. 17207), Windows XP 5.1.2600 Service Pack 3

27/01/2012, 10:20:20, TOTVS APPServer P10 7.00.101202A-20110330 R1, Windows

CPU time (total):   18.0156250000 sec.
real time (total):      20.0000000000 sec.

CPU time (total):   28.0000000000 sec.
real time (total):     28.0000000000 sec.

[]s
иαldσ dj

Comentários

Postagens mais visitadas