Algoritmos – Conversão Binária – Parte 03

Introdução No post anterior sobre conversão binária, vimos algumas formas de converter um valor binário representado em uma string de volta a um valor decimal. O algoritmo mais rápido demorou 9,2 segundos para converter 2.560.000 valores. E se eu disser que dá para fazer isso QUATRO VEZES mais rápido, eu devo estar louco ??? Acelerando … Continue lendo Algoritmos – Conversão Binária – Parte 03

MemCached Client em AdvPL – Parte 01

Introdução O MemCached é um aplicativo que provê um cache de objetos em memória, do tipo chave/valor de alto desempenho. Ele possui APIs Client para várias linguagens de mercado, e agora também terá a sua API Client em AdvPL. O MemCached Open Source, Free , originalmente desenvolvido para Linux, ele também têm porte para Windows, … Continue lendo MemCached Client em AdvPL – Parte 01

Acelerando o AdvPL – Importação de tabelas

Introdução Existem muitas situações onde existe a necessidade de alimentar ou importar tabelas para uso do ERP Microsiga / Protheus. Quando esta necessidade envolve um grande número de registros, e um curto espaço de tempo, precisamos fazer esta operação ser o mais rápida possível. Nesse post vamos abordar algumas técnicas para realizar este tipo de … Continue lendo Acelerando o AdvPL – Importação de tabelas

Resolvendo o limite da função Randomize()

Introdução No post Boas Práticas de Programação – Código Simples, Resultados Rápidos, eu mencionei um limite operacional da função Randomize() do AdvPL. Caso a diferença entre o maior e o menor número a ser sorteado for maior que 32767, a função vai sortear um número maior ou igual ao número inicial informado, e menor que … Continue lendo Resolvendo o limite da função Randomize()

Executando Jobs em AdvPL

Introdução Em todos os posts anteriores sobre escalabilidade, desempenho e afins, sempre aparece o "tal" do JOB. No AdvPL, genericamente damos o nome de "Job" para um processamento de uma função AdvPL iniciada em um ambiente sem interface com o usuário -- ou seja, sem conexão com o SmartClient). Neste post, vamos ver em detalhes … Continue lendo Executando Jobs em AdvPL

Escalabilidade e Performance – Segredos

Introdução Outo dia li um post muito interessante, onde o autor menciona alguns "segredos" para uma aplicação escalável, com algumas técnicas comuns utilizadas em aplicações WEB ( Vide post original nas referências no final do Post). Resolvi me basear nele para exemplificar o que cada um dos tópicos elencados poderia agregar ao sistema, e levantar … Continue lendo Escalabilidade e Performance – Segredos

Acelerando o AdvPL – Lendo arquivos TXT (ERRATA)

Pessoal, No post "Acelerando o AdvPL - Lendo arquivos TXT", foi corrigido um erro que causava um mau comportamento da rotina,  fazendo a leitura de linhas "inconsistentes". Na chamada da função RAT(), o primeiro parâmetro deve ser a string a ser procurada, e o segundo parâmetro deve ser a string onde a primeira deve ser procurada. … Continue lendo Acelerando o AdvPL – Lendo arquivos TXT (ERRATA)

Escalabilidade e Performance – Parelelismo – Parte 01

Introdução Em posts anteriores sobre escalabilidade e desempenho, foram frisados vários pontos e técnicas que devem ser levadas em conta no momento de desenvolver uma aplicação partindo das premissas de escalabilidade horizontal e desempenho. Agora vamos trazer isso para um contexto real dentro do AdvPL, explorando uma análise de um cenário muito comum: Processamento de … Continue lendo Escalabilidade e Performance – Parelelismo – Parte 01

Escalabilidade e Performance – Stored Procedures

Introdução Em um tópico anterior sobre "Escalabilidade e performance – Técnicas", um dos tópicos falava sobre Stored Procedures, inclusive sugerindo que seu uso deveria ser minimizado. Vamos entrar neste tema com um pouco mais de profundidade neste tópico. Vamos começar com o clone do tópico abordado, e esmiuçar ele dentro do contexto do AdvPL e … Continue lendo Escalabilidade e Performance – Stored Procedures

Balanceamento de Carga no Protheus

Introdução No ano passado, ajudei um colega que estava concluindo um mestrado, cuja tese envolvia diretamente a eficiência de mecanismos de balanceamento de carga e suas abordagens. E, uma vez absorvido algum conhecimento a mais a respeito, acho que podemos dar um mergulho no assunto, e aproveitar para conhecer mais de perto o balanceamento de conexões … Continue lendo Balanceamento de Carga no Protheus