Você pode verificar o IDE Compiler Plugin v.1.0 que permite compilar um projeto Delphi do IDE com uma versão de compilador Delphi mais antiga ou mais nova. Ele pode ser usado para compilar um projeto Delphi 2007 com o compilador Delphi 2009 para obter uma versão UNICODE dos executáveis ou vice-versa. Para os desenvolvedores de componentes, este plugin torna possível compilar seus componentes para diferentes versões de Delphi dentro de um IDE. E os usuários do Delphi 2007 podem testar-compilar seus projetos contra o compilador Unicode Delphi 2009. Pode ligar a cada compilador de linha de comando AddRemove Opções do compilador Delphi Redirecionar caminhos de pesquisa Modificar a linha de comando do compilador em tempo real Configuração predefinida do compilador 2009 para Delphi 2007 Configuração predefinida do compilador 2007 para Delphi 2009 Delphi 2007 e 2009 devem ser instalados Não é possível depurar o Código compilado pelo compilador conectado. Essa é a única ferramenta que conheço, infelizmente, não é compatível com a Delphi 2010. Minha empresa tem executado um grande projeto no Delphi há mais de uma década. Nossa base de código tem crescido ao longo dos anos e agora representa cerca de 4 milhões de linhas de código. A velocidade da compilação está se tornando um problema. Nós passamos o tempo eliminando o referencial circular da unidade (uma causa conhecida da compilação lenta) e examinamos todos os aspectos da configuração. Chega a um ponto em que não podemos melhorar ainda mais materialmente com o que podemos controlar. No momento, em um PC de última geração com 4 núcleos executando o Windows XP SP3 e Delphi 2006, comece o Delphi fresco e faça uma compilação completa, leva 40 segundos. Então, se fizermos outra compilação completa na mesma sessão Delphi imediatamente, levará 1m 40s. Faça outra compilação completa novamente, ficará pior. Então, e assim por diante. (Nós sabemos bem que o próprio Windows armazena arquivos em cache e isso tem um grande impacto na velocidade de compilação. As figuras acima são baseadas em que os arquivos são armazenados em cache. Configuramos esse cenário, obtendo o Delphi para compilar o projeto uma vez, terminando e então Começando uma nova sessão de Delphi. Então, enquanto 40 segundos não vêem ser lentos, é só porque os arquivos são armazenados em cache pelo Windows. E fazemos isso para ter uma comparação de maçã a maçã.) O que nos enrola é por que a compilação A velocidade piora. (Observamos no passado que a desaceleração foi pior se o projeto tivesse uma grande quantidade de referências circulares unitárias.) Se terminarmos o Delphi e iniciarmos uma nova sessão, o tempo de compilação voltará para 40 segundos. Uma coisa ainda mais interessante que observamos é que podemos alcançar a mesma melhoria de velocidade ao clicar no botão Cancelar para abortar a compilação e depois fazer a compilação completa imediatamente. O tempo de compilação voltará para 40secs também. Parece-nos que o próprio cachê de dependência da unidade de Delphis não é tão eficiente quanto a criação do zero e está piorando ao longo do tempo. E também aparece o botão Cancelar, de alguma forma, limpa esse cache. O que pensamos é que, se pudermos acessar o subsistema Delphi IDE que faz essa compensação, podemos sempre manter a velocidade de compilação no seu melhor desempenho. Mas não sabemos como. Alguém sabe o que podemos fazer? Ainda estamos usando o Delphi 2006, já que não conseguimos encontrar uma maneira viável de transferir nosso grande projeto para o Unicode. Eu li em fóruns que o mais recente Delphi XE exibe problemas de velocidade de compilação semelhantes com referência circular unitária. Alguém sabe se Delphi XE abordou o problema p. s. Também estamos conscientes de que dividir o projeto em pacotes de tempo de execução pode reduzir o tempo de compilação. Mas, por razões de implantação e administração, tentamos evitar o uso de pacotes de tempo de execução. David eu usei isso, e. Quando eu pirateei o código-fonte VCL, para synopse. infoforumviewforum. phpid6 O compilador mantém um cache interno para o dcus. Para a parte VCL, se você modificar a fonte VCL, você deve sair e, em seguida, insira o IDE para obter a modificação em conta na próxima compilação. Mas isso talvez resolva o problema OP, uma vez que parece ser um problema de desempenho dentro da mesma sessão do IDE. Como funcionou para mim como uma substituição do IDE quitrestart, poderia ser o mesmo para John. Ndash Arnaud Bouchez 5 de julho 11 às 9:09 1 para o disco de estado sólido. I39m executando uma nova máquina que eu construí com 300G Crucial SSD e 1TB WD HD em W7 de 64 bits. Todos os projetos Delphi em operação estão localizados e construídos no SSD. 1 milhão de linhas de código são construídas pela primeira vez em D7 e XE às 11s, segunda vez às 8s. A taxa de transferência de SSD é de 200-300 MBs contra o bloco de discos de quarenta e cinco minutos do disco de 1 TB. Ndash Brian Frost Jul 5 11 at 11:27 Considere construir com pacotes de tempo de execução em casa e, então, criar executáveis monolíticos ao enviar o código para um departamento de QA ou distribuir seu aplicativo. Isso requer manutenção extra, mas os aumentos dramáticos nos tempos de compilação valem a pena a IMO. Temos um projeto 2.4 MLOC com cerca de 40-50 aplicativos de suporte menores. Quando compilado em um grupo de pacotes de tempo de execução, o projeto é construído em cerca de 500K linhas e é construído cerca de 6 vezes mais rápido (15 segundos vs. 90 segundos). Muitas das aplicações menores compilam em um segundo ou menos, porque muito do código empacotado é compartilhado. Você precisa ter certeza de testar o executável monolítico, e não o executável empacotado. Mas geralmente você não deve ver muitas diferenças de comportamento se você seguir boas práticas de codificação. Respondeu Jul 5 11 às 22:24 Isso é compreensível e eu concordo. É particularmente difícil manter compilações duais. As Configurações de Configuração ajudam muito. Existe outro benefício potencial que não mencionei anteriormente: porque os pacotes não podem depender recursivamente uns dos outros, as compilações empacotadas exigem uma boa camada de software. Por exemplo. O código de baixo nível não pode ser ligado estáticamente ao código de nível superior. Isso é motivo pelo menos para organizar o código em pacotes de tempo de execução. Ndash David Robb 6 de julho 11 às 15:30
No comments:
Post a Comment