Aprimoramentos na biblioteca de tempo de execução do Delphi 10.4 | Academia do Código
Post: Aprimoramentos na biblioteca de tempo de execução do Delphi 10.4
Este artigo é uma tradução do artigo: https://blog.marcocantu.com/blog/2020-may-delphi-104-rtl.html
Como já sabemos, a Embarcadero lançou recentemente a nova versão do RAD Studio e não poderia faltar novas funcionalidades, correções, e aprimoramento da ferramenta.
Entre as muitas áreas do Delphi aprimoradas na 10.4, há a Runtime Library, que teve muitas melhorias de qualidade e desempenho.
A Delphi Runtime Library é uma das bases do produto, pois as bibliotecas da interface do usuário, como VCL e FireMonkey, também as bibliotecas de acesso ao banco de dados e muitos componentes de terceiros respondem no RTL principal. É por isso que as alterações na RTL são particularmente relevantes, pois tendem a afetar todos os desenvolvedores. Aqui estão algumas mudanças importantes disponíveis.
Funções padrão de contagem de bits
Introduzimos novas funções padrão para operações comuns de processamento de bits de baixo nível, listadas abaixo.
Contar zeros à esquerda: conta o número de bits zero à esquerda que precedem o bit mais significativo do parâmetro X. Se X for zero, ele retornará a largura do bit. ou seja, 32 para CountLeadingZeros32 e 64 para CountLeadingZeros64
Contar zeros à direita : conta o número de bits zero à direita após o bit menos significativo do parâmetro X. Se X for zero, ele retornará a largura do bit. ou seja, 32 para CountTrailingZeros32 e 64 para CountTrailingZeros64.
Contagem da população : conta o número de 1 do parâmetro X. O valor de retorno estará no intervalo de 0 à largura do bit. ou seja, 32 para CountPopulation32 e 64 para CountPopulation64
Recursos adicionais para aulas clássicas
A classe TCustomIniFile possui os métodos WriteInt64 e ReadInt64
O tipo TGUID possui um novo método IsEmpty
A propriedade Items da classe TJSONArray agora é uma propriedade de matriz padrão, permitindo que você escreva myJArray [2] em vez de myJArray.Items [2]
Melhor Buffer de Fluxo
A função CopyFrom da classe TStream base costumava ter um buffer constante fixo para copiar dados (definido como 60K). Isso pode ser muito ineficiente para copiar fluxos grandes. O novo padrão é 1 MB, mas o método possui um parâmetro adicional que você pode usar para fornecer um tamanho de buffer específico, dependendo da operação de cópia que você está executando (fluxos de origem e de destino). A nova assinatura do método é:
// classe TStream
função CopyFrom (const Origem: TStream; Contagem: Int64 = 0;
BufferSize: Inteiro = $ 100000): Int64
Otimização de leitura JSON: TJSONReader agora é 50% mais rápido
Designação otimizada de um StringList classificado para outro StringList
As melhorias de desempenho do RTTI incluem:
O TRttiMethod.Invoke é ~ 4 vezes mais rápido
A chamada TVirtualInterface é ~ 1.7 vezes mais rápida
Os métodos TRttiType.GetXxxx (AName) são ~ 10 vezes mais rápidos
Para TValue, várias operações são mais rápidas
A operação QuickSort no System.Classes agora é mais eficiente
Atualizamos a assinatura do procedimento FreeAndNil, para evitar seu uso com referências de interface e outros tipos de dados não suportados. Agora é declarado exigir uma referência a um TObject:
procedimento FreeAndNil (const [ref] Obj: TObject); na linha;
Isso significa que o uso incorreto do FreeAndNil agora causará um erro do compilador. No passado, o uso incorreto não era detectado, levando a erros difíceis. Observe que, embora o parâmetro seja declarado como const, a variável por referência é realmente modificada.
Recursos sortidos adicionais
Removemos algumas dependências que estão bloqueando certos aplicativos de console para serem executados no Windows Server Core
O método TStringHelper.GetHashCode foi atualizado para não colocar a string em maiúsculas antes de fazer o hash, portanto seu resultado corresponde a outras operações internas, como a classe TStringComparer.
Também fizemos um bom trabalho nas bibliotecas Parallel Programming Library, AppTethering, cliente REST e HTTP e mais outros subsistemas Delphi RTL. Espero que essas melhorias, mesmo que relativamente pequenas, sejam apreciadas por seu impacto positivo em todos os dias que os desenvolvedores Delphi trabalham.
O pessoal da Embarcadero tem trabalhado incansavelmente para melhorar a linguagem, e levar melhores experiencia para nós programadores.
Nós também não paramos de trabalhar, em poder levar conteúdos que poção lhe auxiliar no seu dia a dia.
E caso você tenha interesse de conhecer mais sobre o CLUBE DE PROGRAMADORES EM DELPHI, onde você não só terá conteúdos relacionados a novas funcionalidades, e claro, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.
E caso você tem interesse de conhecer mais sobre Aprimoramentos na biblioteca de tempo de execução do Delphi 10.4, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Aprimoramentos na biblioteca de tempo de execução do Delphi 10.4, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.